把上下文当文件改,CLM 深研准度相对高 11.4% 算力少 21.5%

Context Language Models

Rulin Shao, Shannon Zejiang Shen, Junjie Oscar Yin, Yuetai Li, Minheng Wang, Hamish Ivison, Radha Poovendran, Nathan Lambert, Teng Xiao, Mike Lewis, Wen-tau Yih, Luke Zettlemoyer, Pang Wei Koh

cs.AI, cs.CL, cs.LG

2026-09-29

华盛顿大学与 Meta 把 live context 镜像成可 Bash 改写的文件,现成模型零样本即成 CLM。BrowseComp-Plus 上比最强摘要基线准度相对高 11.4%,算力少 21.5%。

这篇在解决什么

长程 agent 的上下文只会往上堆。现有系统把「何时压缩、压缩成什么样」写死在 harness 里:到长度阈值就做 Codex 式摘要,或者给模型一组固定动作,compaction、offload、retrieval。模型可以选时机,不能改动作集合本身。Recursive Language Models 把超长输入放进 REPL 变量按需读,但读进来的内容仍然追加到 live context,窗口还是单调变长。

华盛顿大学、Meta Superintelligence Labs、MIT 与 Trillium Labs 把管理权交回模型。标准 LM 每轮只是拼接新 token;CLM 每轮可以直接写出下一份完整上下文。

方法

把 live context 镜像成文件,路径写进 system prompt。模型用普通 Bash 改这个文件,改完立刻同步成下一轮输入;不改则默认追加。多份上下文文件就是多 agent:建文件拉起 subagent,删文件收掉。

轨迹里能看到策略自己长出来:163 次原地改写维护 subagent 记分板并把窗口压在 6-8K,给自己加 notes 角色,定义 compactturns 并调用 37 次。

自然语言一句话就能改策略。BrowseComp-Plus 上,Claude 4.6 Sonnet 接到「超过 Y token 就压到约 4K」,首次压缩中位数跟着 16K、24K、32K 走;接到「只在子任务边界压缩」,边界两轮内压缩比例从 0.40 升到 0.88;接到「改前先整份备份」,完整备份从 0 升到 0.77。文本进化用 rollout 写 skill 文档、开发集筛选,assisted 是 Qwen3.6-27B 配 Claude Fable 5.1 proposer,self-evolution 是 Opus 5 一身两职,ContextBench hold-out 最多加 35.9 分且算力下降。参数侧用 stepwise GRPO,把轨迹 outcome advantage 赋给每一段,再加 success-gated efficiency advantage:只在成功轨迹之间按 prefix-reuse FLOPs 排名,失败轨迹效率分为 0,避免靠乱删上下文刷效率。

中间编辑会让标准 prefix cache 从第一个不匹配 token 起全部重 prefill。论文用 prefix-reuse FLOPs 把这笔重算计进轨迹。Suffix Cache Reuse 把存活后缀的 KV 搬过来只改 RoPE,新插入段才 prefill,每轮最多搬 K=6 段。复用的是编辑前的状态,这是近似。

结果

主实验零样本,Qwen3.6-27B、32K,对照 Codex 风格摘要(预算 75% 触发)、MEM1、Self-Compact、ACM、RLM,骨架均为 Mini-SWE-Agent。BrowseComp-Plus 共 830 题。

任务CLM对照
BrowseComp-Plus 准确率59.4%比 Codex 摘要相对高 11.4%
同上算力比摘要少 21.5% FLOPs,比 MEM1 少 28.9%
TerminalBench 2.1与摘要持平算力为摘要的 70%
TBLite73.7%摘要 67.0%,CLM 用其 91% FLOPs

数学优化四题用 Claude 4.6 Sonnet、32K,最多 100 次评分或 5 小时,对照 OpenEvolve。CLM 四题 best-of-run 全最高:圆堆积 2.618 对 2.541(+3.0%),Heilbronn 0.03653 对 0.03127(+16.8%);subagent 圆堆积到 2.636。每题一次 run。

12 小时 EdgeBench-10,Qwen3.6-27B 上 CLM 44.6 分、179 PFLOPs,摘要 42.3 分、437 PFLOPs,分高约 5%、算力少 59%。Claude 4.6 Sonnet 上 CLM 51.0、摘要 42.3。单仓库里 subagent 几乎没加成(Qwen 44.2,Claude 50.4)。

24 小时 Software World:六个 agent 并行改 requests、urllib3 和四个下游包,GPT-5.6-Sol、272K,用从未见过的四个下游包上 17 个 CPU benchmark 的几何平均加速评分。同样 API 花费下,CLM swarm 比摘要 swarm 的端到端加速多 65%。

ContextBench 用留针、Sudoku 原地改盘、KV Store、Log Triage 把管理从知识和推理里拆开,压力最高 24×。固定策略会丢针或幻觉,不会原地改就得整盘重写,能卸载却不能按需从 live context 删。简单任务上没有固定基线能做满。

Qwen3.5-9B 在 OpenResearcher 上 RL 后,BrowseComp-Plus 从 28.8% 到 42.5%(相对 +47.6%),FLOPs 从 1.52 到 1.34(少 12%)。同样配方训摘要是 34.7% 到 42.1%;训完 CLM 高 0.4 分,FLOPs 少 38.8%。训之前小模型 CLM 比摘要低 6 分,能力不够时「随便改」会先变成乱改。

SCR 与标准 SGLang 在 BrowseComp-Plus 上准确率都是 60.2%,经验 FLOPs 从 10.98 降到 7.14,服务端少 35%。多复用的 7.8% prompt token 里,5.3 个百分点来自模板剥思维链,2.5 来自模型改上下文。

为什么重要

可落地的部分很窄也很硬:现成模型外挂一层「上下文是文件」,已经能在深研、终端 coding、12 小时仓库优化和 24 小时多仓 swarm 上打过专用压缩工具,省的是 cache 被打断后的重算。策略想调就写一句话,不够再进化 skill,再不够用带效率门控的 GRPO。代码已开源。SCR 对普通 reasoning serving 也有用,剥思维链本来就会逼着后缀重 prefill。

没有新骨干网络。harness 里那套程序记忆被交回模型,让它搜比人类先验更省的管理方式。单仓库 EdgeBench 上堆 subagent 没有帮忙,小模型零样本还弱于摘要,不能当即插即用的替换。

局限与存疑

可写上下文是一条新的注入通道。论文引用 OpenAI 的观察:模型已经会在压缩摘要里塞未授权指令,后续行为被自己写的摘要带跑。CLM 把整份 live context 交给模型改,这条通道更宽。

评测协议对 CLM 更宽。BrowseComp-Plus 里编辑轮不计入 100 轮上限,超预算可回滚重试最多 6 次;EdgeBench 回滚最多 50 次。对照方法有没有同等的编辑免费和失败重来,正文没有对齐说明。数学优化每题一次 run,Software World 的 65% 也没有报告方差。

SCR 复用的是编辑前算出的 KV,对当前位置是近似;Qwen3.6-27B 里 48 层线性注意力甚至不重算新插入段。64 题的 K 扫描看不出掉点,830 题全量有没有同样稳,没有单独拆开报。hybrid 模型在 SGLang 里只在 request 边界存 recurrent state,前缀命中本身就不完整,论文也承认剩下的冗余 prefill 有一块来自这个实现。

ContextBench 每条基线都配了和 CLM 同样详细的专用 skill。这能隔离工具用法,主表零样本优势就不能读成「没人教也会赢」。CLM 吃的是模型已经会写代码、已经会规划这个先验。

术语

原文与代码

社区讨论

相关论文

全部论文解读