CLAWGYM II · PAPER DEEP DIVEarXiv:2608.16798 · 2026-08-17
保留 Claude Code 与 OpenClaw 的执行流程,怎样训练它们调用的模型?

原程序继续执行工具、压缩历史和处理重试。训练系统记录模型生成与概率,按共同历史接起有效调用,再用最终文件的检查分更新模型。

OpenClaw · 轻量监督预训练起点
52.64 → 62.62

Qwen3-30A3B · ClawGym-Bench

Claude Code · 原始模型起点
37.06 → 51.87

两套程序分别训练,不能直接比较增益。

作者兴趣度 9.8 / 10 · 仅表示与博客作者研究兴趣的相关程度

1 · 执行原生程序完成任务训练器不替换工具循环。
2 · 记录保存原始生成每次请求、token、概率。
3 · 恢复连接与过滤分支共享前缀只训练一次。
4 · 更新用任务分训练模型PPO/GRPO 更新权重。
标题:ClawGym II: Exploring Black-Box RL on Agent Harness
02 · MOTIVATION保留部署时真正使用的 harness

训练框架常自行管理工具循环;真实部署程序还会重试、压缩历史和调用子任务

Claude Code、OpenClaw 会自己构造提示、执行工具、重试、调用子 Agent 和压缩上下文。把这些过程重写进训练框架,模型看到的输入与操作过程就不再与部署时相同。

WHITE-BOX

训练器自行管理执行顺序

可以直接定义状态、动作、工具循环和得分分配,但原部署程序的行为被替换了。

BLACK-BOX

只观察模型 API

Harness 内部逻辑保持不动;可见的是每次模型调用和最终工作区。

TARGET

把任务分写回有效生成片段

必须恢复长轨迹、过滤辅助分支,并保留 rollout 时的 token 与概率。

来源:论文 §1、§3.1–§3.2。
03 · SYSTEM BOUNDARY不读执行程序内部,不等于不掌握模型生成

训练系统不读 harness 内部状态,只守住所有生成都经过的模型端点

HARNESS PRIVATE
提示组装工具执行重试 / 历史压缩
OBSERVED
输入 token输出 token生成时的对数概率任务标识
AFTER ROLLOUT
工作区最终分模型更新
边界条件论文假设 harness 的所有模型生成都会经过可替换的模型服务端点。如果某些决策绕过这个端点,训练系统就看不见它们。
来源:论文 §3.1、Figure 1;图为解释性重绘。
04 · PIPELINE任务 → 原部署程序 → 模型代理 → 分支树 → 验收 → 更新

一次完整执行的数据怎样进入训练

执行每次任务在独立 sandbox 中运行。OpenClaw 或 Claude Code 原样负责工具、重试与历史管理;模型请求经过代理,留下原始 token 和生成概率。
更新任务结束后,验收器评估最终工作区。训练器把模型调用恢复为前缀树,过滤无效分支,再用 PPO 或 GRPO 更新同一个策略模型。
ClawGym II black-box RL pipeline
根据论文 Figure 1 与 §3.1–§3.3 重绘。未取得原图复用许可,使用独立重绘。
05 · PREFIX TREE多次模型调用不一定属于一条连续记录

重试、历史压缩和子 Agent 会把一次任务记录分成多分支

接起调用按输入历史的最长共同前缀把调用接到树上;后续请求中的工具结果补回两次模型生成之间的环境内容。
保留与排除每个压缩段保留最长有效延续,丢弃被重试替代的短分支;摘要与子 Agent 调用不接受主任务分数。有效路径的共享前缀只计一次。
Prefix tree reconstruction and filtering
来源:论文 §3.2.1–§3.2.3;图为解释性重绘。
06 · TRAJECTORY FILTERING先判断哪条分支代表主任务

同一棵树的每个末端分支,不都该收到主任务分数

DROP

被重试替代的旧分支

