AI Agent 底下压着三样东西,它们都在"存 Agent 知道的东西":记忆(memory)、知识库、记录系统。团队挑一个上,发现不好使,于是得出结论"我需要一个更好的同类产品"——其实需要的是另一类。
区分它们只要一个问题:
这条信息如果是错的,谁会发现,谁负责?
对三者分别回答一遍,边界立刻就清楚了。
记忆:没人会发现
Agent 记忆的存在是为了让下一次运行更省事。历史会话摘要、抽出来的偏好、检索到的片段、文档的向量索引。它的优化目标只有一个:召回——在需要的那一刻把相关内容捞出来。
这个设计里没有任何一环对"真假"有意见。最近邻匹配返回的是跟查询最像的那段话,不是最可能正确的那段话。会话摘要压缩的是"说过什么",包括说错的部分。一旦一条错的事实进了记忆,失败方式是无声的:它会一直被召回、一直显得自洽,而且每被复述一次就更可信一点。
记忆合适的场景是"快速地大致对"胜过"慢慢地精确对"——记住这个客户偏好邮件而不是电话、这个代码库用 pnpm、上个月那波投放效果不好。而它变得危险的那一刻,是下游有人把它当成事实。
责任人:没有。 这不是缺陷,这正是记忆便宜的原因。
知识库:作者会发现,但是滞后
知识库是写给人读的。文档、wiki、操作手册、内部规范。它有作者,而作者本身就是一种责任——页面上挂着名字。
但这份责任是前置的:只在落笔那一刻生效,之后就衰减。wiki 里没有任何机制强迫你回头复核。知识库的典型失效不是"写的时候就错",而是它在失效之后又在页面上挂了十八个月,而且看起来跟昨天刚更新的那页一样权威。
Agent 让这件事变得更糟,方式很具体:它读得很有信心。人扫一眼手册会注意到"最后更新 2024"然后犹豫一下;Agent 拿了内容就直接执行。
责任人:原作者,且只在写入那一刻。
记录系统:有人担责,而且能拿出证据
记录系统是两个来源打架时以它为准的那个。这个"为准"不是贴个标签就有的,得由三条性质撑起来,而且三条全部发生在写入上,跟你用什么存储无关:
- 可归因——记录能说出自己的来源。不是"API key 7 创建的",而是哪个 Agent、接的哪个请求、基于哪份上游材料。
- 有人担责——这条记录现在长这样,有个具体的人对它负责。要么是他写的,要么是他点了通过。
- 可回放——能复原它是怎么变成现在这样的,包括中间经过的版本,以及被否掉的改动。
注意这份清单里没有的东西:一个字都没提数据库。你可以在 Postgres 上建记录系统,在表格上建,在文件柜里建都行。你唯一做不到的,是给一个数据存储加个 API 就白拿到它。
责任人:一个具名的人,永久,而且有 diff 为证。
放一起看
| 记忆 | 知识库 | 记录系统 | |
|---|---|---|---|
| 写给谁 | Agent | 人 | 两边都要,外加下游系统 |
| 优化目标 | 召回 | 可读 | 正确 + 可追溯 |
| 谁担责 | 没人 | 作者,仅写入时 | 具名审核人,永久 |
| 典型失效 | 错的事实无声流传 | 内容原地过期 | 审核队列跑不过注意力 |
| 出错代价 | 低——直到有人拿它当事实 | 中 | 高,所以才要那道门 |
值得点名的那个错误
真正贵的错,不是在三者之间选错了,而是让边界渗漏——具体说,是让记忆里的东西直接变成了事实,中间什么都没发生。
它长这样:Agent 去调研一个潜在客户。查到的东西一部分是核实过的,一部分是从职位和一篇新闻稿里推出来的。全部进了上下文窗口,而在窗口里这个区别就消失了——上下文窗口没有"置信度"这一列。然后 Agent 写了一条 CRM 记录。没有任何东西拦下它,于是它现在是一条业务事实,下个季度有人拿它做预测。
单看每一步都不算离谱。失败是结构性的:从"Agent 相信这件事"到"公司主张这件事",中间不存在一个必须发生点什么的时刻。
而记录系统收的就是这一道费。这是它全部的成本,也是它全部的价值。
三层实际怎么配合
它们是层,不是备选项:
- 记忆负责在多次运行之间搬运工作上下文。便宜、一次性、永远不作为出处被引用。
- 知识库存人要读、Agent 要参考的长内容——而且应该链到承载真实数字的记录,而不是把数字复述一遍。
- 记录系统存别的东西依赖的事实。凡是会被报表、账单、预测、或另一个 Agent 读走的,都归这里,而且要通过一次过审的写入才能进来。
不确定某样东西该放哪一层时,用这个判断题:如果它错了三个月,代价是什么? 没代价——记忆。有人被轻微误导——知识库。一个决策、一个客户、一个数字会错——记录系统,前面加审核门。
Busabase 在哪一层
Busabase 是第三层。接进 Busabase 工作区的 Agent 不直接写你的数据——它开一个变更请求,人来看 diff,只有合并进去的才成为事实,并且带着来源和完整历史(包括被否掉的版本)。
它不是记忆层,也不打算做记忆层。你的向量库留着;Agent 应该两边都读。这篇文章想守住的区别其实就一句话:读要广,写要窄。
想看"权威性到底由什么产生"的完整论证,去面向 AI Agent 的记录系统。想直接看一次过审的写入长什么样,接入你的 Agent,让它提点东西。