1.6 KiB
1.6 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | ||||
|---|---|---|---|---|---|---|---|---|---|
| Future-Commit 清理 (Future-Commit Cleanup) | 2026-06-15 | 2026-06-15 | concept |
|
|
Future-Commit 清理 (Future-Commit Cleanup)
定义
Future-Commit Cleanup 是在 SWE-bench 风格评测中,移除 Docker 镜像中 base_commit 之后的可达 Git 历史的操作。如果不清理,agent 可以通过 git log 或 git show 检视未来的修复提交,导致信息泄露,破坏 patch-based 评测的公正性。
为什么重要
Claw-SWE-Bench 的非 Python 实例来自 SWE-bench-Multilingual,其 Docker 镜像可能暴露 base_commit 之后的提交。如果不处理:
- Agent 可以"作弊"——看到正确答案
- Resolved Rate 被人为抬高
- 不同模型对信息泄露的敏感度不同,导致比较不公平
实验证据
在 OpenClaw × 9 模型的清理前后对比中:
- Pass@1 在清理后从不上涨(验证了信息泄露假设)
- Claude Opus 4.7 下降最多:84.7% → 76.7%(−8.0 pp)
- Kimi K2.6 下降 5.0 pp
- Qwen 3.6-flash 下降 2.0 pp
- GPT 5.5、MiniMax M2.7、Seed 2.0-mini 仅下降约 1 pp
关键洞察: 不同模型对信息泄露的利用程度不同——某些模型更依赖"看到未来"来解决问题。
实现方式
Runner 在 workspace 准备阶段移除 base_commit 之后的可达 Git 提交,使 agent 仅能在 issue 的历史边界内阅读、编辑和运行代码。