跳转至

ACON: Optimizing Context Compression for Long-horizon LLM Agents

会议: ICML2026
arXiv: 2510.00615
代码: https://github.com/microsoft/acon
领域: LLM Agent / 上下文压缩 / 长程任务
关键词: LLM Agent、上下文压缩、Prompt优化、轨迹对比、压缩蒸馏

一句话总结

Acon 用失败轨迹对比来优化自然语言压缩指南,同时压缩 agent 的历史和观察上下文,在 AppWorld、OfficeBench 和多目标 QA 上把峰值 token 降低 26% 到 54%,并保持或提升长程任务成功率。

研究背景与动机

领域现状:LLM agent 已经被用于办公自动化、应用操作、搜索问答等多步任务。与单轮问答不同,agent 需要持续保存观察、动作、工具输出和中间状态,后续每一步决策都依赖这些交互历史。

现有痛点:长程 agent 的上下文会不断增长,带来两类问题。第一,Transformer 推理和 KV cache 成本随上下文变长而上升,内存和延迟都不可控。第二,长上下文里混入大量过时或无关信息后,模型更容易被噪声分散注意力,尤其是较小模型会明显掉任务成功率。

核心矛盾:上下文压缩必须同时“狠”和“准”。如果只截断或泛泛总结,文件路径、API 参数、账户状态、工具返回中的约束等关键状态很容易丢失;如果保留太多,又不能真正降低成本。更难的是,很多 proprietary LLM 不能做梯度更新,RL 式压缩策略也需要昂贵 rollout。

本文目标:作者希望构造一个模型无关的压缩框架,在不改 agent 权重的前提下,自动学习不同环境中的压缩规则,使压缩后的上下文既短又保留完成任务所需状态,并且能把压缩器蒸馏到小模型以降低额外开销。

切入角度:论文的观察是,压缩失败会在轨迹层面留下很强的诊断信号:同一个任务在完整上下文下成功、压缩上下文下失败,说明压缩器漏掉了某些关键状态。把这种前后上下文对比交给 LLM 分析,可以生成自然语言反馈,用来更新压缩 prompt。

核心 idea:不用微调 agent,而是在自然语言空间里迭代优化“应该保留什么、删掉什么”的压缩指南,再用成功轨迹蒸馏小型压缩器。

方法详解

Acon 可以看成一个插在 agent 与环境之间的上下文管理层。Agent 仍然用原始 ReAct 或 benchmark 指定的工具格式决策;Acon 只在历史或观察超过阈值时调用压缩器,把长文本改写成更短但信息密度更高的状态摘要。关键不在于手写一个通用总结 prompt,而是用训练任务中的成功/失败轨迹自动改进这个 prompt。

整体框架

输入是一个长程 agent benchmark、固定的 agent LLM、固定系统 prompt、以及一批训练任务。每个时间步,agent 会看到历史 \(h_{t-1}\) 和最新观察 \(o_t\)。如果历史长度超过阈值 \(T_{hist}\),Acon 用压缩器 \(f(h_t;\phi,P_{hist})\) 生成压缩历史;如果观察超过阈值 \(T_{obs}\),则用 \(f(o_t,h_{t-1};\phi,P_{obs})\) 生成压缩观察。压缩后的上下文替换原上下文进入下一步决策。

训练阶段先用初始压缩指南跑任务,收集“完整上下文成功、压缩上下文失败”的 contrastive subset。优化器 LLM 阅读原始上下文、压缩上下文和失败信息,写出压缩遗漏了什么、哪些状态应该保留。随后另一个 update prompt 汇总多条反馈,更新压缩指南。第一轮主要最大化任务成功率,论文称为 utility maximization;第二轮只在压缩后成功的任务上分析哪些信息实际被用到,进一步压短上下文,称为 compression maximization。最后,作者用优化后的大模型压缩器产生输入输出对,LoRA 微调 Qwen3/Phi 等小模型作为压缩器。

