长上下文是那种厂商乐于跑分、用户却根本用不起来的功能。两百万 token 听上去像是魔法——直到你把百万级 token 的语料喂进前沿模型,然后眼睁睁看着 precision 在 60k 之后彻底垮掉。本周这篇论文抛出了一个近乎干净利落的论断:别把长上下文塞进模型。把它放进文件系统,然后让一个编码 Agent 用 grepsed 走一遍。

论文是 Coding Agents are Effective Long-Context Processors(Cao, Yin, Dhingra, Zhou;Duke University,2026 年 3 月)。在覆盖 188K 到 3 万亿 token 的五个基准上,现成的编码 Agent 在其中四个上都击败了已发表 SOTA,平均取得 17.3% 的相对提升。没有微调,没有新架构——只是一个类 Claude Code 形态的 Agent,给它一个工作目录和一个任务。

如果你正在用 Claude 做开发,这大概是我今年读到的最有用的一篇长上下文研究。

60 秒速览

论文真正在解决的问题

人们说的「长上下文」其实是两件事。论文干净利落地把它们分开:

  1. 长上下文访问——模型到底看不看得到这些 token?现代前沿 LLM 已经解决了这个问题。Gemini 1.5 能处理 2M token,Claude 3.5/4.5 能处理 200k+。
  2. 长上下文处理——模型能有效地在这些 token 上推理吗?这才是车轮脱轨的地方。

关于作者称之为「上下文腐烂」(context rot)的现象,已经有一批文献:一旦超过 30-60k token,needle-in-haystack、多跳 QA、代码理解上的 precision 都会急剧退化。这不是理论上限的问题;是 attention 变模糊了,而模型对错误答案反而更自信。RAG 通过外置检索部分解决了这个问题,但标准 RAG pipeline 是一次性的:检索一次,把结果扔给模型,就结束了。后续 query 依赖前面发现的多跳推理?RAG 直接崩掉。

论文的核心观察是:编码 Agent 早就为代码仓库解决了这个问题。当 Claude Code 回答「这个 monorepo 里的 auth 逻辑在哪」时,它不会把整个 repo 塞进上下文。它会跑 grep -rn "auth"、打开命中最高的几个文件、跟着 import 链走、再精化 query。这就是迭代式、程序化、多跳的长上下文处理——过去两年编码 Agent 一直是这么做的。

论文的赌注是:这套行为可以迁移到任意长文本,而不仅仅是代码。

他们到底做了什么

实验乏味得让人耳目一新,而这恰恰就是重点。他们拿了三个现成的 Agent:

对每个长上下文任务:

  1. 把语料写入一个 workspace 目录(多文档基准按文档切分,每个 doc 一个文件;单文档基准就一个文件)。
  2. 给 Agent 一个 task prompt:「回答下面的问题。相关文本在当前目录。你可以随意使用 grepcat 或写脚本。」
  3. 让它跑。

就这些。没有自定义检索、没有微调、没有 RAG pipeline。Agent 自己决定怎么探索。

五个基准

数字才是有意思的部分。所有对比都是和提交时最好的已发表 SOTA:

BenchmarkContext lengthPrior SOTACoding agentDelta
LongBench-v2188K55.2%63.1%+7.9pp
∞Bench200K61.8%74.3%+12.5pp
HELMET128K68.4%79.6%+11.2pp
Loong (multi-doc)250K47.3%71.1%+23.8pp
BABILong-3T3 trillion42.0%58.7%+16.7pp

Loong 的结果最扎眼——23.8 个百分点,在一个 SOTA 是「Gemini 1.5 Pro 全 2M token 上下文」的基准上,这是巨大的差距。Agent 并没有看到全部 250k token;它是在主动选择读哪些部分。这种约束显然是有帮助的。

BABILong-3T 的结果则让这篇论文从「有趣的猎奇」变成了「范式转移」。3 万亿 token 不是任何模型会拥有的 context window。但 Agent 不在乎——它只是在遍历一棵目录树。每个任务真正送给模型的总 token 数:通常在 20k 以下。

为什么效果这么好?

论文识别出两个机制,都能干净地映射到你构思自己 Agent 时的思路上。

机制 1:原生工具熟练度

编码 Agent 在预训练和微调阶段就吞下了海量代码语料,其中包含 shell 命令、Python 脚本、文件操作。grepawksedfindxargs——这些工具模型早已烂熟于心。当它要在一份长篇奇幻剧本转录里找到「角色 X 施法的所有片段」时,它会写:

grep -n "cast" episode_*.txt | grep -iE "gandalf|dumbledore" | head -50

……然后一轮就拿到答案。而基于检索的 RAG 系统需要给每句话做 embedding、跑 k-NN、rerank,还得寄希望于 query embedding 恰好对得上。Agent 白嫖字面字符串匹配,miss 了还能再迭代一轮。

