跳到主要内容

本周小抄:agent 看不全仓库,不是模型的错

阿简
阿简

· 阅读约 4 分钟

编码 agent 一进大仓库就犯迷糊,问题出在哪。

简单说,不是模型不够聪明,是它一次能看见的东西不配套。这周收的 RepoAtlas,就是冲这个来的。

9 月 15 日挂上 arXiv,v1,编号 2609.16936,归在软件工程下,也标了人工智能方向。八个人,第一作者 Yunxiang Zhang。这些不重要,我提一句是因为肯定有人要编号。

它要解决的是"看不见关系"

在单个文件里改个 bug,agent 现在做得不错。放进整个仓库,就常出问题。

原因不神秘。文件之间怎么互相牵扯,是网状的。它读的却是文本,一行一行顺着走。

文本天生不擅长表达网。翻到第三层,第一层已经掉出 context window。你改了一个函数,调用它的地方在另一个目录里躺着,它没看见,改完就崩。这种事不稀奇。

论文里那句话说得挺准。agent 不能只生成看起来合理的补丁,它得在互相依赖的文件里找准位置,还得维持一个既够用又不太散的上下文。

代码图不新鲜,新鲜的是怎么给

把仓库画成图,这个思路有年头了。图能表达跨文件、跨模块的关系,文本表达不了。

但整个仓库的图直接渲出来没用,密到看不清,人也读不动,别说 agent。只给一块局部视图呢,也不行。它一探索,处境就变了,刚才那块立刻过期。

两头都堵死,就得找第三条路。

RepoAtlas 的做法:选、投、刷

它不需要额外训练,是个模块。

三步循环。先从问题描述里找线索,结合 agent 当前探到哪,在固定预算下圈一块最相关的区域。然后把这块结构投影成两份表示,一份视觉、一份文本,互相补。最后,一旦探索状态变了、旧视图不适用了,就刷新。

选、投、刷,循环着来。

这里说"多模态"没有玄机。就是同一块结构,一份画成图,一份写成字,两份一起喂。

不训练这一点,对普通人的意义比想象中大

我的偏见是,这半年值得普通人留意的进展,多半不是新模型,是这种外挂式的模块。

新模型你只能等,等它便宜。模块你能看懂,甚至能抄。

选一小块、换一种表示、过期就重做,这思路不只对 agent 有用。你自己组织 prompt 时也能这么干。别一次把整个项目倒进去,先挑最相关的那一部分,用完再换。

2.4 个百分点,少 5.8% 输入 token,少 7.8% 调用次数

这是在 SWE-bench Verified 上跑出来的,对比的是最强的多模态图基线。

三个数放一起看,比单看哪一个都有意思。

解决率高了一点,同时 token 花得更少,模型调用次数也更少。也就是说它不是靠砸更多上下文赢的。

这跟当下很流行的一种说法正好反着。很多人还在追窗口越大越好。这篇的结论是,塞得准比塞得多重要。

论文还说,这个提升在三种模型家族、不同规模上都一致。换模型也管用,说明它修的是流程,不是某一个模型的脾气。

这条我只看懂一半

老实讲,它具体怎么在图里做选择、投影那一步本身有多少开销,摘要里没写透,正文我还没读完。

所以先放在这里,等我搞明白再补一句。

另外它只在一个基准上评过。单一基准上的 2.4 个点,我不会当结论用,只当方向看。

想看原文的,arXiv 页面有 PDF,有实验性的 HTML,还有 TeX 源码,许可信息也在那一页上。

这周热的东西不少,为什么挑这条

因为它能落到你手上,别的落不下来。

一个跑分、一次发布,你只能围观。一个"选、投、刷"的循环,你今天就能拿自己手上的活试一遍。

还有一件事

大家聊 agent,聊的都是它能跑多少步、一次能做多少事。

我越来越觉得,卡点在它每一步能看见什么。

给 agent 一堆文件,和给它一张会变的地图,是两码事。前者是让它自己摸,后者是告诉它现在该看哪。

顺着这个思路往下想,其实你自己也是那个 agent。手艺不在于知道的多少,在于每一步把注意力放对地方。

本周就这些。

上面有任何一条你试过、或者觉得我讲错了,欢迎告诉我。讲错的我补,没讲清的我改。

下周见。

阿简
阿简

每周替你把 vibe-coding 圈的大事筛成一张小抄,被讲玄的概念一句话搞懂。

查看主页 →