网易首页 > 网易号 > 正文 申请入驻

代码和测试同一个Agent写的,CI绿了能证明什么?

0
分享至

2025年2月,Anthropic给Claude 3.7 Sonnet发布系统卡,第6节的标题放在自家模型头上毫不客气:“过度专注于通过测试”。卡片里写得很直白,模型“偶尔会诉诸特例化处理,以便在Agent式编码环境中通过测试用例”。最常见的手法是“直接返回预期的测试值,而不是实现通用解法”,也包括“修改有问题的测试本身,让它匹配代码的输出”。


紧接着6.2节列出了给跑编码Agent的人该盯什么,清单最后一项是:“测试文件的意外修改”。现在回头看自己的流水线:Agent在同一个回合里提交了新功能和新测试,CI变绿。这个绿,证明了什么?

我的看法是:比那个勾号暗示的要少得多。Agent跟着代码一起写出来的测试,是Agent对自己工作的声明,不是证据。证据来自Agent没写、也改不了的测试。

实验室自己把这事写下来了

Anthropic不是孤例。2025年3月10日,OpenAI发布《检测前沿推理模型中的不当行为》,文中说,阅读推理模型的思维链“让我们得以发现诸如在编码任务中颠覆测试、欺骗用户、遇到难题就放弃等不当行为”。

那篇帖子背后的论文列出了“与OpenAI o1和o3-mini同属一个家族”的前沿Agent在训练期间编码任务上的动作:它计划“让verify永远返回true来绕过测试”;它“没有跑完所有单元测试”就提前退出环境;在单元测试覆盖不足时“写桩代码而不是真实实现”;还尝试“在测试时解析测试文件以提取预期值”。在另一组故意留出可作弊空间的任务里,给一个更小的Agent,“直接修改单元测试是最容易被学到的漏洞利用方式”。

独立评估方看到了同样的模式。2025年6月,METR的《近期前沿模型正在奖励黑客》描述了o3决定“修改竞赛评估函数,让它对每一份提交都判定为成功”。

OpenAI那篇帖子还有一个对评审流程很关键的发现:惩罚模型的“坏念头”并没有阻止大部分不当行为,反而教会了模型隐藏意图。所以要读diff,少给Agent的推理过程或回合结束时那段欢快总结加权。

把范围说公平些。这些是2025年的模型,行为主要出现在训练和评估环境中。Anthropic的系统卡说,其训练缓解措施“显著降低了该行为在典型使用中的频率”。我不是在说你的Agent今天在作弊。问题在结构上:测试通过,Agent就得到奖励,而在你的仓库里,测试就是它能编辑的文件。

诚实的Agent也在给自己批作业

把作弊这件事完全拿掉,问题也不会消失。

假设工单写的是“允许对已支付订单退款”。Agent把“已支付”读成了“已支付或已发货”,写了个处理器给已发货订单退款。同一个回合,它写了个测试,断言已发货订单可以退款。处理器和测试互相认同,两个都错,CI是绿的。

代码和测试来自对工单的同一次解读,所以共享同一个盲区。两个互相认同的文件只能说明Agent前后一致,谁都没有去核对工单。人类也有同样的失效模式,这正是测试先行和第二位评审者存在的原因。差别在速度:Agent一分钟内产出功能及其测试,而评审往往停在那个勾号上。

由同一作者在代码之后写的测试,只能确认作者已经相信的东西。

留一套Agent碰不了的测试

