为什么版本化的 Markdown 文件夹是 AI 代理的理想“大脑”。
在过去的几年里,AI 行业一直走高复杂度路线来解决代理记忆问题。数百万美元被投入到专有记忆系统和庞大的向量数据库,以解决“遗忘”问题。然而,当这些系统投入生产后,工程师们遇到了一系列反复出现的故障:会话重置、知识缺口以及“学习泄漏”,即关键洞见在会话结束的瞬间消失。
与认为这些是上下文窗口问题的看法相反,它们实际上是组织知识问题。生产级别代理部署中逐渐形成的共识是,最有效的代理“大脑”并非复杂的数据库,而是存放在 Git 版本化文件夹中的普通 Markdown 文件的简易系统。
纯向量记忆的失败
许多团队最初使用纯向量数据库部署 RAG(检索增强生成)。虽然在语义相似度方面强大,但这些系统引入了若干关键的故障点:
- 不透明存储: 向量数据库将意义存储为浮点数组。如果代理学到了错误的内容,无法仅打开数据库并编辑文本来修正。
- 时间矛盾: 向量存储常常难以处理不断变化的事实。如果客户的地址更改了三次,向量搜索可能把这三种版本都视为“相关”,导致代理困惑。
- 维护鸿沟: 大多数 RAG 设置的失败并非技术问题,而是知识库变得混乱,导致人类难以轻松整理或审计。
基于 Git 的大脑架构
两个突出的例子——Garry Tan 的 GBrain 和社区驱动的 DiffMem 项目——展示了这种简化方法的威力。
GBrain 模型
GBrain 采用“上层编译真相,下层仅追加时间线”的模式。每个页面由一个随新证据出现而重写的活摘要组成,随后是保持不可变的时间线以保留证据链。这使得代理能够访问当前的真相,同时为人类保留完整的审计轨迹。
- 混合搜索: 将 BM25(关键词搜索)与 pgvector 结合用于语义检索。
- 自动化知识图谱: 从 Markdown 写入中提取类型化链接(例如
works_at、invested_in),无需昂贵的 LLM 调用。 - 夜间梦循环: 在系统空闲时对实体页面进行丰富、整合记忆并修正引用的过程。
DiffMem 方法
DiffMem 将 Git 视为记忆的主要版本引擎。通过将对话存储为提交,开发者可以使用 git diff 精确查看代理对某一主题的理解随时间的演变。这提供了在标准向量存储中不可能实现的可复现性和透明度。
为什么 Markdown 与 Git 能胜出
1. 以人为本的可维护性
在基于 Markdown 的系统中,人类是第一类作者。营销负责人可以在标准文本编辑器中更新品牌语音指南,提交更改,代理即可立即继承新知识。这种双向同步是企业知识管理最强的模式。
2. 版本控制即记忆演进
Git 将历史视为第一类公民。团队可以二分查找事实何时被破坏,分支测试不同的知识配置,或回滚导致幻觉的“学习”会话。
3. 多代理安全
当多个代理写入同一个向量数据库时,竞争条件和嵌入漂移很常见。Git 的分支合并模型提供了经受考验的并发框架,使代理能够在知识的“特性分支”上工作,然后再合并到主大脑中。
回应反对论点
对 Markdown 优先方法的批评者常常提出规模和搜索效率的担忧。然而,证据表明这些是可解决的实现细节,而非架构阻碍:
- 关于语义搜索: 混合搜索(BM25 + 稀疏向量)常常在代理记忆方面匹配或超越纯向量检索。目标是为 Markdown 文件建立索引以供搜索,而不是用嵌入取代文件。
- 关于权限: 虽然 Git 默认是开放的,但企业级权限可以通过
access-policy.yaml层在检索时过滤结果来处理。 - 关于技术壁垒: 非技术用户无需直接使用 Git;他们可以通过 Obsidian、Notion 导出或自定义网页 UI 与系统交互,这些 UI 将内容写入 Markdown 后端。
综合:新兴标准
行业正趋向于一种以人类可读性和可审计性为优先,而非专有复杂性的模式。获胜的技术栈包括将知识捕获为 Markdown,存储在版本化的文件夹结构中(例如 /people、/companies、/procedures),并使用 YAML frontmatter 来记录元数据和权限。
正如社区开发者所指出的,问题从来不是关于存储记忆,而是关于组织记忆,使得代理能够使用,人类能够维护。通过将代理的大脑视为版本化的文档库,组织构建了一个不仅智能且透明、可编辑、可信的系统。