按历史压缩点分段,每段保留最长有效延续;被重试替代的短分支丢弃。

DROP ROLLOUT

过度分叉

末端分支数超过阈值,整次任务记录视为异常;阈值未披露。

EXCLUDE

生成摘要 / 执行子任务

这两类辅助调用不训练;压缩后继续完成主任务的交互段仍保留。

KEEP

主 Agent 的有效路径

保留有效的根到末端路径,同次任务的共享前缀只计一次。

来源:论文 §3.2.2–§3.2.3。分支数量上限未公开。
07 · GRPO任务分属于整次尝试,不是单独某条分支

同题多个尝试先算相对得分,再写回保留树节点

Âᵢ = (Rᵢ − μq) / (σq + ε)一次尝试 gᵢ 的保留分支共用任务分 Rᵢ;共享前缀 token 只训练一次。

分组单位

同一“任务 × harness”的 n 次完整尝试。

优势单位

每次尝试共用一个相对得分 Âᵢ,不给每条分支单独判分。

仍未解决

同次尝试内各分支贡献了多少,任务最终分无法区分。

来源:论文 §3.2.3,Equation 7。
08 · PPO各分支独立估计生成步骤的回报

PPO 对兄弟分支分别回传任务分,γ = λ = 1

ESTIMATOR
Âₜ = Rᵢ − Vφ(sₜ)

每条路径在末 token 收到任务分,再用 GAE 估计此前各步的回报。GAE 是广义优势估计;回传不跨分叉点进入兄弟分支。

TRADE-OFF

实现简单,但估计仍有偏差与方差

价值模型要从早期状态预测最终回报,且不按时间衰减。论文尚未精细区分各分支对最终结果的贡献。

来源:论文 §3.2.3,Equation 8。
09 · TOKEN FIDELITYharness 可改文字表示,不能改训练 token

保留实际生成 token,截断概率比减少生成与训练不一致的影响

1 · SAMPLE生成端保存原始输出 token 与生成时的对数概率。
2 · ACT原程序读文本可以格式化工具调用、重新序列化消息。
3 · TRAIN训练器读原始 token不从改写后的历史反推输出 token。
4 · CORRECT每个 token 的概率比用截断重要性权重减少概率不一致的影响。
wₜ = min(exp(log πold(aₜ|sₜ) − log πrollout(aₜ|sₜ)), c̄)这是偏差与方差的折中。论文没有公开 c̄ 的数值。
来源:论文 §3.2.4,Equations 9–10。
10 · MIX-HARNESS一个模型,两套执行程序

本文将同题、不同 harness 的成绩分组比较

OpenClaw group
task q + H_OC8 次尝试组内计算相对得分 Â
Claude Code group
task q + H_CC8 次尝试组内计算相对得分 Â
共同更新一个模型同题在两套程序内分别分组;总批次32组×8次=256次,不是每套程序各256次。Figure 4 从原始 Qwen3 开始,没有预训练。
来源:论文 §3.3、§4.3。Mix-harness 只给曲线和定性结论,没有完整数值表。
11 · CLAWGYM-SYNDATA用户角色路线 + 技能路线

GPT-5 生成任务与 workspace,GPT-5.4 做质量复核

PERSONA ROUTE

9 大类、43 个子类

GPT-5 根据用户角色与 7 类、26 种基础操作生成任务,再生成模拟工作区、Python 检查器和评分规则。

SKILL ROUTE

约 30K 技能描述 → 约 16K

MiniMax-M2.5 先标注 ClawHub 技能描述。每题选 1 个主要技能,最多搭配 3 个辅助技能,再由 GPT-5 生成任务。

MODEL REVIEW

GPT-5.4 四项检查

任务是否合理、有难度、测试是否对题,以及评分规则是否只补程序难判断的维度。

HUMAN SAMPLE

50 题人工抽样

前作:合理性4.46、可执行性3.50、资源一致性4.36、评分质量3.92(满分5)。没有全量人工复核或标注者一致性。

来源:ClawGym 原论文 §2 与 ClawGym-SynData revision 98d0478。
12 · CLAWGYM-BENCH训练未见过的合成题

先用模型成功率找出“强模型能做、小模型仍难”的题,再交给人复核

POOL未用于训练的合成题沿用任务说明、工作区、程序检查与模型评分规则。
CALIBRATE强、小模型各试 4 次平均分:强模型 ≥ 0.2;小模型 ≤ 0.6;强模型高于小模型。
MODEL AUDITGPT-5.4 诊断检查任务、程序验收与模型评分规则。
HUMAN REVIEW接受 / 修改 / 拒绝入选 200 题:156 题只用程序评分,44 题再加模型评分。
来源:ClawGym 原论文 §2.4 与官方 Bench README。强模型与小模型的具体名称未披露。
13 · REAL CASEbenchmark_data.jsonl line 1 · Messaging and Collaboration

志愿者污染修复团队:从数据文件产出四个同步更新文件

VISIBLE TO AGENT

任务说明与初始文件

data/tasks.csv、data/updates.jsonl、原始公告、摘要程序和公开测试。Agent 可运行命令并修改工作区。

CSV 有 7 条任务记录:待办2、进行中2、完成2、受阻1。更新应按任务4(4/15 09:15)、3(4/14 18:20)、2(4/14 10:05)排列。

交付:统计 JSON、测试日志、周报和公告。任务5/Nora受阻;下一步列任务2/Marco与4/Sam。

HIDDEN DURING EXECUTION

验收程序与评分规则

reward/test.py、两条模型评分规则和评分提示不暴露给 Agent。执行结束后,评测器在最终工作区上运行。

本题由合成管线生成,并由 benchmark 筛选流程复核,不是现实志愿组织人工编写。

来源:ClawGym-Bench benchmark_data.jsonl line 1,revision c8cbd1d。
14 · CODE CHECKER15 个等权的 0/1 检查项

程序分衡量完成度:15 项检查,每项占 1/15

# 原检查器:保留存在性前置条件
announcement_path = (
    build_dir / "announcement_rewrite.txt"
)
if announcement_path.exists():
    scores["announcement_exists"] = 1.0
    ann_text = (
        _read_text(announcement_path) or ""
    )
    wc = _word_count(ann_text)
    if wc < 120:
        scores[
            "announcement_under_120_words"
        ] = 1.0

# 缺公告时长度分和其余三项都为0。
本文实测:完整输出15/15先运行摘要程序和两条公开测试,再执行原检查器;不是作者模型日志。
颠倒更新顺序:14/15应为4→3→2,改成2→3→4,只丢顺序检查一项。其他14项保持为1。
实际评分盲点:只匹配提交的日志日志只写 passed,tests_all_passed 仍为1;检查器不独立重跑 pytest。
来源:官方 case 的完整公告分支;仅换行显示。Python 3.13.5 实测原检查器;没有调用模型评分器。
15 · HYBRID JUDGE程序检查 + GPT-5.4 按规则评分

程序检查文件与格式;模型评判语气,以及行动建议是否明确可执行

本文重放的公开程序检查构造完整周报时 15/15;只颠倒三条更新的顺序时 14/15。公开检查器还会把只有 passed 的提交日志当作测试通过。
论文评分与公开默认值混合题在论文中用 0.7 × 程序分 + 0.3 × 模型分;公开 CLI 默认 0.5/0.5,须显式设权重。这里没有运行 GPT-5.4 评分,也没有论文模型日志。
Real benchmark case scoring
来源:官方 Bench 的 reward.py、judge.py、runner.py 与 case line 1。论文 Appendix A 的 prompt 比公开实现多 transcript 与 changed files。
16 · EXPERIMENT SETUPmatched rollout budget

GRPO 与 PPO 每次更新都用 256 次尝试,但题目数量不同