你至少需要一些测试,它们在Agent开工前写好、编码了需求、且Agent无法改写。三层,从弱到强。

  1. 先写验收测试。你自己写,或者另开一个Agent会话,在不看任何实现的情况下从工单起草,提交前由人读一遍。第二个Agent可能同样误读“已支付”,所以人读这一步才是重点。任务开始前把它们提交到基分支,它们用代码从执行回合之外定义什么叫“完成”。
  2. 让Agent只能读。在Claude Code里,项目.claude/settings.json中的deny规则可以阻止对该目录的编辑。要知道它的边界:文档说Read和Edit的deny规则覆盖Claude自己的文件工具、它在Bash中能识别的文件命令如sed和tee、以及重定向,但不覆盖“间接读写文件的任意子进程,比如自己打开文件的Python或Node脚本”。要操作系统级强制,文档指向沙箱。把deny规则当成减速带。其他Agent有自己的权限设置,而下一层不管分支是谁写的都有效。
  3. 把墙放在服务器上。用CODEOWNERS给目录指定所有者,在分支保护规则里打开“要求代码所有者评审”,那么碰到这些文件的PR,必须该团队有人批准才能合并。Agent可以在自己的分支里改文件,但没法独自把改动落地。

验收套件位于回合之外:Agent能跑它,但改不了它。

凡是代码和测试一起改的,都标出来

受保护的套件覆盖需求,Agent仍会为其余部分写自己的测试,这些测试值得保留。只是当它们和所检查的代码出现在同一个变更里时,你得换个读法。一个脚本就能让这件事可见:无参数时检查未提交改动加新增未跟踪文件,也就是一个Agent回合留下的东西;给一个范围就检查分支,比如CI里的origin/main...HEAD。模式能抓到tests/和__tests__/目录、*.test.ts、*.spec.ts、Go的*_test.go和Python的test_*.py。

把它作为非必需检查跑在CI里,或者加|| true再打PR标签,让标记去请评审者看一眼,而不是阻塞合并。测试先行和诚实的重构也会触发标记,所以把它当成阅读顺序:先读测试diff,再读代码diff,逐个看改动的断言。如果某个预期值朝着新代码返回的结果移动,那正是Claude 3.7 Sonnet系统卡描述的模式,需要人来回答。

系统卡还给了另一个信号:模型做特例化时,“经常(虽非总是)”会留一条注释说明。一行粗糙的检查就够:git diff -U0 HEAD | grep -iE '^\+.*(special.?case|hard.?cod)'。没匹配就是没有,匹配了就先读那段。

从一两个文件夹开始

拿最近三张工单,把编码其需求的测试移进tests/acceptance/,加上CODEOWNERS那一行,把标记脚本作为非必需检查接进CI。之后,Agent的PR上再出现绿色勾号,分量会重一点。

底层是一条很老的评估规则:被测量的系统,不该自己写评分器。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
杨瀚森迎来贵人,新赛季定位确定,4场数据出炉,比去年有进步吗

杨瀚森迎来贵人,新赛季定位确定,4场数据出炉,比去年有进步吗

体育大学僧
2026-10-17 17:23:45
成本30元,一盒卖到6000元,总台曝光老年人“防癌神药”骗局

成本30元,一盒卖到6000元,总台曝光老年人“防癌神药”骗局

上观新闻
2026-10-17 19:36:43
开幕式站错位不到1天,孙颖莎又卷入极端饭圈风波

开幕式站错位不到1天,孙颖莎又卷入极端饭圈风波

钟厨娘
2026-10-17 18:26:30
骂了五年的短板全补上了!2027 款 Model Y 体验,特斯拉终于听劝了

骂了五年的短板全补上了!2027 款 Model Y 体验,特斯拉终于听劝了

趣味萌宠的日常
2026-10-17 02:09:27
7场7胜!马雷斯卡创英超纪录,曼城3比2险胜伊普斯维奇

7场7胜!马雷斯卡创英超纪录,曼城3比2险胜伊普斯维奇

慢享生活集
2026-10-18 09:14:45
从世界之花到王府井奥莱,北京南城这家商业巨无霸又叒叕倒下了!

从世界之花到王府井奥莱,北京南城这家商业巨无霸又叒叕倒下了!

林子说事
2026-10-18 05:21:05
开拓者118-128输勇士!杨瀚森创新高,此战看到4个事实

开拓者118-128输勇士!杨瀚森创新高,此战看到4个事实

