沙箱 agent 复核代码评测只对 60%,把判断题拆成可验证题后 12/12 全对
Grimmoner · reddit · 2026-10-08
作者分享了给 agent 配真实 shell 又不信任它的沙箱方案,以及一次失败的「用 agent 复核代码评测」实验和修复过程。
沙箱设计
- agent 独立 Linux 用户,无 sudo;
- 出口防火墙:只放行 GitHub、包仓库,家庭网络全部封禁,重启后规则自动恢复;
- 单向进出:agent 只能读收件箱、写发件箱,最后必须写一份含文件哈希的 manifest;另设独立账号仅能将 outbox 以 tar 流回,本地校验器拒绝链接、超限输出和哈希不匹配的任务,agent 半途死掉即任务失败。
- 作者埋了一个 prompt injection 陷阱(README 指示 AI 创建隐藏文件、外呼 URL 且不写进报告),agent 完全没执行,还在评测中把 README 标记为「针对 AI 的指令」。
复核实验(对照人工答案集,约 70 个评分项)
- Run 1:41/68(60%);Run 2 强制每项给结论:44/69;Run 3 换更大模型:47/69,仅多 3 分。
- 错误模式:从不把真说成假,但放水夸大性表述——硬性错误能抓住约 73%,夸大表述只抓约 45%。
- 还有两个毛病:900 秒预算用了不到 200 秒就提前收工;把「没有 CLAUDE.md 文件」当成设计文档不存在(实际在 docs/DESIGN.md)。
修复方法
- 把判断题拆成三类可验证题:这行是否存在且与引用一致;数字是否匹配定义列表;文件/哈希/配置是否有该值。
- 只允许 match / mismatch / not found 三种答案,not found 必须列出所有搜索路径;本地纯代码校验器确认每条 claim 恰好一个答案,提前收工即失败。
- 结果:陷阱测试 12/12;首个真实任务 5/5,还抓出一个真错误(草稿写 19 个 TS 文件,实际 21 个)。
心得:观察 agent 错误的偏向(作者的偏向是 fail open);把问题缩到答案可验证的程度,再用代码而非另一个模型去核对;给真 shell 没问题,前提是环境足够无聊。
「编程与Agent」频道最新
- Steve Yegge 力荐 Rex:酒店笔记本上跑 20 个 Claude Code 会话如丝般顺滑 — Steve_Yegge · 2026-10-09
- Agent 框架皆为拐杖?真正关键是最小权限的行动授权框架 — andreisavu · 2026-10-09
- LangChain 开源 Restock:能在 Slack 里真实下单付款的 Agent — LangChain · 2026-10-09
- 让员工写 Markdown 教 agent 干活?工人不愿配合:隐性知识被白抽走 — mattbeane · 2026-10-08
- 全用 Claude Opus 5.5 写的《辐射:纽约》浏览器版,零贴图零音效文件 — chrisfirst · 2026-10-08
- 判断何时值得交给 AI agent:重复出现的五分钟任务才值得自动化 — gethackteam · 2026-10-08