编码智能体处理长任务时,上下文总会越堆越满,传统做法是在窗口快到上限时,机械地做一次「压缩摘要、丢掉旧历史」。一篇 10 月 2 日挂出 arXiv 的论文(2610.02163,SMU、NTU、Harvard 联合)把这个动作改成了可学习的:让智能体自己决定什么时候压缩、保留哪些工作状态、压缩之后怎么续上,而不是等到长度触发才动手。
具体机制分三步。先在终端 REPL 脚手架里加一个 compact() 动作,它会把先前的历史替换成模型自己写的「Auto Context Summary」,但原始任务始终留在上下文里。接着让基础 agent 照常跑,同时由一个裁判(论文用 GPT-5.5-Codex)逐次审查它的压缩时机、摘要内容和压缩后的续接动作,把有问题的决定在执行前就换掉——这意味着每条训练轨迹都从「被修正过的状态」继续,自然带了「如何好好续上」的示范。最后把这些修正后的轨迹拿去做监督微调,再用任务成功奖励做强化学习,让编码能力和压缩能力被一起训练。底座用的是 Qwen3-Coder-30B-A3B。
结果相当能打。在同一脚手架下,SWE-bench Verified 从基础模型的 30.4% 提升到 39.6%(绝对 +9.2 个点),SWE-PolyBench Verified 从 19.5% 提升到 24.5%(+5.0 个点)。更有意思的是:这些增益在「256K 窗口、永远不会溢出」的设置下依然成立。这一点很反直觉——通常我们认为压缩是为了省空间,可这里空间根本没到上限,学会主动压缩仍然涨分。它和本站覆盖过的几条上下文管理路线形成对照:Headroom(1607)是在模型输入前做静态瘦身,把上下文管理做成可插拔环节;PoS 显式信念状态(1614)是推理期显式维护信念、检测空转。AutoCompact 的不同在于:它不是外部帮你压,而是把「何时压、压什么、怎么续」直接训进模型本身。
论文把这种「即便放得下也要压」的现象,和另一条结论连在一起:长而陈旧的历史,哪怕没超窗口,也会伤害表现。这呼应了前几日一篇伯克利工作的发现——一个前沿模型在超长 agent 日志上只答对 9/40,一旦给到当前状态就能答对 40/40。所以 AutoCompact 的真正贡献,是把压缩从「溢出时的兜底」升级成「思考时的工具」:模型学到的是保留对当下任务有用的状态,而不是机械地留着全部历史。这种「状态胜过历史」的取向,正成为上下文管理的新共识。
对做编码智能体的人,这篇论文的实用提示有几条。其一,与其只按长度触发压缩,不如在任务阶段切换的边界处做压缩——模型更容易判断「这一段可以收尾了」。其二,压缩要保留原始任务和近期关键轮次,否则 agent 会忽略摘要、重复搜索,论文指出这正是旧方法掉分的根源。其三,它属于「harness 能力往权重里迁移」这一波趋势(同系列的 AutoHarness、AutoContext 都指向同一方向):脚手架提供机制,模型学会何时调用。需要留一份清醒的是,论文目前没有放出公开权重或独立代码仓库,它是一个方法论文,不是开箱即用的产品;跨不同 harness(Claude Code 风格 vs mini-SWE-agent 风格)的鲁棒性也还待验证。但方向很清楚——把上下文管理的决策权,越来越多地交给模型自己。这对编码助手的未来形态是个明确信号:脚手架负责提供机制,模型负责学会何时调用,二者分工会比今天更干净,也更容易在不同项目间复用同一套方法论。