更新于 2026-10-01。
env/Dockerfile → code2pixel/env:0.1(目前只构建了 arm64):Python 科学计算栈、Node + Three.js、Playwright Chromium、Blender 4.0、rsvg、Noto CJK 字体、Claude Code 2.1.285、Codex 0.159.2。c2p-render:SVG(含中文字体)、Three.js(WebGL)、Blender Cycles 都实测出图正确。env/proxy/:默认拒绝,只放行 api.anthropic.com、chatgpt.com、auth.openai.com、api.openai.com。实测:放行的域名能连上;example.com、GitHub、Hugging Face 被拦;绕过代理直连也不通。harness/run.py 和 harness/batch.sh:
result.json;harness/check.py:
run.sh,和交上来的图逐像素比较;| 项目 | 结果 |
|---|---|
| Codex 模型和推理强度 | 会话记录里是 gpt-6.1-sol、medium,设置生效 |
| Claude Code 模型 | 订阅默认是 Sonnet 5.5,harness 默认改成 Opus(会话初始化信息里是 claude-opus-5-5) |
| Claude Code 推理强度 | 用本地假 API 截下请求体:--effort medium 时请求里是 output_config: {"effort": "medium"},换 high 也跟着变;没有消耗额度 |
| Claude Code 不看图档 | 读 /workspace/t.png 和 /tmp/t.png 都被拒绝(permission_denials 有记录),返回图片 0 张。绝对路径要用 Read(//**/*.png) 这类规则才拦得住。验收的 3 次不看图档看图 0 次,也没尝试读图 |
| Claude Code token 计数 | 修正后(见问题 12),运行中的实时统计和 Claude Code 结束时的报告对得上(修正后跑的 6 次,低预算和高预算档,都完全相等) |
| Claude Code 禁用联网工具 | 会话初始化信息里的工具列表没有 WebSearch、WebFetch;harness 把实际工具列表记进 result.json |
| Codex 关掉的功能 | codex features list 确认 9 个开关已关;--strict-config 会拒绝写错的配置 |
| Codex 不看图档 | 验收的 3 次不看图档看图都是 0 次;能看图的两档看了 1–4 次 |
| 产出可复现 | 验收的 18 次产出在断网新容器里重跑,全部逐像素一致(harness/check.py --regen) |
chatgpt.com,在白名单里),两家的联网搜索都在服务端执行。这些都必须在 agent 配置里关掉,代理管不到。exec 的代码里调用 tools.view_image,只按工具名统计会漏掉。看图次数改成数工具输出里实际带回的图片。file:// 页面加载 ES module,c2p-render 改成用本机 HTTP 服务打开页面。~ 下。read_image_attempts。runs/_aborted/。之后的批量运行放在独立的进程会话里,app 退出不会把它带走。caffeinate 阻止空闲睡眠,用电池时给出警告,并比较两种时钟算出睡眠时长:运行期间睡过 60 秒以上,结果标成无效。--include-partial-messages,从流事件 message_delta 读每次调用最终的输出数;budget_tokens_live 对账。
- 用本地假 API 和真实运行都核对过。
- 修好之前跑的 3 次(三题的不看图档)都远低于 20 万,预算没有真被超过。已按结束时的报告改正 result.json,并加了说明字段 meter_note。
- Codex 的会话记录里是 API 返回的累计用量,推理 token 已含在输出里,没有这个问题。src/ 整个拷过去。src/generated/ 里留了 Blender 场景文件和文字贴图。假如 run.sh 其实不会重新生成它们,检查也照样能通过。regen.skipped。src/ 里都只有代码,已有结论不受影响。3 题 × 2 个 agent × 3 档,共 18 次。
claude-opus-5-5),Codex 用 gpt-6.1-sol,推理强度都是 medium。python3 harness/check.py --regen 生成。run.sh 和 src/ 里的文本文件拷到干净目录,在断网的新容器里重跑,和交上来的图逐像素比较。run.sh 重新生成。| 题目 | agent | 档位 | 状态 | 用时(分钟) | token | 看图 | 复现 |
|---|---|---|---|---|---|---|---|
| pilot-03 日式小巷 | claude | high | completed | 11.03 | 131,866 | 10 | 逐像素一致 |
| pilot-03 日式小巷 | claude | low | completed | 8.99 | 83,409 | 4 | 逐像素一致 |
| pilot-03 日式小巷 | claude | nolook | completed | 11.87 | 112,015 | 0 | 逐像素一致 |
| pilot-03 日式小巷 | codex | high | completed | 22.31 | 78,708 | 4 | 逐像素一致 |
| pilot-03 日式小巷 | codex | low | completed | 9.71 | 40,063 | 3 | 逐像素一致 |
| pilot-03 日式小巷 | codex | nolook | completed | 7.72 | 47,202 | 0 | 逐像素一致 |
| pilot-10 水墨 | claude | high | completed | 3.3 | 47,171 | 7 | 逐像素一致 |
| pilot-10 水墨 | claude | low | completed | 2.88 | 33,395 | 3 | 逐像素一致 |
| pilot-10 水墨 | claude | nolook | completed | 3.36 | 42,942 | 0 | 逐像素一致 |
| pilot-10 水墨 | codex | high | completed | 6.82 | 26,273 | 3 | 逐像素一致 |
| pilot-10 水墨 | codex | low | completed | 15.72 | 53,980 | 4 | 逐像素一致 |
| pilot-10 水墨 | codex | nolook | completed | 13.12 | 44,719 | 0 | 逐像素一致 |
| pilot-11 像素画 | claude | high | completed | 2.57 | 37,779 | 3 | 逐像素一致 |
| pilot-11 像素画 | claude | low | completed | 1.51 | 21,828 | 2 | 逐像素一致 |
| pilot-11 像素画 | claude | nolook | completed | 2.99 | 34,146 | 0 | 逐像素一致 |
| pilot-11 像素画 | codex | high | completed | 5.96 | 23,288 | 2 | 逐像素一致 |
| pilot-11 像素画 | codex | low | completed | 5.2 | 20,939 | 1 | 逐像素一致 |
| pilot-11 像素画 | codex | nolook | completed | 7.99 | 36,076 | 0 | 逐像素一致 |
运行结果
src/ 里留了 9 个中间文件(场景文件和文字贴图)。复现时没拷这些文件,由 run.sh 重新生成,结果仍然逐像素一致。订阅额度
数字来自运行记录里两家返回的额度信息。Claude 的数字也包括同一账号在同一时段的其他用量(比如这次对话本身),所以是上限。
高预算档和低预算档只差两点:题目说明里写的预算(100 万 token、90 分钟,对比 20 万、30 分钟),和实际执行的上限。
| 题目 | agent | 低预算档:分钟 / token / 看图 | 高预算档:分钟 / token / 看图 |
|---|---|---|---|
| pilot-10 水墨 | Codex | 15.7 / 5.4 万 / 4 | 6.8 / 2.6 万 / 3 |
| pilot-10 水墨 | Claude | 2.9 / 3.3 万 / 3 | 3.3 / 4.7 万 / 7 |
| pilot-11 像素画 | Codex | 5.2 / 2.1 万 / 1 | 6.0 / 2.3 万 / 2 |
| pilot-11 像素画 | Claude | 1.5 / 2.2 万 / 2 | 2.6 / 3.8 万 / 3 |
| pilot-03 日式小巷 | Codex | 9.7 / 4.0 万 / 3 | 22.3 / 7.9 万 / 4 |
| pilot-03 日式小巷 | Claude | 9.0 / 8.3 万 / 4 | 11.0 / 13.2 万 / 10 |
/tmp 下的裁剪图也算进去了。