Agent Core & Compression

自适应轨迹压缩与在线上下文总结

解密 conversation_compression.py 触发机理与 System Prompt 历史摘要拼接
上下文压缩
📊 图 2-3-1:上下文大小检测、小模型总结与会话数据库截断流图

📉 1. 轨迹压缩 (Context Compaction) 触发点

在长对话中,随着工具调用的叠加,上下文可能会逼近 LLM 窗口极限。在 agent/conversation_compression.py 中,系统启动压缩判定:

def should_compress(self, current_tokens: int) -> bool:
    # 读取配置中的临界百分比(例如最大窗口的 80%)
    limit = self.window_limit * self.threshold_percent
    return current_tokens >= limit
轨迹压缩与数据库裁剪
📊 图 2-3-2:轨迹压缩触发、小模型总结与数据库物理裁剪时序图

🤝 2. Summary 拼接与数据库物理裁剪

一旦触发,系统拉起辅助模型,把即将被裁剪的历史(如前 5 轮对话和工具执行内容)喂给它,生成 concise Markdown Summary。随后将 Summary 插入系统提示词,并在 state.db 中物理删除这前 5 轮的历史消息块,仅保留最新尾部,使得首字延迟暴跌。