ARTICLE · 人工智能
GitHub - masondelan/selvedge:AI 编码代码库的长期记忆。AI 智能体的 git blame——但用于记录“为什么”。一个 MCP 服务器,在每次变更发生时于上下文内实时捕获智能体的推理过程。本地 SQLite,零依赖。
一语总结Selvedge 是一个 MCP 服务器,在变更发生时记录 AI 编码智能体的推理过程,为 AI 编码的代码库提供实体级别、确定性的“针对为什么的 git blame”,并存储在本地 SQLite 中。
Selvedge 是一个开源的 MCP 服务器,通过在变更发生时实时捕获智能体推理,为 AI 编码的代码库提供长期记忆。它的核心论点在于:人类编写的代码会通过提交信息和 PR 描述传递意图,而 AI 编写的代码不会——智能体的上下文存在于提示词中,并在会话结束时蒸发。Selvedge 将带有推理过程的结构化变更事件存储在 .selvedge/ 目录下的本地 SQLite 文件中,并暴露 log_change、prior_attempts、blame 等工具用于实体级查询。README 解释了其设计理念:采用实体级归属而非行级归属,在变更发生时实时捕获推理而非事后推断(存储路径中不引入任何 LLM 以保证确定性),并将已被否决的路径作为一流记录保存,避免智能体重复实现团队已经否决的想法。它还包含与类似工具(OpenLore、AgentDiff、Origin、Git AI、BlamePrompt)的坦诚对比、v0.3.10(SessionStart/PreCompact 投递钩子、导出为 Markdown、配置)和 v0.3.9.3(安装修复、17 个已确认缺陷、更快的查找)的发布说明、Agent Trace 互操作,以及 Claude Code 快速入门。
- AI 编写的代码会丢失意图,因为智能体的推理只存在于临时的提示词中。
人类编写的代码会通过提交信息和 PR 评论透露意图;但智能体的上下文会在会话结束时蒸发,导致 git blame 只剩下“是什么”而丢失“为什么”。
- 在变更发生时实时捕获推理,而不是从 diff 中事后推断。
从产生变更的同一上下文来记录推理,可以避免事后让另一个 LLM 转述 diff 所带来的幻觉风险。
- 追踪实体而非代码行,因为这才是开发者真正会去搜索的内容。
像“这一列的历史是什么”这样的问题,比“第 40-48 行发生了什么”更重要;因此实体级别的归属才是可持续的单位。
- 将已被否决的路径作为一等记录存储,以防止重复犯错。
代价最高的失败,是智能体重新实现团队已经尝试过并否决的方案;保留“尝试过 → 已回滚 → 重新开启”的历史可以阻止这种情况发生。
- 记忆必须被主动投递,而不仅仅是存储。
引用“拉取式记忆工具往往无人使用”的研究,Selvedge 增加了 SessionStart 与 PreCompact 钩子,用于确定性地注入相关上下文。
GitHub - masondelan/selvedge:AI 编码代码库的长期记忆。AI 智能体的 git blame——但用于记录“为什么”。一个 MCP 服务器,在每次变更发生时于上下文内实时捕获智能体的推理过程。本地 SQLite,零依赖。
Selvedge 是一个开源的 MCP 服务器,通过在变更发生时实时捕获智能体推理,为 AI 编码的代码库提供长期记忆。它的核心论点在于:人类编写的代码会通过提交信息和 PR 描述传递意图,而 AI 编写的代码不会——智能体的上下文存在于提示词中,并在会话结束时蒸发。Selvedge 将带有推理过程的结构化变更事件存储在 .selvedge/ 目录下的本地 SQLite 文件中,并暴露 log_change、prior_attempts、blame 等工具用于实体级查询。README 解释了其设计理念:采用实体级归属而非行级归属,在变更发生时实时捕获推理而非事后推断(存储路径中不引入任何 LLM 以保证确定性),并将已被否决的路径作为一流记录保存,避免智能体重复实现团队已经否决的想法。它还包含与类似工具(OpenLore、AgentDiff、Origin、Git AI、BlamePrompt)的坦诚对比、v0.3.10(SessionStart/PreCompact 投递钩子、导出为 Markdown、配置)和 v0.3.9.3(安装修复、17 个已确认缺陷、更快的查找)的发布说明、Agent Trace 互操作,以及 Claude Code 快速入门。
文章金句
"代价高昂的失败,不是忘记某一列为什么存在,而是智能体在六个月后自信地重新实现团队早已基于充分理由否决的东西——那时所有知道原因的人都已经离开了上下文窗口。
"这是面向 AI 智能体的 `git blame`,记录的是“为什么”,而不是哪个模型改了哪一行——由智能体在变更发生时实时捕获,让下游任何环节都无需猜测。
"diff 是 git 的事,“为什么”是 Selvedge 的事。