主题颜色
智能体上下文压缩
智能体上下文压缩,是用结构化检查点替换较早的对话历史,同时保留模型继续工作所需的近期消息。它不是简单截断,而是一次可持久化、可观测的运行时状态转换。
五阶段机制
- 估算:优先使用模型供应商返回的 token 用量,并为下一次回答和工具输出预留空间。
- 选择切点:从最近消息向前回溯,在合法的用户或助手消息边界切分。
- 生成摘要:保存目标、进展、关键决定、待办事项和相关文件。
- 重建上下文:用压缩检查点替换旧历史,再拼接保留的近期消息。
- 记录结果:输出压缩前后 token、触发原因、摘要数量、保留数量和异常信息。
切点不能把工具调用和工具结果拆开,否则重建后的对话协议会失去语义完整性。
运行时位置
自动压缩适合发生在一个回合结束后、下一次模型请求前。手动压缩可以复用同一实现,只改变触发方式。压缩检查点应进入智能体会话持久化,恢复会话时再作为明确的摘要消息注入。
设计原则
- 未知上下文窗口大小时,不要凭猜测触发阈值压缩。
- 保留近期消息尾部以及关键决定、约束和文件信息。
- 压缩失败时保留现有上下文,并通过事件暴露异常。
- 测试多轮重复压缩后,早期关键约束是否仍然存在。
- 把压缩率、失败率和触发原因纳入可观测性。