Agent 的记忆怎么做分层
Agent 的长期状态不能是一锅粥。"发生过什么""外部事实是什么""正在做什么""如何变化"是四种不同的东西,混在一起管理,迟早会把一次闲聊当成人格,把一条旧知识当成今天的事实。我们的数字人 Agent 把记忆拆成六层,每层有自己的记录内容和进入运行上下文的方式。
六层分别记什么
| 层 | 记录内容 | 进入运行上下文的方式 |
|---|---|---|
| 核心 | 稳定自我故事、身份与已确认核心信息 | 高优先级正式上下文;不能自动改写核心人格 |
| 事件 | 已发生的互动、经历和完成事件 | 按主题检索或汇总,不等同于人格 |
| 关系 | 对人或关系的低风险、可追溯观察 | 先经过风险和来源门禁 |
| 知识 | 曾经了解、整理并留下的内容 | 形成熟悉感;不伪装成亲历,也不覆盖更新的事实 |
| 工作 | 当前工作集、任务上下文和完成后的长期归档 | 当前工作集优先;完成后再进入长期记录 |
| 创作 | 已完成或正在形成的创作素材、版本和结果 | 作为创作上下文,不自动升级为人格事实 |
分层的核心思想:记忆回答的是"她是否还记得、这句话怎么留下来、现在有多熟",知识库回答的是"现在以什么资料为准"。知识记忆的正文是知识本身,不能写成亲历;理解以性格和已有记忆为底,只有和正文不同时才另记。
正式边界:候选不能自动转正
抽取结果先成为候选,必须经过类别、完成性、来源、风险和置信度门禁,才可自动进入正式记忆。以下内容不能直接进入回信上下文:任务产物、模型声明、未确认状态、敏感身份或关系判断、低置信内容。
自动晋升、人工晋升、撤销、恢复和人格运用,都要留下来源、操作者、版本和变更日志。候选、观察、正式、撤销、被阻止这五种状态必须可区分,不能用一个"已记住"字段覆盖整个生命周期。
最重要的一条:核心人格不由自动抽取或模型自行改写。人格扩展走人工审核,这是红线。
遗忘是淡出,不是删除
一条记忆还有自己的进化史、熟悉度和遗忘,三者各管各的:
- 进化史:保留旧说法,只追加不静默覆盖。新事实与旧记忆冲突时以新事实为准,并在进化史里记一笔认识更新。
- 熟悉度:只看这条记忆被再次遇见、想起或说起的次数,不借用其他权重。
- 遗忘:淡出日常回忆,但历史仍然留着;不等于撤销。核心记忆不自然遗忘。
"记得"和"总挂在嘴边"是两回事。淡出机制让 Agent 既不会失忆,也不会被三年前的事主导今天的判断。
自生长链路
记忆的生长是条流水线,不是魔法:互动产生候选内容;Worker 按幂等键、来源和主题窗口抽取合并;门禁决定自动确认还是进例外队列;正式记忆进入运行上下文,候选默认不进回信;长期重复的证据形成观察,观察再投影为受限的语气或选题提示——但观察的影响必须经过独立回放和真实样本验证,不能因为"已记录"就宣称 Agent 的行为已经改变。
小结
记忆分层解决的不是"存得多",而是"不串味":人格的归人格,事件的归事件,知识的归知识。每层有自己的晋升门禁和遗忘节奏,Agent 才能既长期生长,又不把过去当成现在。