PinchBench · Kilo Code 出品的 OpenClaw Agent Benchmark
速读卡片 (TL;DR)
一句话:PinchBench 是 Kilo Code 出的 agent benchmark,用真实世界任务(CSV 分析、log 异常、email 三件套、Docker 优化、calendar 创建…)评测 LLM 作为 OpenClaw agent harness 的"大脑"表现。每个 task 是一份 markdown + Python grader + LLM judge rubric;全部 MIT 开源,可在本地 Docker 跑,结果自动上传 leaderboard。前沿模型(Claude Opus 4.7, GPT-5.5, MiMo-V2.5)已经挤在 86–92% 一档,但开源 7-9B 还在 ~35% 区间 —— 提升空间巨大。
结论:你训练的模型 可以 直接接进来跑(serve OpenAI-compat endpoint + OpenClaw 自定义 provider config)。Sandbox 是 Docker 化的但网络默认开放(有 web search 类任务)。可复现性高,但官方"Official Run"标记需要标准化硬件 + 官方 key。
1 · 是什么 / 谁出的 / OpenClaw 是什么
1.1 三方关系图
这套生态有三个名字容易混,先拆清:
OpenClaw(类似 OpenHands / Cursor agent),hosted 版本叫 KiloClaw($9/mo),benchmark 叫 PinchBench。PinchBench 测的不是 OpenClaw 本身,而是用 OpenClaw 作为 harness 时,后端 LLM 的表现。1.2 PinchBench 的定位
官网 about 页面原文:
设计哲学是 "real tasks, not synthetic tests":
- 不是 multiple-choice、不是 unit-test pass rate、不是合成 QA
- 是 "schedule meeting / write code / triage email / research topic / manage files" 等真实工作流
- 测四件事:tool usage(选对工具+正确参数)/ multi-step reasoning / handling ambiguity / practical outcomes(真的创建了文件吗?真的发了邮件吗?)
2 · 任务格式 + IO + 多轮性 + 样例
2.1 任务文件格式
每个 task = 一个 markdown 文件 + YAML frontmatter,位于 pinchbench/skill/tasks/:
---
id: task_descriptive_name
name: Task Display Name
category: csv | log | email | research | coding | ...
grading_type: automated | llm_judge | hybrid
timeout_seconds: 120
workspace_files:
- source: assets/input_data.csv
dest: data.csv
multi_session: true # 可选,多轮
sessions:
- id: first_turn
prompt: Initial instruction
- id: follow_up
prompt: Continuation
- id: fresh_context
new_session: true # 清 context 但保留 workspace
prompt: New session
---
# Prompt
<发给 agent 的真实 user message>
# Expected Behavior
<可接受的解题路径,给 LLM judge 当 context>
# Grading Criteria
- atomic checklist 1
- atomic checklist 2
...
# Automated Checks (Python)
```python
def grade(transcript: list, workspace_path: str) -> dict:
"""Returns {criterion_name: 0.0-1.0}"""
...
```
# LLM Judge Rubric
### Criterion (Weight: 30%)
**Score 1.0**: Perfect
**Score 0.75**: Good with minor issues
...
2.2 任务类别 + 数量(V2 实际清点)
| 类别 | 任务数(从 repo 实际清点) | 样例 |
|---|---|---|
| CSV / 数据分析 | ~26 | stocks volatility · GDP regions · life expectancy outliers · iris classify · pension liability |
| Log 分析 | ~30 | Apache top errors · HDFS block ops · MapReduce failures · Nginx slow requests · SSH brute-force detection · Syslog anomalies(每种 log × 5 子任务) |
| Email / 通讯 | ~9 | email triage · reply drafting · GWS task management · cross-service |
| Research / 分析 | ~12 | competitive research · contract analysis · earnings analysis · EU regulation |
| Dev / DevOps | ~9 | CI/CD pipeline debug · Dockerfile optimization · git rescue · k8s debugging · code refine |
| Productivity / 通用 | 14+ | calendar · CVE security triage · daily summary · ELI5 PDF summary · meeting advisory · GH issue triage |
合计 ~120+(blog 上 Kilo 自称 "23 → 148",repo 实际清点稍少)。社区 2026-03 大扩展由 111 个 PR 推动。
2.3 多轮性 / Long-horizon 评估
| 维度 | PinchBench | 对比 OSWorld / Terminal-Bench |
|---|---|---|
| 多轮支持 | ✓ multi_session 显式声明 | OSWorld 也支持多轮但是 GUI;Terminal-Bench 单 shell session |
| 典型 trajectory 长度 | 5–20 turn / task(估算,timeout 120s) | OSWorld 30–50 turn / Terminal-Bench 10–30 |
| Long-horizon 程度 | 中等偏短 | OSWorld / GAIA / RE-Bench 才是真 long-horizon |
| 状态保持 | multi_session 内保留 workspace,可选清 context | OSWorld 全状态保留 |
2.4 一个具体样例:task_calendar
Grading Criteria:
- Event created with correct date ✓
- Time is 3:00 PM ✓
- Attendee bob@example.com included ✓
- Title matches "Q3 Review" ✓
- Description mentions "product launch" and "revenue" ✓
Automated grader 会:
- 检查 workspace 里有没有写出
event.ics或调了 calendar API - 解析 transcript 找
toolCall事件,看是否调对了 tool + 参数 - 读 final output 检查 5 个 criterion 各自的 0.0/1.0 分
3 · 评测机制 / V2 新指标
3.1 三种 grading 模式
| 模式 | 实现 | 适合什么任务 |
|---|---|---|
| Automated | Python grade(transcript, workspace_path) → {criterion: score} | 文件落盘 / tool 调用次数 / 内容字符串匹配 / 结构化 output |
| LLM Judge | Claude Opus(V2 默认 Haiku 4.5)按 rubric 给 0/0.25/0.5/0.75/1.0 | 风格 / 推理质量 / 自然语言 output 评估 |
| Hybrid | 两者加权混合 | 大多数实际任务 |
3.2 评分对象:end-to-end + step-wise + trajectory-level 全有
- End-to-end: top-level success rate(taskwise pass / fail aggregated)
- Step-wise: 每条 grading criterion 独立打分 — "tool 调用了吗 / 文件创建了吗 / 内容包含 X 吗"
- Trajectory-level(V2 新增):
- Consistency score:同一 task 多次跑的 variance
- First-try success rate:单次成功率(不带重试)
- Retry count:平均重试次数
- Per-task variance / std
3.3 V2 解决了 V1 的几个真问题
| V1 问题 | V2 修复 |
|---|---|
| 跑 1 题拿 100% 比跑 23 题拿 94.8% 还高 → 鼓励 cherry-pick | 按 task count 归一化打分,不跑全集罚 |
| 有 task 95% failure rate → 拉垮所有模型分布 | 识别异常 task 调整或剔除 |
| git commit hash 当版本号 → 无法追溯 | semantic versioning(v2.0.0) |
| grading race condition | parallel judge execution + result caching |
| 判得太慢(Opus 当 judge 贵) | 默认 Haiku 4.5 + caching → 2-3× 提速 |
3.4 同时报三种 metric 的展示
官网 leaderboard 支持四个视图:
- Success Rate — 默认,聚合分数
- Speed — 平均完成时间
- Cost — 平均 token 成本
- Value — 三者组合的"性价比"分
4 · 完整 leaderboard + 开源小模型表现
4.1 官方 leaderboard 前 10(success rate 视图,2026-05 快照)
| # | 模型 | Provider | Success | Avg Score |
|---|---|---|---|---|
| 1 | claude-opus-4.7 | Anthropic | 91.6% | 73.7% |
| 2 | claude-haiku-4.5 | Anthropic | 90.3% | 64.8% |
| 3 | mimo-v2.5-pro | Xiaomi | 89.5% | 87.7% |
| 4 | mimo-v2.5 | Xiaomi | 89.5% | 88.7% |
| 5 | gpt-5.5 | OpenAI | 89.0% | 75.5% |
| 6 | claude-opus-4.6 | Anthropic | 88.9% | 71.0% |
| 7 | glm-5v-turbo | Z-AI | 86.6% | 65.1% |
| 8 | glm-5-turbo | Z-AI | 86.3% | 70.0% |
| 9 | seed-2.0-lite | ByteDance | 86.2% | 71.1% |
| 10 | gpt-5.4 | OpenAI | 86.0% | 75.6% |
BenchLM 第三方快照(2026-04)还报告 Trinity-Large-Thinking (Arcee AI) 91.9% 排第一,Qwen3.6 Plus 84.0%。
4.2 开源 <40B 模型(数据来自 BenchLM 快照)
| 模型 | 参数 | 分数 | 排名 |
|---|---|---|---|
| Qwen3.5-27B | 27B | 78.5% | 21 |
| Qwen3.5-9B | 9B | 34.8% | 62 |
| Qwen2.5-7B-Instruct | 7B | 34.1% | 64 |
| Llama 3.1 70B Instruct | 70B | 22.7% | 65 |
4.3 提升空间判断
开源 <40B 真正可下载权重的 SOTA(Qwen3.5-27B)78.5%,比 Claude Opus 4.7 差 13 个点。这个 gap 大概率可以用 RL 训练补 5-10 个点 — 任务集本身公开 + 评分函数公开 + reward 信号 episode-level 可用,接 GRPO 直接跑就行。类似 SWE-Bench 上 DeepSWE 把 Qwen3-32B 从 ~15% 拉到 59% 的故事可能在 PinchBench 重演。
5 · 运行 / 复现性 / Sandbox / 网络
5.1 运行依赖
| 组件 | 详情 |
|---|---|
| Python | 3.10+ |
| 包管理 | uv |
| Agent runtime | 本机运行的 OpenClaw instance |
| Docker | 有 Dockerfile.benchmark,容器化运行 |
| API key | OPENROUTER_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY 任一 |
| 提交 key (可选) | PINCHBENCH_OFFICIAL_KEY |
5.2 Sandbox 与网络
Dockerfile.benchmark 存在,没有详细说明:
- 容器是否限制网络出入
- 是否有 per-task 的 fs 隔离
- tool 调用(web search / shell exec)的权限边界
- 是否有 seed/determinism 保证
5.3 可复现性手段(已知)
- Semantic versioning(V2 新):任务版本号清晰,可固定到具体版本
- Manifest-based task ordering:同一 manifest 跑同一组 task
- Transcript 全留底:
results/{run_id}_transcripts/JSONL,可重新打分 --runs N:每 task 跑 N 次取平均(V2 还报 variance)- Judge result caching:同样 transcript 不重判
5.4 跑一遍完整 benchmark 的成本估算
| 资源 | 估算 |
|---|---|
| API 调用次数 | ~120 task × 5–15 LLM 调用 = 600 ~ 1,800 次调用 |
| API 成本(Claude Sonnet 4.7) | 单 task ~$0.05–0.15 → $10–25 / model |
| API 成本(GPT-5) | 类似,~$10–30 / model |
| LLM Judge(Haiku) | 额外 ~$1–3 |
| 挂钟时间 | parallel 4–8,timeout 120s → 30 min – 1 h 跑完一遍 |
| GPU 时间 | 本机不用 GPU(纯 API),除非跑 self-hosted 模型 |
6 · 🔑 自托管模型怎么接进来 — 完整配置
这是你问的核心:能不能 serve 自己训练的模型,让 PinchBench 跑? 答案 完全可以,且不需要走 OpenRouter / Anthropic / OpenAI。
6.1 两条路径
| 路径 | 详情 |
|---|---|
| A. 本地 OpenClaw + 自定义 provider(推荐) | 本机起 OpenClaw,通过配置文件指向你的 model API。PinchBench 跑就直接用了。 |
| B. KiloClaw 云托管 | $9/月 hosted OpenClaw,支持 "bring your own API key" 接 Anthropic/OpenAI/Kilo Gateway。但是否允许任意 OpenAI-compat 自托管 URL,文档不明。最务实是走路径 A。 |
6.2 完整工作流(路径 A)
6.3 OpenClaw 已经 bundle 的 OpenAI-compat 后端
| 后端 | 用途 | 默认 base URL |
|---|---|---|
| vLLM | 生产级高吞吐 self-host | 你自定义 |
| SGLang | 快速 self-host,默认 plugin | http://127.0.0.1:30000/v1 |
| LM Studio | 本地 GUI | http://localhost:1234/v1 |
| Ollama | 本地 quantized 模型 | http://localhost:11434 |
这意味着只要你的 serving 框架实现 OpenAI /v1/chat/completions API,就能直接接。vLLM / SGLang / TGI / llama.cpp server / Bedrock proxy / 任何 OpenAI 兼容 endpoint 都行。
6.4 是否能用云端 KiloClaw 跑?
KiloClaw($9/月)的设计是给个人用户用 hosted OpenClaw,主打 "500+ models via Kilo Gateway zero markup"。文档说支持 "bring your own API keys"(意指 Anthropic / OpenAI 等主流商业 provider 的 key),但没有明确文档说允许任意自托管 URL。
建议路径:本地 OpenClaw + 自托管模型(完全可控、零订阅费、复现性更好)。除非你已经在用 KiloClaw 做主力 agent,才考虑云端跑。
6.5 实操注意
- 模型 ID 格式:必须用
provider_name/model_id(如myserve/my-model),不能裸 model id - contextWindow / maxTokens:要和你真实模型对齐,虚报会被 OpenClaw 截
- tool_calling 支持:你的模型必须能 reliably 输出 function call 格式(OpenAI tools schema)。Qwen3 / Llama 3.1+ instruct 模型默认支持;裸 base model 不行
- 带宽/延迟:OpenClaw 默认 timeout 30s/call,慢模型设
timeoutSeconds: 300 - 不要 --official-key 上传:除非你的模型有正式 ID;否则 leaderboard 不接受自托管
7 · 📤 提交到 Official Leaderboard 流程
7.1 三种 run 模式
| 模式 | 命令 | 结果 |
|---|---|---|
| 本地测试 | ./scripts/run.sh --model X --no-upload | 跑完只本地存,不上传 |
| Community run | ./scripts/run.sh --register 拿 token,再跑 | 结果自动上传,leaderboard 标 "unofficial" |
| Official run | 需要 PINCHBENCH_OFFICIAL_KEY | 由 PinchBench team 在标准化硬件跑,leaderboard 标 "official" |
7.2 完整流程原文(README 节选)
"Register for an API token (one-time):
./scripts/run.sh --registerRun benchmark:
./scripts/run.sh --model openrouter/anthropic/claude-sonnet-4Results auto-upload with your token.
To submit an official run (marked on the leaderboard):
export PINCHBENCH_OFFICIAL_KEY=your_official_key./scripts/run.sh --model XOfficial runs are conducted by the PinchBench team on standardized hardware; community members can also submit runs which are marked as unofficial."
7.3 提交新任务(贡献 PR)
- 在
pinchbench/skill/tasks/加新 task,followtasks/TASK_TEMPLATE.md - 必须包含 prompt + expected behavior + grading criteria + grader function + (如需)LLM judge rubric
- 提 PR 到 pinchbench/skill
- 2026-03 一次 "call for contributors" 收到 111 个 PR,community 极活跃
7.4 为什么"official"需要团队跑
关键考虑:
- 硬件标准化 — community 跑的速度数字不可比(机器配置不同)
- 防作弊 — 否则用户可以多跑几次只交最高分
- token 限速 / 配额 — PinchBench team 用统一 API key 保证调用一致
- cost 数字归一 — 用同一时点的 token 价格
因此:community run(可自由跑、自动上传)足够用于对比自己训练的不同 checkpoint。Official run 主要是给商业模型 vendor 做权威排名。
8 · License / 商用 / 训练数据政策
| Repo | License | 商用 | 修改 | output 训练 |
|---|---|---|---|---|
| pinchbench/skill | MIT | ✓ | ✓ | ✓ 未明禁 |
| pinchbench/leaderboard | MIT | ✓ | ✓ | — |
| pinchbench/api | MIT | ✓ | ✓ | — |
MIT 是最宽松的 — 商用、修改、闭源衍生全允许,只要保留 copyright notice。
- ✅ 可以拿 task 的 prompt + workspace + grader 作为 RL 训练 environment(reward 是 grader 直接出的)
- ⚠ 排除 grader 源码不进模型 context — 否则训练时会泄漏 evaluation criteria,导致 overfit
- ⚠ 如果你的模型最终要交到 official leaderboard,要避免直接用 PinchBench tasks 训练(会被认为是 contamination)
- ✅ 用相似 task pattern 自己 paraphrase 出训练集是 OK 的
9 · 合成数据 / 自建成本
任务格式低门槛(markdown + YAML),但好 grader 高门槛。
| 部分 | 难度 | 工时(per task) |
|---|---|---|
| 写 prompt + workspace assets | ⭐ | 15 min |
| 写 expected behavior | ⭐⭐ | 15 min |
| 写 grading criteria checklist | ⭐⭐⭐ | 20 min |
| 写 Python grader function | ⭐⭐⭐⭐ | 30–45 min |
| LLM judge rubric(if 用) | ⭐⭐⭐ | 20 min |
| QA(跑几个模型验证) | ⭐⭐ | 15 min |
合计 ~1.5–2 小时 / task。造 50 个 task 大约 75–100 工时 = 1.5–2 周专人专做,或 ~$3K–5K 雇 contractor。
跟其他 agent benchmark 自建难度对比:
| Benchmark | 自建难度 | 原因 |
|---|---|---|
| PinchBench | ⭐⭐⭐ | grader 是手写 Python,但 sandbox 现成 |
| Terminal-Bench | ⭐⭐⭐⭐ | Docker 容器化 + shell 测试 |
| SWE-Bench | ⭐⭐⭐⭐⭐ | 真实 GitHub PR + pass-rate 测试,需 repo 还原 |
| τ-Bench | ⭐⭐⭐ | 状态机模拟,需 DB |
| OSWorld | ⭐⭐⭐⭐⭐ | 完整 OS image + VM 镜像 |
10 · 局限 / 个人 take
这个 benchmark 的优势
- ✅ 真实任务,不是合成 MCQ
- ✅ 全 MIT 开源,Docker 化好跑
- ✅ 自托管模型完美支持(OpenClaw 自定义 provider)
- ✅ V2 引入 consistency / variance / cost / speed,评测维度全面
- ✅ Episode-level reward 可直接给 RL 当 reward signal
局限
- ⚠ 任务 horizon 偏短(5-20 turn),不测真正长程任务(对比 OSWorld 30-50, GAIA 多步)
- ⚠ 偏 productivity / coding,不覆盖 GUI / browser / OS-level agent
- ⚠ Sandbox 网络隔离政策不透明,web search 类任务的可复现性受外部状态影响
- ⚠ Official leaderboard 必须 PinchBench team 跑(community 只能拿 "unofficial" 标记)
- ⚠ 顶尖闭源模型已经饱和(86-92%),benchmark 区分度对前沿模型在下降
- ⚠ 评测主要走 Kilo 自家 OpenClaw harness,harness-specific 影响显著(Claude Haiku > Opus 4.6 就是 harness 偏好的证据)
个人 take
PinchBench 是"工业实用主义"派的 benchmark — 不追前沿 long-horizon,不堆 OSWorld 这种全 OS 任务,而是聚焦"真实小白领 daily workflow"。它的强项是 commercial-friendly + 易自托管 + grader 极透明。对一个想训练自己的 7B–30B agent 模型的团队,这是性价比最高的 evaluation harness 之一。
但要明白:在 PinchBench 上做 SOTA 不等于 agent 能力强。它对短 horizon、productivity 类任务过拟,真正的 long-horizon agent 能力(OSWorld / RE-Bench / GAIA)PinchBench 测不出来。
3 个待验证问题
- Sandbox 的网络出口具体怎么管?能不能在 task 层面定义 allow/deny domain?
- Grader 函数有没有 leak 风险 — 如果模型能读到 grader 源码,score 会被 game 多少?
- 把 PinchBench 当 RL training 用,有没有人公开过 recipe?目前 leaderboard 上看似没有"用 PinchBench 自训"的模型。