Agent 记忆系统设计:短期状态、长期记忆与遗忘
区分工作记忆、情节记忆和语义记忆,并讨论写入、召回、压缩、冲突与隐私治理。
记忆不是把所有对话存进向量库
当 Agent 需要跨会话工作时,团队很容易把历史消息全部向量化,然后在每次任务前检索。这样确实能“想起一些东西”,却常常召回过期偏好、错误结论和无关闲聊。真正的记忆系统要回答四个问题:什么值得记、以什么形式记、什么时候想起,以及什么时候应该忘记。
可以把 Agent 记忆分成三类。
工作记忆服务于当前任务,包括计划、临时变量、已完成步骤和最近工具结果。它更新频繁,生命周期通常等于一次运行。
情节记忆记录发生过的事件,例如“上次部署因端口冲突失败,最终改用 3990”。它保留时间、参与者、动作和结果,适合在相似情境中提供经验。
语义记忆保存相对稳定的事实和偏好,例如项目使用 MongoDB、用户偏好中文提交信息。它不强调事件过程,更像经过确认的知识。
三类记忆的写入、检索和过期策略不同,不应该混在一个集合中只靠相似度搜索。
先设计写入门槛
记忆质量首先取决于写入。每句话都保存会快速制造噪声。一个实用的写入策略可以检查:
- 未来任务是否可能复用;
- 信息是否已经被工具或用户确认;
- 是否包含明确作用域,例如某个用户、项目或环境;
- 是否与已有记忆重复或冲突;
- 是否含敏感数据,是否允许长期保存。
模型可以提出候选记忆,但最终写入应经过规则验证。账号密钥、访问令牌、支付信息和临时验证码不应进入长期记忆。用户说“这次先这样”通常是短期指令,不能自动升级成永久偏好。
推荐使用结构化记录:
{
"type": "preference",
"subject": "user:42",
"scope": "project:keemall-blog",
"statement": "技术文档使用中文",
"source": "user-confirmed",
"confidence": 1,
"validFrom": "2026-08-03T10:00:00Z",
"expiresAt": null,
"supersedes": null
}
向量只是检索索引之一,原始结构和来源仍要保留。
召回需要相似度之外的信号
仅按语义相似度排序,会把“看起来相关”误当成“应该使用”。召回可以组合多个信号:当前任务与记忆的相似度、作用域是否匹配、信息新鲜度、来源可信度、过去被成功使用的次数,以及是否与当前事实冲突。
一个数据库迁移经验不应该自动出现在市场文案任务中;另一个项目的端口约定也不能覆盖当前项目配置。作用域过滤应发生在向量排序之前,而不是依赖模型最后辨别。
召回结果最好以简短卡片进入上下文:陈述、来源、时间和置信度。需要细节时再读取对应事件或原始证据。这样可以避免一次加载大量历史轨迹。
更新、冲突与遗忘
长期系统里,事实会变化。新记忆不能简单覆盖旧记录,否则无法解释 Agent 为什么曾经做出某个决定。更合适的做法是版本化:新记录通过 supersedes 指向旧记录,旧记录标记为失效但仍可审计。
当两个高可信来源冲突时,不要让模型静默选一个。记忆层应返回冲突集合,并要求重新向用户或权威工具确认。低置信度推断必须和用户确认事实分开存储。
遗忘不是缺陷,而是系统能力。可以为临时事实设置 TTL;长期未使用且低价值的记忆逐步降权;用户要求删除时,同时删除原始数据、索引和缓存。对于法规或隐私要求,还需要记录删除动作,但记录中不能继续保留被删除内容。
工作记忆要支持恢复
长任务可能跨越多个进程或等待人工审批。工作记忆应保存为检查点,而不是只存在模型对话里。一个检查点至少包含计划版本、当前步骤、已验证事实、工具调用幂等键、生成物引用、预算和等待原因。
恢复时不能直接继续旧动作。系统要确认外部状态是否仍有效:文件是否被修改、订单是否已经处理、审批是否过期。对于写操作,先通过幂等键查询结果,再决定重试。
工作记忆的压缩也需要谨慎。工具原始返回可以转存到对象存储,状态中保留摘要和引用;错误堆栈只保留分类与定位信息。真正影响后续判断的数字、约束和未解决问题不能被摘要掉。
记忆系统的评测
可以从四个方向评估。
写入准确率:候选信息中有多少值得长期保存,敏感信息是否被拒绝。
召回质量:正确记忆是否出现在前几项,无关或跨作用域信息是否被过滤。
使用正确性:模型是否真正使用了记忆,是否错误地把低置信度推断当成事实。
更新与删除:偏好变化后旧值是否停止生效,删除请求是否覆盖所有副本。
测试集应该包含同义任务、相似但不同项目、过期事实、相互冲突的记忆,以及恶意内容。最终答案正确并不代表记忆机制正确,因为模型可能碰巧靠常识答对。
小结
Agent 记忆系统不是无限存储,而是受治理的信息生命周期。工作记忆保证当前任务连续,情节记忆保留可复用经验,语义记忆提供稳定事实;写入门槛、作用域、版本化和遗忘策略共同决定它是否值得信任。