先说结论:这篇论文最值钱的不是「首个面向智能体改写场景下代码来源追溯的仓库级基准」这句自我定位。是 0.66 和 1%。
月初挂上 arXiv,2611.01966,cs.SE 主分类,八个人署名,46 页含附录和参考文献。这个体量摆出来,就不是打一枪换个地方的稿子。
但「首个」这个词,我照了照。一半是真的,一半是抢命名权。
真的那半边:现有代码克隆基准基本停在片段级和有限改动上;另一批做仓库级变换的基准只管功能对不对、测试跑不跑得绿,不看来源归属。中间确实夹着一个真空:agent 把一整个仓库按目标技术栈重写一遍,功能对齐了,还追不追得回原出处。这个议题不是硬造出来的。
抢命名权的是另半边。「repository-level agentic code laundering」这个说法一旦立住,后面做这块的人都得围着它的定义转:引用它、拿它做对照、在它的协议上打补丁。基准类论文的常规打法,不丢人。但注册状态还挂着待定,DOI 走 DataCite 那条线,别急着把它当铁案。
「首个」在论文里是营销词,不是技术结论。
下面是我最想说的。
论文里写「现有方法远未在该基准上达到上限」。这句写得很客气。我给它翻译成数字:
Pair 任务 · 最强静态方法 AUROC: 0.66
Attr 任务 · 真实来源 top-1 命中率: ~22%
Attr 任务 · 校准后归属信用: 1% – 2%
样本量 · Pair 1,128 / Attr 229
0.66 在二分类里什么水平,同行心里有数。给你两个仓库,问你同不同源,现在最好的静态方法差不多就是「比抛硬币强,强得有限」。这不是我刻薄,是作者自己写在论文里的数。
但这只是第一层。
真正该被引用的,是 22% 和 2% 之间那二十个百分点。
仓库编码器能把真实来源排到第一位的查询,最高两成出头。听着像个能用的检索器。可一旦把评分校准,让它真为「我断定是这一个」负责,信用掉到 1% 到 2%。
一个是「可能」,一个是「不敢签字」❗
这两组数字讲的是同一件事:现在的检测器会告诉你两个仓库长得像,说不出为什么断定 A 出自 B。相似度是检索问题,归属是取证问题。中间隔着的东西不少——依赖的演化路径、构建脚本里没洗干净的边角、提交历史和注释的残留、目录结构里那些没人会主动去改的惰性痕迹。检索给你一份候选名单,取证得给你一条能摆上台面的链。
作者把这层写成「相对相似度与能够指向特定来源的证据之间存在系统性差距」。这比通稿老实。系统性差距,不是调两个超参、换个更大的编码器就能抹平的差距。
然后往反方向泼一瓢,泼给这个基准自己。
归属子集只有 229 个样本。1% 到 2% 这个区间,是从 229 个样本上算出来的。这个量级上,一两个百分点的差别我不敢当结论用。
一个任务里还专门设计了「证据不足时允许弃权」,本身就说明正例稀缺到了什么程度。
这条我还没跑完,先别全信我这半句——282 个仓库的重建加执行验证,不是一晚上的事。但 229 这个数字本身是可以质疑的:仓库级、来源归属、还要求模型能弃权,三个条件叠一起,样本确实难凑。可难凑不等于凑出来的就够用。要拿它当评测目标,自己复现一遍再说话。
不过有一说一,这个基准的构建协议,是这次少数让我挑不出刺的地方。我本来是准备好开喷的。
「源隐藏重建」:先把源仓库的行为拆解出来,再重建模块与仓库结构,只有通过基于执行的验证的改写版本才留下来。
这话翻译过来就是,它不是坐在办公室里画两个「看起来像」的仓库,是真让 agent 把仓库洗一遍,洗完跑测试,跑绿了才算样本,洗坏了的直接扔。样本量小是这套流程的必然结果。229 那个数字也就没那么可笑——它是被自己的严谨程度卡住的,不是偷懒。
还有一处设计我给分:拿同领域里的独立仓库做负对照,量「完全没有共同来源的情况下,相似度最高能撞到什么程度」,再给不同检测器各自的参考区间。
没有这条基线,0.66 就是个孤零零的数字。你既不知道随机撞脸的地板在哪,也分不清那 0.34 是差在能力上还是差在数据上。
那谁该慌?
不是做检测的人。是做「重写」这门生意的人。
现在一堆玩法的核心动作就一个:拿 agent 把现成仓库按目标栈重写一遍,功能对齐,测试跑绿,交付。这套流程的效率是真的,我不否认,也不打算装作没看见。但 0.66 说的是另一件更不客气的事:这类产出眼下还能混过去,不是因为洗得干净,是因为没人认真查。
等检测那一侧把 22% 推到 60%,你手上那些「重写」出来的仓库就是一份份等着被追溯的物证。
而且这个基准是可复现的。协议、样本、评分口径全摆在明面上,谁都能拿它去训检测器。基准类论文最狠的地方就在这儿:它不是一个结论,它是一把尺子。尺子一旦有人用,后面所有人的分数都得被同一根线量。
买方的问法也会跟着变。现在问的是「这仓库能不能跑」,以后问的是「这仓库从哪来的」。后一个问题,重写这门生意回答不了。
锐评评分卡:
概念立不立得住——立得住。中间那个洞是真的,不是硬凑的议题。给分。
「首个」那一句——一半。命名权抢得漂亮,注册状态还待定,别当铁案。
实测数据硬不硬——0.66 和 1%–2% 是全篇最实的两块,方向没问题。229 个样本的归属子集,谁引用谁自己去核。
这钱花得冤不冤——不冤。做代码来源、供应链、合规这几条线的,这篇现在就该进必读清单。但你要是只想找个 benchmark 刷个好看分数发篇论文,0.66 这个起点低得有点危险。刷上去之后第一个问题就会是:你的检测器学到的是证据,还是相似度?
值不值得现在跟——跟。跟它的协议和那两个数字,别跟「首个」那两个字。
