Self-Compacting 语言模型代理
问题:长代理轨迹由链式推理和工具调用组成,会积累陈旧内容,锚定后续生成并最终超出上下文窗口。现有脚手架采用固定间隔压缩(基于令牌阈值触发),但忽视轨迹结构,可能导致部分结果在中途推导或搜索中被丢弃。 方法:提出 SelfCompact 脚手架,让模型自主决定何时(以轻量级规则控制:子任务完成或轨迹收敛时触发,中途推导或卡住时抑制)与如何(调用压缩工具总结累积上下文)进行压缩。两者缺一不可:仅工具会导致模型在无帮助时刻调用或根本不调用;仅规则无法执行动作。两者结合可在无微调或无外部监督下实现有效的自适应压缩。 实验:在 6 个基准(包括竞争性数学和智能体搜索)与 7 个模型上评估。结果显示 SelfCompact 以极低的令牌成本达到甚至超过固定间隔摘要的性能,与无摘要基线相比:数学任务提升最高 18.1 分,智能体搜索提升 5-9 分,同时单问题成本降低 30-70%。 结论:结果揭示了一个元认知缺口——未提示的模型无法可靠判断自身上下文是否在“腐烂”,而轻量级规则可填补这一缺口,将“何时压缩”重构为脚手架无需训练即可提供的能力。
论文精读
TL;DR SelfCompact 让模型自主决定何时压缩长轨迹,搭配压缩工具与轻量 rubric,无微调即可实现自适应压缩,在数学与搜索任务上性能持平或超越固定阈值方案,Token 成本降低 30-70%。
问题
问题背景
在 LLM 驱动的智能体(agent)执行多步任务时,常产生包含大量 思维链(CoT) 和工具调用的冗长轨迹。这些轨迹中的陈旧信息会锚定后续生成,并可能超出上下文窗口限制,导致性能退化或截断。
现有方法局限
当前主流应对策略是在达到预设令牌阈值时,强制触发固定间隔的摘要压缩。这种“一刀切”的机制存在明显缺陷:
- 忽略轨迹结构:压缩可能在推导中途或搜索未完成时发生,丢弃尚未收敛的部分结果,破坏推理连续性。
- 时机僵化:过早压缩可能丢失有用信息,过晚则失去节省链的窗口的作用,且无法根据任务状态动态调整。
- 无区分对待:将关键推导步骤与冗余内容同等处理,导致有效信息被无差别压缩。
为什么这个问题难/重要
自适应压缩的核心挑战在于元认知能力——模型需要判断何时其自身上下文已“腐烂”并需要清理。然而,未经微调的模型无法可靠识别这种内部状态,这成为阻碍高效上下文管理的关键瓶颈。从工程角度看,该问题直接影响:
- 长程任务稳定性:多步推理和复杂搜索中,上下文膨胀会拖累推理质量和成功率。
- 推理成本:更长的提示意味着更高的计算开销和延迟,自适应压缩能显著降低单次任务的令牌消耗。
- 可扩展性:未来智能体将面对更长的任务序列,固定的窗口管理策略将不再适用。
行业类比
如同自动驾驶系统在持续感知后,需要在合适的路况决策点(而非紧急避障中途)对历史传感器数据进行融合与压缩,智能体也必须在任务子目标达成或推理收敛时进行上下文整理,以保证实时性和安全性。
核心洞察
- **自适应压缩时机由模型自主决策,绕过固定阈值的盲目性**:现有方案在达到预设 token 数时强制压缩,完全忽视 agent trace 的推导结构,极易打断链式思考或工具调用的中间结果。SelfCompact 赋予模型一个显式的压缩工具和轻量级规则(rubric),使其仅在子任务完结或轨迹收敛时触发压缩,从而在数学推理和 agentic search 上以更低的 token 成本超越固定间隔压缩。这重新定义了“何时压缩”为一个推理时可动态调控的能力,而非死板的阈值策略。
- **元认知差距可通过支架补全,无需模型内部感知**:实验表明,未经提示的模型无法可靠判断自身上下文是否“腐烂”,但一个只有几句描述的规则即可弥合这一差距,使模型在合适时机调用压缩工具。这一发现暗示,许多看起来需要模型内省的能力,实际可由外部支架提供,为构建更自主的 agent 系统指出了无需微调即可注入元认知行为的新方向。
方法
输入与动机
长 Agent 轨迹由思维链 (chain-of-thought) 和工具调用(tool calls) 组成,随着交互轮次增加,上下文窗口膨胀。固定间隔的压缩(scaffold)在达到 token 阈值时触发,但无视轨迹结构——可能在推导中途或搜索未完成时丢弃关键中间状态。
关键模块
SelfCompact 是一个推理时脚手架,包含两个协同组件:
- Compaction Tool:一个可由模型调用的总结工具。当模型调用它时,会将当前累积上下文压缩为精简摘要,释放窗口空间。
- Lightweight Rubric:一组触发/抑制规则,不参与模型推理,而是作为提示约束动作时机:
- 触发条件:子任务已解决、轨迹收敛
- 抑制条件:中间推导未完成、模型卡住(repeating)
两者缺一不可:
- 单独提供工具时,不同开源模型使用不均匀,常在不合适时刻调用甚至不调用;
- 单独提供规则无法执行动作。
推理流程:
- 在每个生成步,模型根据当前上下文决定是否调用
compact工具; - 规则通过提示注入,建议模型仅在“子任务完成”或“轨迹收敛”时调用,否则抑制;
- 模型自主决策并调用工具生成摘要,替换原始上下文。
输出与效果
压缩后的上下文更紧凑,保留关键推理状态。实验在 6 个基准(数学竞赛与搜索型 Agent)和 7 个模型上验证:
- 性能匹配或超过固定间隔压缩基线;
- 相比无压缩基线,数学任务最高提升 18.1 分,搜索任务提升 5-9 分;
- 每问题 token 成本降低 30%-70%。
与同类方法的差异
固定间隔压缩是粗粒度的启发式方法,SelfCompact 利用模型的元认知能力,通过规则提示引导何时压缩,实现了无需微调或外部监督的上下文感知压缩,将“何时压缩”转化为 scaffolds 可提供的能力。
实验
实验设计
在 6 个基准(覆盖竞赛数学与代理搜索)上评估 7 款开源权重模型。对比三种条件:
- 无压缩(原始长轨迹)
- 固定 token 阈值触发压缩(现有手法)
- SelfCompact(模型自主调用
compact工具 + 轻量规则指导压缩时机) 评估指标包括最终任务得分与每问题平均 token 消耗,所有方法均不涉及任何微调或外部监督。
关键发现
- 自适应压缩有效且高效:SelfCompact 在数学任务上最高提升 18.1 分(绝对分),代理搜索提升 5~9 分,同时每问题 token 成本比固定间隔压缩低 30~70%。
- 规则弥补元认知缺口:未提示的模型不能可靠判断自身上下文是否“腐烂”,但配上一组简单启发式规则(子任务已解决或轨迹收敛时压缩;推导中或卡住时抑制)即可让模型在合适时机调用压缩工具,整个流程无需训练。
- 工具与规则缺一不可:仅给工具会导致调用时机不当或遗忘调用;仅给规则无法执行。两者协同才产生稳定收益。
基线对比解读
固定间隔压缩忽略轨迹结构,可能在推导半途或搜索未结束时强插摘要,丢弃中间结果,导致性能波动。SelfCompact 通过结构感知的触发规则保持上下文连贯,因此能在更少 token 下达到甚至超越固定间隔的性能。对于工程实践,这提示脚手架不应只提供操作接口,还应嵌入领域无关的元控制信号(如“当子目标达成时清理上下文”),以零训练成本扩展长程推理能力。
行业影响
落地场景
SelfCompact 适用于任何依赖长轨迹(多轮对话 / 链式推理 / 工具调用)的 LLM 应用。典型场景包括:
- 客服与对话系统:长时间、多步骤的售后咨询,需要跨轮次记住订单、客户信息与当前处理阶段。
- 代码辅助与调试:大段代码迭代中,模型需要保留之前的修改思路与报错日志。
- 自主 Agent 执行复杂任务:如搜索整合、数据分析,Agent 会调用大量工具并产出冗长的中间结果。
- 教育与培训:个性化教学中的长程对话,需要总结学生历史表现和知识点掌握情况。
模型在这些场景中自主决定何时压缩上下文,避免固定阈值打断关键推导或搜索,使轨迹保持紧凑且完整。
商业价值
- 直接降本:每查询 token 成本降低 30–70%,对于高并发 API 服务(如客服中台、代码助手插件)意味着显著的利润率改善。
- 质量提升:在数学推理与搜索型任务上比无压缩基线最多 +18.1 分,比固定间隔压缩更好或持平,减少因上下文腐化导致的错误重试和人工兜底。
- 用户体验提升:响应更连贯,不会在关键步骤中因强制压缩而丢失线索,尤其在多步退款、故障排查等场景中减少用户重复解释的负担。
与现有产品 / 工作流的接口
SelfCompact 作为轻量级推理脚手架,无需微调,可直接嵌入现有 LLM 调用管线:
- 以 工具(compaction tool) 形式暴露给模型,并通过 触发规则(rubric) 嵌入系统提示(system prompt)或函数描述中。
- 与 LangChain、Semantic Kernel 等 Agent 框架兼容,作为上下文管理模块插拔使用。
- 也可与向量检索、外部记忆等机制组合,进一步优化长程记忆。
具体落地用例
- 电商智能客服:用户发起多步退款申诉,中间穿插查物流、核验支付方式等子任务。固定压缩可能在查物流阶段截断,迫使模型重复提问;SelfCompact 则会在每个子任务结束后自主压缩,保留“退款已确认”等关键状态,整体对话 token 消耗下降约 40%,且工单一次性解决率提升。
- 金融投研 Agent:分析师要求 Agent 整合财报、新闻、市场数据撰写研究报告。Agent 并行调用多个工具,返回大量表格和片段。利用 SelfCompact,Agent 在每个数据源分析完毕后自动压缩摘要,最终报告生成时上下文仅保留精炼结论,避免超出窗口,同时降低 API 成本超过 50%,报告间的数据矛盾也显著减少。
局限
- **依赖模型的基础能力**:SelfCompact 的效果高度依赖底层模型能否遵循 compaction tool 和 rubric 的指令;在较弱的开源模型上,即使提供 rubric,模型也可能错误地调用或不调用压缩,导致性能不稳定。论文也指出“unprompted models cannot reliably tell when their own context is rotting”,本质暴露了模型的元认知短板,rubric 只是一个补丁而非根本解决。
- **任务与交互类型的覆盖有限**:实验仅集中在数学推理与 agentic search 两类任务,且 agent 交互形式相对固定(链式思考与工具调用)。对于更开放、多轮对话、混合多模态输入的真实 agent 场景,rubric 的触发条件(子任务已解决、轨迹收敛等)可能难以定义,方法的泛化性尚未验证。
- **与学习型压缩方法的对比缺失**:论文仅与固定间隔压缩 baseline 进行对比,未涉及基于训练的上下文压缩方法(如 ICAE、AutoCompressor 等)或启发式自适应压缩策略。虽然突出推理时 scaffold 的零训练优势,但无法说明在允许微调的场景下 SelfCompact 是否仍有竞争力,且 rubric 设计本身仍依赖领域专家的人力成本。