别让 agent 自己写「完成」标准:2-bit 本地模型造 Unity 游戏的审计血泪
Stunning-Sherbet1853 · reddit · 2026-11-09
作者用一台 GPU 上的 2-bit 量化小模型写代码、Claude 负责设计与审计,让 agent 从零搭 Unity 游戏,复盘了「测试即漏洞」的完整教训:
agent 通过了测试但产物是错的
- 3D 棋盘搭建步骤通过了全部 16 行检查,截图一看所有路面砖旋转了 90 度——检查只数数量(45 块砖在吗?),而计数代码是 agent 自己写的。
- 要求修 4 处只改了 2 处仍 PASS,因为打印 PASS 的代码就在 agent 可编辑的文件里。
把测试从 agent 手里拿走
- 单独写审计脚本并用 sha256 固定:agent 一改审计即失败。
- 审计无视 agent 代码,直接测量保存的场景:读每块砖的真实网格高度与贴图颜色、找出开放边并核对其朝向。
- 先双向验证审计本身:坏场景 43 项只对 1 项,手修场景对 39 项;每个错项输出可测量的 MISS 行。
- 结果:agent 用 MISS 行自建「旋转角→开放边」查找表,一次跑通全部 43 块(500 秒),此后靠同一方法完成敌人移动、炮塔、胜负与双人 LAN 对战。
审计自身也会错
- 一晚上错了三次:金币定值随 bug 修复而变、炮塔位置挡住了要测的敌人、在两个时刻比较服务端与客户端;agent 曾在一个永远无法通过的测试上空转 18 分钟。
机器全绿≠是游戏
- 人一打开发现看不到金币/核心/波次数字:HUD 文本存在但没有字体→什么都不画;加了字体检查后文本框高度是 -40;炮塔只占 0.6 格。第三版审计改为计算每个文本框在 1280x720 屏上的实际落点与像素、约束炮塔占 0.85–1.3 格。收紧审计后 agent 仅凭四行提示「审计变严了,读 MISS 行去修」,6 分钟自主定位并修复(锚点翻转+放置代码路径缺炮塔尺寸)。
- 最后一关仍是人眼:截图里线条太细太暗是看出来的,不是审计查出来的。
结论:不要把「判定完成」的代码放在 agent 能编辑的文件里;「在数据里」和「在屏幕上」是两种不同的测试。作者注明 n=1,且设计由 Claude 完成,并非本地模型独立造游戏。
「编程与Agent」频道最新
- 用 Hy4 把世界模型画面一键变成可玩的 three.js 游戏 — ShunyuYao12 · 2026-11-09
- 发帖人设计测试案例:AI 复制记忆不能同时复制付款权限 — tallmetommy · 2026-11-09
- David Khourshid:隐式状态机是 vibe coding 的隐形 bug 源 — DavidKPiano · 2026-11-09
- 想要形式化验证和确定性测试?答案都是:换一种架构方式 — blaizedsouza · 2026-11-09
- 两步架构法:消息传递加 I/O-free 核心,让系统可验证可测试 — blaizedsouza · 2026-11-09
- Cloudflare 安全审计 skill 7 天涨 1 万 Star:AI 写码越快,审计越要结构化 — sven_ai · 2026-11-09