跳到主要内容
返回时间线
arXiv来源发表:

编码代理的规则文件不再靠印象添加:四次独立运行在未见任务上把通过率从22%提到77%

核心概要

Cortex把开发者的每次纠正变成可重放任务,只在重复对照中净胜且不压垮任何任务时才保留一条技能或规则;四次独立运行在从未见过的场景上把四条项目约定的通过率从21.5%提到76.5%。

Source-provided article image: Cortex: Measurement-Gated Evolution and Pruning of Coding-Agent Skills and Rules
Figure 15 · arXiv

深度剖析

编码代理读的规则和技能文件不再靠印象增删,而是先测后用:一条新文本只有在与当前配置的重复对照中净胜、且不使任何任务明显变差时才被保留,删除旧文本也要经过同样的对照。 此前这类文本的取舍通常依据一次成功观察,而同一代理在同一任务上会一次通过、下一次失败,单次结果说明不了问题。 在四个独立运行中,演化出的配置在从未被任何会话演练过的23个约定族场景上把通过率从21.5%提高到76.5%,提升55.0个百分点,95%置信区间为[+34.1,+74.1];作为对照的普通缺陷族只变化−0.8个百分点,且没有任何运行保留针对该族的文本。

它把工作会话本身变成证据:会话中从坏到好的修复被存成可重放任务,开发者反复做出的纠正被记成一行教训,循环据此一次只写一条新技能或规则。 新文本先在一批当前失败的任务上做廉价筛选,只有通过筛选的候选才在全部有效任务上做更严格的确认,确认由脚本按固定门槛判定,而不是由模型判定。 四个运行共记录39个循环,其中14个因没有足够强的重复问题而未提出任何候选;其余25个循环共测试26个候选,脚本保留18个、否决5个,另有3个因数据不可信或没有任务能显示增益而返回重跑。

文本以什么方式到达代理,比文本由谁写更重要:规则由代理在读取匹配文件时自动载入,技能只有代理主动打开才进入上下文。 保留的18条文本中有16条是规则;两条技能都是绑定到特定目录的按路径触发技能。 按路径触发的候选在66次尝试中被列出、28次被打开;每轮都列出的常驻技能候选在198次尝试中被列出、0次被打开。

启示与展望

这套流程面向单个开发者自己的仓库:任务来自其工作会话,基线是当前正在使用的配置,并在同一次对照中重新测量。评测在一个为评测而建的合成仓库上进行,四条项目约定都能由机器检查,开发者由脚本扮演,每次回复用词相同。主结果来自Claude Haiku 4.5,四个独立运行各自从仓库的全新副本开始。原文提出的下一步包括:在一个模型确实会违反其约定的真实仓库上测试,以及用单次提交、把配置作为未跟踪文件安装的沙箱来关闭回放读取历史修复的路径。

原文明确说明,门控测试只证明了从不触发的文本不会被保留,并未证明能识别有害文本:有害技能从未被打开,有害规则虽被载入,但其筛选任务选在基线失败的任务上,无法显示增益,脚本因此未给出判定。四个已知正确的候选中只保留了2个,两个常驻技能因从未被打开而丢失。在更强的Claude Sonnet 5下,R1的配置只提升5.6个百分点,区间为[−2.8,+13.9],一次删除检查把4条中的2条标为可移除,而单次检查无法区分小效应与无效应。在structlog上代理很少被纠正,没有内容重复出现,循环未保留任何文本,两个配置完全相同,因此没有可比较的结果。可选评审模型在事后回放中未能区分保留与否决的候选,且被否决的候选只有2个。