对话一长,Token 烧得肉疼。那怎么办,做压缩
Java实现代码
三层次压缩系统架构
解决长期对话中的上下文长度限制问题,通过三层渐进式压缩策略,在不丢失关键信息的前提下大幅度缩减上下文长度,实现无限长对话的能力。
分层压缩:微观、自动、手动三层策略,粒度从细到粗
智能触发:基于token估算自动判断压缩时机
渐进保留:保留最近的关键信息,确保连续性
可恢复性:压缩前保存完整对话,避免信息丢失
微观压缩:无感地进行轻量级压缩
静默执行,每次 LLM 调用前运行
将旧的、详细的工具输出替换为简短占位符
保留最近的结果完整,以维持短期记忆
自动压缩:防止上下文爆炸
存档优先:压缩前先完整保存,避免信息丢失
智能摘要:用LLM生成高质量的对话摘要
上下文重置:大幅缩减上下文,但保留核心信息
路径嵌入:在消息中包含存档路径,便于调试
结构完整:保持user-assistant对话结构
手动压缩:给予 Agent 主动控制权
Agent自主控制:Agent可以主动管理上下文长度
任务驱动压缩:在合适的时间点(如任务切换时)触发压缩
聚焦摘要:可以指定摘要重点,优化信息保留
无缝集成:与自动压缩共享底层机制
架构演进与价值
从 TaskSystem 到 ContextCompactSystem 的升级: 维度TaskSystemContextCompactSystem对话长度受上下文限制支持无限长对话信息保留全量存储智能摘要+存档控制方式被动限制主动+自动压缩长期记忆任务文件对话存档+摘要上下文优化无三层智能压缩