原程序继续执行工具、压缩历史和处理重试。训练系统记录模型生成与概率,按共同历史接起有效调用,再用最终文件的检查分更新模型。
Qwen3-30A3B · ClawGym-Bench
两套程序分别训练,不能直接比较增益。
作者兴趣度 9.8 / 10 · 仅表示与博客作者研究兴趣的相关程度
训练框架常自行管理工具循环;真实部署程序还会重试、压缩历史和调用子任务
Claude Code、OpenClaw 会自己构造提示、执行工具、重试、调用子 Agent 和压缩上下文。把这些过程重写进训练框架,模型看到的输入与操作过程就不再与部署时相同。
训练器自行管理执行顺序
可以直接定义状态、动作、工具循环和得分分配,但原部署程序的行为被替换了。
只观察模型 API
Harness 内部逻辑保持不动;可见的是每次模型调用和最终工作区。
把任务分写回有效生成片段
必须恢复长轨迹、过滤辅助分支,并保留 rollout 时的 token 与概率。
训练系统不读 harness 内部状态,只守住所有生成都经过的模型端点
一次完整执行的数据怎样进入训练
重试、历史压缩和子 Agent 会把一次任务记录分成多分支
同一棵树的每个末端分支,不都该收到主任务分数
被重试替代的旧分支
按历史压缩点分段,每段保留最长有效延续;被重试替代的短分支丢弃。
过度分叉
末端分支数超过阈值,整次任务记录视为异常;阈值未披露。
生成摘要 / 执行子任务
这两类辅助调用不训练;压缩后继续完成主任务的交互段仍保留。
主 Agent 的有效路径
保留有效的根到末端路径,同次任务的共享前缀只计一次。
同题多个尝试先算相对得分,再写回保留树节点
分组单位
同一“任务 × harness”的 n 次完整尝试。
优势单位
每次尝试共用一个相对得分 Âᵢ,不给每条分支单独判分。
仍未解决
同次尝试内各分支贡献了多少,任务最终分无法区分。
PPO 对兄弟分支分别回传任务分,γ = λ = 1
每条路径在末 token 收到任务分,再用 GAE 估计此前各步的回报。GAE 是广义优势估计;回传不跨分叉点进入兄弟分支。
实现简单,但估计仍有偏差与方差
价值模型要从早期状态预测最终回报,且不按时间衰减。论文尚未精细区分各分支对最终结果的贡献。
保留实际生成 token,截断概率比减少生成与训练不一致的影响
本文将同题、不同 harness 的成绩分组比较
GPT-5 生成任务与 workspace,GPT-5.4 做质量复核
9 大类、43 个子类
GPT-5 根据用户角色与 7 类、26 种基础操作生成任务,再生成模拟工作区、Python 检查器和评分规则。
约 30K 技能描述 → 约 16K
MiniMax-M2.5 先标注 ClawHub 技能描述。每题选 1 个主要技能,最多搭配 3 个辅助技能,再由 GPT-5 生成任务。
GPT-5.4 四项检查
任务是否合理、有难度、测试是否对题,以及评分规则是否只补程序难判断的维度。
50 题人工抽样
前作:合理性4.46、可执行性3.50、资源一致性4.36、评分质量3.92(满分5)。没有全量人工复核或标注者一致性。
先用模型成功率找出“强模型能做、小模型仍难”的题,再交给人复核
志愿者污染修复团队:从数据文件产出四个同步更新文件
任务说明与初始文件
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。
验收程序与评分规则
reward/test.py、两条模型评分规则和评分提示不暴露给 Agent。执行结束后,评测器在最终工作区上运行。
本题由合成管线生成,并由 benchmark 筛选流程复核,不是现实志愿组织人工编写。
程序分衡量完成度: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。
程序检查文件与格式;模型评判语气,以及行动建议是否明确可执行
passed 的提交日志当作测试通过。GRPO 与 PPO 每次更新都用 256 次尝试,但题目数量不同
32 道题,每题 8 次尝试,用组内相对得分。
256 道题,每题 1 次尝试,另需预训练价值模型。
单次请求上下文窗口,不是整题累计token额度;长任务由原程序压缩历史。
OpenClaw 从 ClawII-Cold 开始;Claude Code 从 Qwen3 base 开始。
在对应 harness 内训练后,ClawGym-Bench 与 PinchBench 都提高
同一训练方法可换任务与程序,但模型仍偏好训练时的程序
贡献是恢复黑盒分叉记录,再据此训练原生执行程序中的模型
| 工作 | 保留原生 harness | 训练信号怎样接入 | ClawGym II 的边界 |
|---|---|---|---|
| ClawGym | OpenClaw 数据与 benchmark | 合成任务、checker、rubric 和 cold start | ClawGym II 复用数据资产,新增在线 RL 桥接。 |
| POLAR / OpenForgeRL | 是 | 在模型请求端点收集执行记录 | 同样保留执行程序;本文重点是调用树与分支训练。 |
| Dressage | 面向多 Agent / sandbox | 可扩展的多环境执行系统 | 偏系统扩展性;本文细讲调用分支恢复。 |
| LEGO-RL | 是 | 模型代理、隔离验收、MoE专家选择重放 | LEGO-RL 细讲系统与一致性;本文细讲调用树、PPO/GRPO。 |
| White-box AgentLoop | 否 | 训练框架直接控制 loop | 更易把得分分到步骤,但模型看到的交互不同于原程序。 |