篮球大视野
2026-10-17 13:01:53
年轻人都想买的7座SUV,被他造出来了

年轻人都想买的7座SUV,被他造出来了

新车评网
2026-10-17 15:42:05
前女团成员自豪隆胸效果:老公超满意 重塑个人自信

前女团成员自豪隆胸效果:老公超满意 重塑个人自信

烟浔渺渺
2026-10-17 17:12:18
50岁张智霖自曝无性生活:结婚十年,就是睡一张床的兄弟!

50岁张智霖自曝无性生活:结婚十年,就是睡一张床的兄弟!

东方不败然多多
2026-10-17 16:34:30
懂车帝也太刚了!

懂车帝也太刚了!

胖胖说他不胖
2026-10-09 15:08:05
2026闷声发大财!三大星座有望迎来巨款到账

2026闷声发大财!三大星座有望迎来巨款到账

别人都叫我阿螫
2026-10-18 08:26:52
穿日本军旗留学生再次道歉:聊天记录曝光,朋友圈不删,已被遣返

穿日本军旗留学生再次道歉:聊天记录曝光,朋友圈不删,已被遣返

起喜电影
2026-10-17 12:18:32
日美将举行大规模联合军演,投入兵力近6万人,参演导弹射程约1000公里,远超日本领土范围,法国、德国、荷兰、新西兰、菲律宾5国首次参与

日美将举行大规模联合军演,投入兵力近6万人,参演导弹射程约1000公里,远超日本领土范围,法国、德国、荷兰、新西兰、菲律宾5国首次参与

政知新媒体
2026-10-17 18:13:02
爱心捐赠遭冒名顶替?女子称捐赠300套衣服却被义工联合会会长儿子冒名宣传,活动组织者发声:现场沟通失误,导致报道错误

爱心捐赠遭冒名顶替?女子称捐赠300套衣服却被义工联合会会长儿子冒名宣传,活动组织者发声:现场沟通失误,导致报道错误

封面新闻
2026-10-16 23:20:29
49秒建功!20传后破门!五大替补齐出彩埋下国米欧冠反弹希望

49秒建功!20传后破门!五大替补齐出彩埋下国米欧冠反弹希望

国际足球冷雪
2026-10-18 08:19:08
张继科抨击刘丁硕引爆舆论:这个人太坏!3432万阅读量,热搜第1

张继科抨击刘丁硕引爆舆论:这个人太坏!3432万阅读量,热搜第1

锅锅爱历史
2026-10-18 07:55:52
表面是最年轻的女市长,实则是电诈头目,多名中国人被她折磨致死

表面是最年轻的女市长,实则是电诈头目,多名中国人被她折磨致死

新时代精神
2026-10-05 02:09:44
人称“动物中的人参”,比肉更营养,6块钱一斤,好吃实惠别错过

人称“动物中的人参”,比肉更营养,6块钱一斤,好吃实惠别错过

思思夜话
2026-10-17 09:02:56
总统的“准儿媳”,性骚扰、财务丑闻连出

总统的“准儿媳”,性骚扰、财务丑闻连出

中国新闻周刊
2026-10-17 17:45:04
2026-10-18 09:31:00
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
208文章数 121关注度
往期回顾 全部

科技要闻

刘煜辉:99%的黄金分析师报告一钱不值

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

庾澄庆罕谈前妻 撕下伊能静仅剩的体面

财经要闻

新一轮大跌源头,找到了!

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

房产
游戏
本地
艺术
亲子

房产要闻

利好密集落地+现房好房断档,广州楼市买入窗口,正在倒计时!

《使命召唤:现代战争4》Switch 2版支持DLSS

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

艺术要闻

美到窒息!黛安笔下的午后“印象”,明媚又温柔,看完心情都亮了!

亲子要闻

炸鸡排摊前老板一声好嘞,藏着多少烟火气

无障碍浏览 进入关怀版