关键设计

  1. 历史与观察的分离式压缩:

    • 功能:同时处理 agent 历史增长和单步环境观察过长这两种上下文来源。
    • 核心思路:历史压缩只在 \(|h_t|>T_{hist}\) 时触发,观察压缩只在 \(|o_t|>T_{obs}\) 时触发。历史压缩关注跨步状态、动作结果和未来约束;观察压缩关注当前工具返回中的有效字段,并可参考过去历史判断哪些字段相关。
    • 设计动机:长程 agent 的 token 爆炸不只来自历史,也来自一次工具调用返回的大表格、邮件、网页或文件内容。把两类压缩分开优化,比一个泛化 summary prompt 更能适配任务结构。
  2. 基于失败对比的压缩指南优化:

    • 功能:把稀疏的任务成败奖励转成可读的自然语言优化信号。
    • 核心思路:对于完整上下文成功但压缩上下文失败的任务,让 LLM 对比 \(H\)\(H'\),指出压缩版本丢失了哪些必要信息。多条反馈被聚合成新的压缩指南 \(P^{(1)}\)。论文还生成多个候选 prompt,在 contrastive tasks 上评估后选择最好者。
    • 设计动机:直接用 RL 优化压缩策略需要大量 rollout,且无法更新 API LLM。自然语言 prompt 优化把“压缩错在哪里”显式写出来,可在少量训练任务上快速迭代,并且对任意 agent 模型可用。
  3. 压缩最大化与压缩器蒸馏:

    • 功能:在保留任务成功率的同时进一步降低上下文长度和压缩器调用成本。
    • 核心思路:utility step 先确保不丢关键状态;compression step 再从已经成功的压缩轨迹里分析哪些内容真正被使用,要求 LLM 删除冗余描述。随后用优化指南下的大模型压缩输出作为教师数据,微调小模型压缩器,目标是最小化生成压缩文本的交叉熵。
    • 设计动机:只追求成功率容易产生保守摘要,token 降幅有限;只追求短又会丢状态。两阶段优化把 reward 和 cost 分开处理,蒸馏则避免每一步都调用昂贵大模型做压缩。

损失函数 / 训练策略

方法的目标可写成 \(\max_\psi E[R(s_T(\psi))]-\lambda E[C(H'(\psi))]\),其中 \(R\) 是任务终止奖励,\(C\) 是动态上下文成本。实际优化不对 LLM 权重做梯度更新,而是用文本反馈更新压缩指南。蒸馏阶段使用教师压缩器生成 \((x,y)\) 对,对学生压缩模型做标准 next-token cross-entropy 训练;历史压缩时 \(x=h_t,y=h'_t\),观察压缩时 \(x=(h_{t-1},o_t),y=o'_t\)

实验关键数据

主实验

主结果覆盖 AppWorld、OfficeBench 和 8-objective QA。下面选取核心表格中的代表性数字,重点看任务性能与峰值 token 的权衡。

Benchmark / 设置 方法 任务指标 Steps Peak tokens Dependency 说明
AppWorld / history / gpt-4.1 No compression 56.0 Acc 16.14 9.93K 5.96M 完整上下文上界,成本最高
AppWorld / history / gpt-4.1 Prompting 43.5 Acc 24.01 6.93K 5.29M 普通压缩显著掉成功率
AppWorld / history / gpt-4.1 Acon UT 51.2 Acc 20.92 7.17K 4.49M token 降低且中等难度任务更稳
AppWorld / history / gpt-4.1 Acon UT+CO 56.5 Acc 22.82 7.33K 4.69M 达到或略超完整上下文,同时峰值 token 降约 26%
AppWorld / observation / gpt-4.1 Prompting 42.3 Acc 17.38 6.58K 4.09M 普通 observation 压缩仍丢关键信息
AppWorld / observation / gpt-4.1 Acon UT+CO 53.6 Acc 18.12 7.43K 4.93M 比 baseline 压缩更高成功率

OfficeBench 与 8-objective QA 上,Acon 同样改善准确率/效率权衡。

Benchmark 方法类别 主要结果 论文结论
OfficeBench history compression Acon 将 peak context 降近 30%,准确率保持 74% 以上 办公任务需要精确信息,UT 通常比过度压缩更稳
8-objective QA history compression Acon 在 EM/F1 上超过 no compression,同时 peak tokens 和 dependency 分别降 54.5% 和 61.5% 检索问答中去掉冗余上下文可提升事实聚焦
小 agent Qwen3-14B distilled compressor + compressed trajectories AppWorld 从 25.6% 到 33.9%,8-objective QA EM 从 0.158 到 0.23 压缩能缓解小模型的长上下文干扰
压缩器成本 gpt-4.1-mini / Qwen3-14B distill 成本从 gpt-4.1 的 $0.045 降到 $0.014 或 $0.0004 蒸馏显著降低压缩模块开销

消融实验

论文主要分析 compression threshold、prompt optimizer 和实际 API/延迟成本。

消融维度 配置 AppWorld 平均 Acc 结论
Prompt optimizer o3 + contrastive feedback 51.2 默认设置最好
Prompt optimizer o3,无 contrastive 50.6 (-0.6) 只看失败轨迹不如成功/失败对比
Prompt optimizer gpt-4.1 + contrastive 47.6 (-3.6) 优化器模型弱一些仍可用,但指南质量下降
Prompt optimizer gpt-5 + contrastive 50.6 (-0.6) 不同强模型差距小于是否有对比反馈
实际效率设置 API cost / task Latency / task 说明
No Compression $0.331 73.24s 无压缩器调用,token 成本高
Acon history $0.285 87.68s 降低 API 成本,但多一次压缩调用带来延迟
Acon observation $0.272 101.92s 成本最低,延迟最高
阈值分析 观察 启示
阈值过小 token 更少,但压缩调用更频繁且准确率下降 过早压缩会把仍有用的信息改写掉
阈值过大 准确率更接近 no compression,但成本较高 压缩收益不足
中等阈值 history 4096、observation 1024 效果最好 作为默认部署折中

关键发现

  • Acon 最重要的收益不是单纯省 token,而是把上下文变得更“任务相关”。在 AppWorld hard/medium 等长轨迹上,普通压缩会严重掉分,Acon 能保留关键状态。
  • UT 和 CO 是可选择的 trade-off。AppWorld 这类工具输出冗余多的环境适合 UT+CO;OfficeBench 和 QA 这种细节敏感任务中,UT 往往更稳。
  • 压缩器可以小模型化。蒸馏后的小压缩器保留超过 95% 教师表现,把压缩成本降到接近可忽略,但仍会引入额外延迟。
  • 小 agent 受益尤其明显。压缩后的轨迹减少 distractor,让 Qwen3-14B 这类较小模型在长程任务中更容易做对决策。

亮点与洞察

  • 这篇论文把“压缩 prompt 怎么写”从手工规则变成了可优化对象,而且优化信号来自 agent 真正失败的轨迹,比泛泛总结更贴近任务。
  • 失败对比的设计很实用。完整上下文成功、压缩上下文失败时,差异几乎就是压缩器的错误定位,这比只看最终 reward 更容易转成自然语言反馈。
  • Acon 不是和 agent 绑死的模型优化方法。它不要求访问 agent 权重,因此对 API LLM、闭源模型和已经部署的 agent 系统都更现实。
  • 压缩在这里还有“去噪”作用。实验中部分压缩设置超过 no compression,说明长上下文并不总是信息越多越好,保留合适状态有时比保留全部上下文更利于推理。

局限与展望

  • Acon 需要训练任务 rollout 来收集成功/失败对比,虽然比 RL 轻,但仍依赖 benchmark 或可重复环境。
  • 压缩引入额外延迟。即使 API 成本下降,真实交互系统可能更在意 wall-clock latency,需要异步压缩、缓存或更小压缩器进一步优化。
  • 指南优化依赖强 LLM 作为 optimizer。论文显示 gpt-4.1 可替代 o3 但性能下降,说明优化器质量仍是瓶颈。
  • 目前实验主要是文本工具环境,尚未覆盖更复杂的多模态 agent、浏览器 GUI、大规模代码仓库等上下文结构。
  • 压缩错误很难完全避免。高保真任务中 CO 可能删掉细微事实,因此部署时需要根据任务风险选择保守或激进压缩策略。

相关工作与启发

  • vs FIFO / Retrieval: FIFO 只保留最近历史,Retrieval 只按相似度取片段,二者都缺少“任务状态应该保留什么”的环境知识;Acon 用失败对比学习这种知识。
  • vs LLMLingua / generic prompting: 这些方法压缩文本本身,但不一定理解 agent 的动作后果和未来依赖;Acon 的指南针对 trajectory failure 优化。
  • vs ReSum / RL-based agent compression: ReSum 和类似方法往往优化 agent 或策略模型,Acon 不更新 agent 权重,更适合闭源 API agent。
  • vs KV cache compression: KV 压缩作用在底层注意力缓存,Acon 作用在语义上下文文本;两者可互补,一个降低底层存储,一个降低输入冗余和推理干扰。

评分

  • 新颖性: ⭐⭐⭐⭐☆ 用轨迹对比做自然语言压缩指南优化,切中长程 agent 的真实痛点。
  • 实验充分度: ⭐⭐⭐⭐☆ 覆盖三个长程 benchmark、两类压缩、小模型蒸馏和成本分析;真实开放环境仍可更多。
  • 写作质量: ⭐⭐⭐⭐☆ 问题、方法和实验都比较清楚,附录表格丰富;个别符号和 prompt 优化流程读起来略密。
  • 价值: ⭐⭐⭐⭐⭐ 对长程 LLM agent 的部署成本、上下文干扰和小模型可用性都有直接帮助。