对话一长,Token 烧得肉疼。那怎么办,做压缩

Java实现代码

三层次压缩系统架构

解决长期对话中的上下文长度限制问题,通过三层渐进式压缩策略,在不丢失关键信息的前提下大幅度缩减上下文长度,实现无限长对话的能力。

  • 分层压缩:微观、自动、手动三层策略,粒度从细到粗

  • 智能触发:基于token估算自动判断压缩时机

  • 渐进保留:保留最近的关键信息,确保连续性

  • 可恢复性:压缩前保存完整对话,避免信息丢失

微观压缩:无感地进行轻量级压缩

  • 静默执行,每次 LLM 调用前运行

  • 将旧的、详细的工具输出替换为简短占位符

  • 保留最近的结果完整,以维持短期记忆

自动压缩:防止上下文爆炸

  • 存档优先:压缩前先完整保存,避免信息丢失

  • 智能摘要:用LLM生成高质量的对话摘要

  • 上下文重置:大幅缩减上下文,但保留核心信息

  • 路径嵌入:在消息中包含存档路径,便于调试

  • 结构完整:保持user-assistant对话结构

手动压缩:给予 Agent 主动控制权

  • Agent自主控制:Agent可以主动管理上下文长度

  • 任务驱动压缩:在合适的时间点(如任务切换时)触发压缩

  • 聚焦摘要:可以指定摘要重点,优化信息保留

  • 无缝集成:与自动压缩共享底层机制

架构演进与价值

从 TaskSystem 到 ContextCompactSystem 的升级: 维度TaskSystemContextCompactSystem对话长度受上下文限制支持无限长对话信息保留全量存储智能摘要+存档控制方式被动限制主动+自动压缩长期记忆任务文件对话存档+摘要上下文优化无三层智能压缩