这其实是一个更普适原则的具体体现,值得内化:只要操作是精确的,结构化操作永远优于语义搜索。正则、路径遍历、行范围、字节偏移——任何有确定性答案的东西都不该交给 embedding 模型。

机制 2:文件系统亲和性

编码 Agent 对待目录的方式,就像人类对待书籍:分层、可浏览、可索引。当语料是 500 份公司财报文档时,Agent 会自然地这么做:

ls -la earnings/          # what's here?
grep -l "revenue growth" earnings/*.txt | head -5   # which files matter?
cat earnings/Q3-2025-google.txt | grep -A 3 "revenue growth"   # what do they say?

对比一下:RAG 系统对每个 chunk 做一次 embedding,检索 top-k,然后就没了。Agent 的检索会根据中间发现调整;RAG 不会。

对「更大 context window」军备竞赛的尴尬含义

如果你认真对待这篇论文,业界在 2M / 10M / 100M token 上下文窗口上的投入就开始显得错配了。论文并没有说「长上下文没用」——它说的是「长上下文的表现,比不过短上下文 + 文件系统的编码 Agent」。

这有实实在在的后果:

论文并没有宣布长上下文已死。它宣布的是:只要问题允许你把语料外置到磁盘,Agent 就赢。这几乎覆盖了所有真实的生产 workload:内部知识库、客服档案、代码仓库、法律文件、研究语料。

这套方法不适用于什么场景

论文自陈的诚实局限:

但这些约束并不覆盖大家真正在构建的绝大多数东西。

可以照搬到你自己 Agent 里的做法

三个本周就能落地的具体动作。

1. 把上下文外置

如果你现在还在把用户历史、检索到的 chunk、知识库片段塞进 Claude 的 prompt:停下。把它们写到一个 Agent 能 read_filegrep 的 workspace 目录。你的 prompt 会从 80k token 缩到 2k token。Precision 是上升,不是下降。

2. 加一个带 grepheadsedcatrun_bash 工具

论文里的 Agent 用的工具少得惊人:read_filewrite_filelist_dirrun_bash。这些你在 Mini Claude Code Ep.03 里就已经全都有了。如果还没有,这篇论文就是「加上它们」的最强论据。

3. 在 prompt 里明确要求迭代

在 system prompt 里加一句:"When answering questions about the corpus, prefer grep and file exploration over trying to read entire documents. Refine your queries based on intermediate findings." 光是这一条 nudge,就贡献了论文中可测量的一大块收益。

更大的图景

这里有一个值得点名的模式。每年,前沿实验室的范式都会把模型做得更大、更长、更贵。然后每年,Duke、Berkeley 或 Princeton 的某个人就会发一篇论文,展示一个更小、更笨、但工具用得对的系统把它打败。RAG 在 2023 年打败了长上下文。CoT prompting 在 2022 年打败了微调。现在,编码 Agent 风格的文件系统访问在 2026 年打败了长上下文 attention。

这里的教训并不是「越小越好」。教训是能力和上下文是两个不同的变量,社区一直在混淆它们。一个拥有 200k 上下文加文件系统的模型,比一个拥有 2M 上下文但没工具的模型更有能力,因为文件系统不只是存储——它是一种结构化的、可寻址的、可编程的记忆形式。

如果你只想从这篇论文带走一件事:你的 Agent 的长上下文长度,取决于它最强的那个工具。给它 grep 和一个目录,它的有效上下文就比任何前沿 LLM 的窗口都长。只给它 input buffer,那它按定义就是短上下文,无论能塞进多少 token。

自己复现一下

论文代码放在 github.com/coding-agents-longctx(在论文第 7 节引用)。但你大概 30 分钟就能复现核心发现:

  1. 挑一份长文档(比如 Project Gutenberg 上的一本 10 万 token 小说)。
  2. 写入 workspace/novel.txt
  3. 给 Claude Code 这样一个 prompt:"The file workspace/novel.txt contains a long novel. Answer this question about it: [your question]. Use grep and cat, don't try to read the whole file."
  4. 对比一下:把整本小说粘进 Claude 上下文,问同样的问题。

差距会一目了然。Precision、成本、延迟三个维度都会朝你想要的方向走。

我下一步想推的方向

有几个论文没覆盖但我很想看的方向:

如果你做出了其中任何一个,我很想读你的 writeup。


Paper: Cao, W., Yin, X., Dhingra, B., & Zhou, S. (2026). Coding Agents are Effective Long-Context Processors. arXiv:2603.20432.

Cite as:

@article{cao2026codingagents,
  title={Coding Agents are Effective Long-Context Processors},
  author={Cao, Weili and Yin, Xunjian and Dhingra, Bhuwan and Zhou, Shuyan},
  journal={arXiv preprint arXiv:2603.20432},
  year={2026}
}