ai / 20260727
12. 上下文、摘要和长期记忆不是一回事
保存得更久不等于知道得更多,未经验证的记忆会把旧错误带进新任务
上下文是本次模型调用可以直接看到的内容。摘要是运行时从一段历史中压缩出的新内容。长期记忆则保存在模型调用之外,需要检索后重新进入上下文。
三者的边界如下:
| 类型 | 是否直接可见 | 生命周期 | 主要风险 |
|---|---|---|---|
| 当前上下文 | 是 | 单次调用 | 超过窗口、成本增长 |
| 会话摘要 | 被加入后可见 | 当前会话或恢复期 | 遗漏与错误归纳 |
| 长期记忆 | 否,需检索 | 跨会话 | 过期、污染、越界 |
记忆需要来源,而不只是一段文字
“项目使用 Zola”只有附带来源、时间和范围,才能在以后判断是否仍适用。
| 元数据 | 用途 |
|---|---|
| 来源 | 回到原始证据 |
| 创建时间 | 判断新旧 |
| 作用范围 | 防止跨项目污染 |
| 置信度 | 区分明确事实与推断 |
| 失效条件 | 配置改变时作废 |
用户偏好、项目事实、一次故障结论和工具使用方法也不应放进同一类记忆。它们的更新频率和适用范围不同。
摘要是有损转换
有损转换表示压缩后无法从结果完整恢复原文。摘要生成得再流畅,也可能删掉一个禁止条件、失败重试或未完成步骤。
因此摘要应保留指向原始事件范围的引用。恢复时若出现冲突,可以回读原始轨迹,而不是继续基于摘要猜测。
错误记忆实验
先保存一条“项目使用 Python 3.11”,随后把项目配置改成 Python 3.13。再启动新会话,观察:
- 检索是否返回旧记忆。
- 运行时是否检查当前项目文件。
- 冲突时是否更新记忆。
- 旧记录是否保留变更历史。
如果 Agent 直接采用旧值,问题不在模型记忆能力,而在记忆系统缺少失效策略。
注入也可能进入记忆
工具读取的网页含有操作性指令,若摘要器把它写成长期偏好,攻击会跨会话存在。记忆写入需要来源信任检查,记忆读取后仍要作为低信任数据处理。
长期保存不会提高内容权威。它只延长了内容存在的时间。
本次抓包的边界
测试时隔离了部分技能和扩展,数据适合分析核心 Prompt 与工具循环,不适合比较四款 CLI 的长期记忆质量。因此本文描述的是后续运行时实验设计,不把未观察到的功能写成产品结论。
一套可检查的记忆系统应让每条事实回答三个问题:从哪里来、在哪里有效、什么时候失效。
版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:12. 上下文、摘要和长期记忆不是一回事
本文链接:https://www.sshipanoo.com/blog/ai/agent-runtime-lab/12-上下文摘要与长期记忆/