“给 Agent 加记忆”常被简化为把历史消息写进向量数据库。这样做可以产生熟悉感,却不一定产生可靠的长期状态。
三个不同问题
工作记忆服务于当前任务。它保存计划、短期变量、未完成事项和最近的工具证据,生命周期通常和一次运行或会话一致。
长期记忆保存跨会话仍有价值的偏好、决策与经验。它需要稳定身份、来源、过期策略和删除能力。
知识回答“依据是什么”。它更强调来源快照、引用、版本和人工审阅,不应该被模型在后台静默改写。
| 层次 | 典型内容 | 写入方式 | 主要风险 |
|---|---|---|---|
| Context | 当前消息与工具结果 | Harness 投影 | 膨胀与噪声 |
| Working Memory | 计划、变量、待办 | 运行时受控写入 | 状态漂移 |
| Durable Memory | 偏好、长期决策 | 显式批准或规则 | 错误固化 |
| Knowledge | 来源、事实、引用 | 摄取与审阅流程 | 来源丢失 |
写入比检索更危险
检索失败通常只影响一次回答,错误写入会污染后续所有会话。因此长期记忆的关键不是“召回率”,而是写入资格:
- 这条信息是否有稳定主体?
- 它来自用户明确表达,还是模型推断?
- 是否需要用户批准?
- 什么时候过期?
- 如何删除和追踪使用记录?
SAGE 将原始来源、知识提案和已批准知识分离,就是为了让模型可以提出候选,但不能把候选直接变成事实。
工程上如何表达清楚
谈“Agent Memory 怎么设计”时,不要停在向量数据库。先区分 Context、Working Memory、Durable Memory 和 Knowledge,再说明每一层的生命周期、写入门禁与恢复方式。工程判断往往比组件名称更重要。