ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销
6270点击    2026-11-13 17:07

Coding Agent 的上下文越长,每一步调用的开销越高,能否在不影响任务完成的前提下压缩上下文?


Coding Agent 解决软件问题时,需要反复查看代码、修改程序、运行测试:每一步返回的文件内容、搜索结果和日志,都会留在上下文里,下一轮调用时还要整段重新带上。任务越难,上下文越长,每一步要处理的 token 就越多,费用也越高。统计发现,在 SWE-bench Verified 上,这些 observation 占了总 token 消耗的 45.7%,在 Terminal-Bench 上最高达到 67.8%。


能否直接压缩这些 observation?难点在于:压缩时很难知道被删去的内容后续是否还会被用到。


来自清华大学人工智能学院的团队提出了 CoACT:一种面向 Coding Agent 的 observation 压缩方法。它不看压缩结果像不像原文,而是看压缩之后,Agent 的下一步动作变没变。 在 SWE-bench Verified 的 200 个实例、三个 Agent 模型上,CoACT 平均减少 33.0% 的总 token 消耗,平均 PASS@1 从 69.0% 到 71.0%,任务表现与未压缩时相近。该工作已经被 CCF A 类会议 ICSE 2027 直接接收(Top 5%)。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


  • 论文标题:CoACT: Action-Preserving Observation Compression for Coding Agents


  • 论文链接:https://arxiv.org/abs/2607.02911


  • 代码地址:https://github.com/THU-Agent/CoACT


一、现有压缩方法的局限


已有方法大致分两路。一路是改写历史:滑动窗口丢掉较早的命令和输出,AgentDiet 则让模型定期回看历史,自己删掉重复或用不上的内容。但历史一旦被改写,原有的 KV Cache 就没法完整复用,模型还得重新预填充改写后的内容,token 少了,开销未必变少。


另一路是在新 observation 进入上下文之前就先压缩。之前的历史原封不动,缓存照常复用。CoACT 选的就是这条对 KV Cache 友好的路。


走这条路,先要想清楚压缩的目标。Agent 的目的是完成任务,因此压缩的效果应以任务能否完成来衡量。所以目标是:在任务成功率(PASS@1)与未压缩 Agent 接近的前提下,尽可能减少总 token 消耗。


这需要在两方面权衡:删减过多,Agent 可能缺少必要信息,导致任务失败或重复读取;删减过少,则无法有效降低开销。


二、核心想法:下一步动作保持(NAP)


最直接的验证办法,是让 Agent 读完压缩结果把任务跑完。但同一份 observation 可以有很多种压缩,每种都跑完全程,成本太高;一次任务里还要压缩很多次,也难以判断最终结果是由哪一次压缩造成的。


我们认为,Agent 的执行过程可以看作 “读取输出、执行动作、获得新输出” 的循环。假设初始环境相同、环境对相同动作的响应也相同,那么只要每次压缩后 Agent 的下一步动作不变,环境收到的操作和返回的结果就一样,往后的动作序列和最终结果,理论上也不会变。


基于这个推导,我们提出下一步动作保持(Next-Action Preservation,NAP):保持任务目标和历史相同,分别让 Agent 读压缩前后的 observation,再比较它接下来的动作。比如读完一段代码后,Agent 本来要去查看里面调用的某个函数,换成压缩结果后它还是去看这个函数,则认为这次压缩保持了下一步动作。这样可以对每次压缩单独检验,无需等到任务结束。


三、怎么造训练数据:


基于 NAP 的压缩示范构造


有了 NAP,我们训练了一个轻量压缩器(以 Qwen3.5-4B 为基座)。做法分几步:


先让教师模型 Gemini3-Flash,为同一份 observation 生成 8 份压缩候选;再让 Agent 在原始 observation 下多次采样,得到 8 个参考动作。每份压缩结果引出的动作,会与参考动作逐个比较,取最相似的 3 个求平均,得分达到 0.6 才算通过。比较时并不是比字符串,而是解析命令的操作类型、目标文件和读取范围,写法不同但读取同一段代码的命令,会被识别为相同操作。


通过检查后,再从中挑选更短的版本,作为训练示范。如果 8 份候选全军覆没,就用原始 observation 当目标,让模型学会该留的时候就留。


四、两阶段训练:离线引导与在线对齐


只用未压缩 Agent 的轨迹造数据,有个隐患:收集数据时,Agent 的历史都是完整的;真正部署后,前几步读到的内容也被压缩过,看到的历史已经不一样了。


CoACT 的做法是:第一阶段用离线轨迹做监督微调,得到初始压缩器;第二阶段让它实际参与 Agent 运行,保留此前已压缩的历史,重新做动作比较和长度筛选,得到第二批数据;最后合并两阶段数据训练最终压缩器。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


对照实验中,只用离线数据训练的压缩器,PASS@1 为 56.0%,略低于未压缩的 57.0%;加入第二阶段的在线数据后升到 60.5%,总 token 消耗基本相当。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


五、实验结果:省下三分之一,性能没有变


在 SWE-bench Verified 随机抽取的 200 个实例上,CoACT 在 Qwen3.5-35B-A3B、Deepseek-v4-Pro 和 Gemini3-Flash 三个模型上均减少了 token 消耗:Qwen 从 3.795M 降到 2.428M,Deepseek 从 1.068M 降到 0.868M,Gemini 从 0.685M 降到 0.422M,平均降幅 33.0%。三个模型的平均 PASS@1 从 69.0% 变为 71.0%:Qwen 和 Gemini 分别提升 3.5 和 4.0 个点,Deepseek 略降 1.5 个点。平均交互步数也从 56.5 步降到 51.2 步。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


压缩后,那些又长又占地方的 observation 明显变少了:在 Qwen3.5-35B-A3B 上,超过 1K token 的 observation 占比从 32.3% 降到 9.4%。


和已有的 observation 压缩方法相比,差距更有意思。以 Qwen 为例,LLMLingua-2 压缩后,PASS@1 从 57.0% 降到 50.0%,总 token 反而从 3.795M 涨到 10.329M;SWE-Pruner 涨到 4.471M;LongCodeZip 降到 3.165M;CoACT 为 2.428M,PASS@1 为 60.5%。在 Deepseek 上,三种基线的总 token 都高于未压缩的 1.068M,CoACT 则降到 0.868M,是两个评测模型上总 token 最低的方法。这说明,仅以缩短 observation 长度为目标,并不能保证整个任务的总开销下降。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


CoACT 作为单步压缩方法,还能和历史压缩方法配合。单独使用 AgentDiet 时,总 token 虽然减少,估算总费用却从未压缩的 41.26 美元涨到 45.65 美元,原因是改写历史影响了 KV Cache 复用。在 AgentDiet 流程中先加入 CoACT,估算总费用降到 25.88 美元,任务成功率保持相近,比单独使用 AgentDiet 少了约 43.3%。


ICSE 2027 | 清华提出CoACT:降低Coding Agent 33% Token开销


作者介绍


本研究由清华大学人工智能学院 AI Agent 课题组完成。通讯作者为清华大学人工智能学院李佳助理教授,主要研究方向为 AI + 软件、可信智能体。第一作者陈浩瑞为清华大学人工智能学院 2027 级直博生(拟入学),主要研究方向为 Efficient AI。


文章来自于微信公众号 “机器之心”,作者 “机器之心”

AI转型,免费服务,就找AITNT
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI代理

【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。

项目地址:https://github.com/browser-use/browser-use


2
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

3
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner