很多团队以为记忆系统的核心是“存下来”,但真到线上后你会发现,难点其实是“删什么”。
因为上下文不是无限的。只要你的 Agent 进入长会话、多轮任务或跨天协作,就会面临一个问题:
$$ 上下文装不下全部历史时,系统如何保留真正重要的信息? $$
这就是记忆淘汰与摘要策略的核心。
建议搭配阅读 AI Agent 记忆管理实战、Context Engineering 实战指南、AI Agent 成本控制与预算治理 和 AI Agent 评估框架完全指南。
一、记忆不是一层,而是至少三层
| 记忆层 | 内容 | 保存策略 |
|---|---|---|
| 工作记忆 | 当前 run 需要的信息 | 任务结束后可淘汰 |
| 会话记忆 | 当前用户近期偏好、上下文 | 时间窗口保留 |
| 长期记忆 | 明确可复用的稳定事实 | 经校验后持久化 |
如果不分层,你最后会把一堆短期噪音留在长期记忆里,反而污染后续任务。
二、典型失败案例:摘要太勤,关键约束被抹平了
某个写作 Agent 为了控制 token 成本,每 5 轮对话就自动做一次摘要,替换原始历史。
问题在于摘要模板只保留“用户目标”,没保留“不能做什么”。
结果后续一次任务中,系统忘了用户曾明确要求“不要对外发送邮件”,最终 Agent 又把邮件草稿推进到了发送环节。
这类问题说明:摘要不是压缩字数这么简单,而是在做信息重构。
三、哪些信息优先保留
建议优先保留以下 4 类:
- 用户长期偏好和硬性约束
- 当前任务的状态和未完成项
- 已验证事实与关键证据
- 高风险决策的审批记录
而下面这些信息通常更适合淘汰:
- 重复问答
- 已失效的中间推理
- 无副作用的工具失败细节
- 只对当轮有效的临时草稿
四、摘要策略不要只有一种
常见可组合的策略有三类:
| 策略 | 适用场景 | 风险 |
|---|---|---|
| 滚动摘要 | 长会话 | 容易抹平细节 |
| 事件摘要 | 有明确状态变化 | 需要事件建模 |
| 分槽摘要 | 用户偏好、任务状态、证据分开存 | 实现更复杂 |
对工程系统来说,分槽摘要往往更稳。因为它把“偏好”“任务状态”“事实证据”拆开了,减少相互污染。
五、如何判断淘汰策略有没有副作用
至少看这 5 个信号:
context_overflow_ratesummary_recall_failure_rateconstraint_violation_rateavg_tokens_savedpost_summary_task_success_rate
如果 token 省下来了,但 constraint_violation_rate 升高,那说明你的摘要策略在伤害系统可靠性。
六、记忆淘汰与摘要上线清单
- 记忆按工作、会话、长期三层存储
- 用户硬性约束单独存,不参与普通摘要覆盖
- 高风险审批记录不会被滚动摘要抹掉
- 摘要效果有召回失败率指标
- 超长上下文时优先压缩噪音,不先删关键证据