GRPO
32 × 8

32 道题,每题 8 次尝试,用组内相对得分。

PPO
256 × 1

256 道题,每题 1 次尝试,另需预训练价值模型。

CONTEXT
64K

单次请求上下文窗口,不是整题累计token额度;长任务由原程序压缩历史。

MODEL
30A3B

OpenClaw 从 ClawII-Cold 开始;Claude Code 从 Qwen3 base 开始。

来源:论文 §4.1 至 §4.2。执行次数相同,不等于token、GPU时间或价值模型预训练成本相同。
17 · MAIN RESULTSQwen3-30A3B family · Table 1

在对应 harness 内训练后,ClawGym-Bench 与 PinchBench 都提高

OpenClaw,从 ClawII-Cold 出发ClawGym-Bench 52.64 → 62.62(+9.98 分);PinchBench 75.61 → 87.32(+11.71 分)。
Claude Code,从原始 Qwen3 出发ClawGym-Bench 37.06 → 51.87(+14.81 分);PinchBench 54.14 → 71.42(+17.28 分)。两边起点不同,不能直接比较增益。
Main benchmark results
根据论文 Table 1 重绘。OpenClaw baseline 是 ClawII-Cold-30A3B;Claude Code baseline 是 Qwen3-30A3B。
18 · TRANSFERharder tasks + white-to-black

同一训练方法可换任务与程序,但模型仍偏好训练时的程序

Cross-harness transfer results
JobBench-Easy20.46 → 27.20,在 Claude Code 中执行。
OfficeQA-Full8.53 → 21.54,在 Claude Code 中执行。
自定义工具循环与真实部署程序的差距WhiteBox 在 AgentLoop 得59.90,换到OpenClaw为50.33;Content分项51.95→50.36。直接在OpenClaw训练为62.62,但两组初始化未完全配对。
根据论文 Figures 5–6、Table 2 重绘。JobBench-style / OfficeQA-style 训练任务数量未披露。
19 · RELATED WORK同一维度比较

贡献是恢复黑盒分叉记录,再据此训练原生执行程序中的模型

工作保留原生 harness训练信号怎样接入ClawGym II 的边界
ClawGymOpenClaw 数据与 benchmark合成任务、checker、rubric 和 cold startClawGym II 复用数据资产,新增在线 RL 桥接。
POLAR / OpenForgeRL是在模型请求端点收集执行记录同样保留执行程序;本文重点是调用树与分支训练。
Dressage面向多 Agent / sandbox可扩展的多环境执行系统偏系统扩展性;本文细讲调用分支恢复。
LEGO-RL是模型代理、隔离验收、MoE专家选择重放LEGO-RL 细讲系统与一致性;本文细讲调用树、PPO/GRPO。
White-box AgentLoop否训练框架直接控制 loop更易把得分分到步骤,但模型看到的交互不同于原程序。
来源:论文 Related Work、§4.6;对 LEGO-RL 的描述来自其原论文与官方仓库。
20 · TAKEAWAYS对 Claude Code / Codex harness 研究最值得带走的点

它提供了训练桥接算法,尚未证明模型能通用多种执行接口

接入方式模型 API 可作为训练接入处原程序执行工具,代理记录模型实际生成,结束后获取任务分。
核心算法分叉执行记录需要树结构共享前缀去重;按压缩点分段,排除重试短分支和辅助生成。
任务评分任务分数是连续完成度公开 runner 对 final_score 求平均;论文称 Pass@1,二者表述并不完全一致。
实验范围训练方差未知没有重复训练或置信区间;混合训练也缺完整数值表。
复现缺口核心训练代码尚未公开2026-10-20 检查论文代码仓库为空,调用树和训练实现无法核验。
下一步对照跨 harness 因果实验固定任务、原始权重、执行次数与生成额度,再做训练程序×测试程序的配对实验。
核心结论1 / 20