Qwen3-30B-A3B-OpenClaw-RL-iter335

ๆŠŠ Qwen/Qwen3-30B-A3B (vanilla, 30B total / 3B active MoE) ็”จ HansBug/OpenClaw-RL ็š„่ฎญ็ปƒๆก†ๆžถๅš GRPO outcome-only RL๏ผˆdense pass-rate reward๏ผŒๆ—  PRMใ€ๆ—  process reward๏ผ‰่ท‘ๅ‡บๆฅ็š„ best ไธญ้—ด checkpoint๏ผŒๅฏนๅบ” wandb run b0il0mq4 ็š„ rollout 335 (megatron iteration 335)ใ€‚

ๅœจ terminal-bench v0.1.x 66 ไธช OOD task ไธŠๆŠŠ base Qwen3-30B-A3B ็š„ pass@1 ไปŽ 0.0606 ๆŽจๅˆฐ 0.0808 (+33%)ใ€pass@3 ไปŽ 0.1212 ๆŽจๅˆฐ 0.1515 (+25%)๏ผŒๆ˜ฏ่ฟ™ๆฌก 30B fresh run ่ฎญ็ปƒไธญๅ”ฏไธ€ๆ˜Ž็กฎ"่ถ…่ถŠ่‡ช่บซ base"็š„ ckptใ€‚

ๅฎŒๅ…จ drop-in ๅ…ผๅฎน๏ผšconfig / generation_config / tokenizer ๅ…จ้ƒจ่ทŸไธŠๆธธ Qwen/Qwen3-30B-A3B ๅญ—่Š‚็บงไธ€่‡ด๏ผ›ไปปไฝ•่ƒฝ่ท‘ Qwen3-30B-A3B ็š„ๅทฅๅ…ท้“พ๏ผˆHF transformersใ€vLLMใ€sglangใ€ollamaใ€llama.cpp ่ฝฌ GGUF ็ญ‰๏ผ‰ไธ€่กŒ้ƒฝไธ็”จๆ”นใ€‚

ๅฎŒๆ•ด็š„่ฎญ็ปƒ + eval ่ฏฆ็ป†ๅˆ†ๆž่ง HansBug/OpenClaw-RL issue #14ใ€‚


็›ฎๅฝ•

  1. ๅฟซ้€Ÿๅผ€ๅง‹
  2. ๆจกๅž‹ไปŽๅ“ชๆฅ
  3. ่ฎญ็ปƒ่ฎพ็ฝฎ
  4. ่ฎญ็ปƒๆ›ฒ็บฟ
  5. ่ฏ„ๆต‹็ป“ๆžœ
  6. ไธบไป€ไนˆๆ˜ฏ iter_335 ่€Œไธๆ˜ฏๆœ€ๆ–ฐ ckpt
  7. ๆŽจ็†ๆ—ถ็š„ on-the-wire ๅ่ฎฎ
  8. ๅทฒ็Ÿฅ้™ๅˆถ
  9. ๅค็Žฐ / ๆŽจ็†ๅทฅๅ…ท
  10. ๅผ•็”จ / ่‡ด่ฐข

ๅฟซ้€Ÿๅผ€ๅง‹

็”จ HF transformers

from transformers import AutoTokenizer, AutoModelForCausalLM

tok = AutoTokenizer.from_pretrained("HansBug/Qwen3-30B-A3B-OpenClaw-RL-iter335")
model = AutoModelForCausalLM.from_pretrained(
    "HansBug/Qwen3-30B-A3B-OpenClaw-RL-iter335",
    torch_dtype="bfloat16",
    device_map="auto",
)

messages = [
    {"role": "user", "content": "Write a one-line bash command to recursively count *.py files under /usr/lib."}
]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(text, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256, temperature=0.2)
print(tok.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

็”จ sglang๏ผˆๆŽจ่๏ผŒ้… tool-call ๆ”ฏๆŒ + MoE ๅŠ ้€Ÿ๏ผ‰

python -m sglang.launch_server \
    --model-path HansBug/Qwen3-30B-A3B-OpenClaw-RL-iter335 \
    --served-model-name qwen3-30b-rl-iter335 \
    --tp 4 --port 30000 \
    --mem-fraction-static 0.85 \
    --tool-call-parser qwen \
    --disable-custom-all-reduce

่ทŸ base Qwen3-30B-A3B ไธ€ๆ ท็š„ๅฏๅŠจๅ‚ๆ•ฐใ€‚TP=4 ๆ—ถ 30B MoE ๅ• rank ~15 GB params + ~120 GB kv cache๏ผŒๆ”พ 4ร— 80 GB GPU ๆˆ– 4ร— 143 GB GPU ้ƒฝๆฒก้—ฎ้ข˜ใ€‚--disable-custom-all-reduce ๆ˜ฏ issue #8 ๅทฒ็Ÿฅ Hopper bug ็š„ๅ…œๅบ• flag๏ผŒไฟ็•™ๅณๅฏใ€‚--tool-call-parser qwen๏ผˆๆˆ– qwen25๏ผ‰ๆŠŠๆจกๅž‹็š„ <tool_call>{...}</tool_call> ่ฟ˜ๅŽŸๆˆ OpenAI ็ป“ๆž„ๅŒ– tool_calls๏ผŒ่ฟ™ๆญฃๆ˜ฏ่ฎญ็ปƒๆ—ถ rollouts ็”จ็š„ parserใ€‚

็”จ vLLM

vllm serve HansBug/Qwen3-30B-A3B-OpenClaw-RL-iter335 \
    --tensor-parallel-size 4 \
    --enable-auto-tool-choice --tool-call-parser hermes

็”จ oc-repl ็›ดๆŽฅไบคไบ’๏ผˆ็ซฏๅˆฐ็ซฏ demo๏ผ‰

HansBug/oc-repl ๆ˜ฏไธ€ไธช้’ˆๅฏน่ฟ™ไธช family ้‡่บซๅ†™็š„ Codex ้ฃŽๆ ผ REPL๏ผš

pip install git+https://github.com/HansBug/oc-repl

# ่ตทไธ€ไธช sandbox ๅฎนๅ™จ๏ผˆไปปไฝ• ubuntu/python image ้ƒฝ่กŒ๏ผ‰
docker run -d --name oc-sandbox -w /app ubuntu:24.04 sleep infinity

# ๅฏๅŠจไบคไบ’ๅผ REPL
oc-repl --sandbox docker:oc-sandbox \
        --api-base http://127.0.0.1:30000/v1 \
        --model qwen3-30b-rl-iter335

oc-repl ้ป˜่ฎค --protocol camel-terminal-toolkit ๅฏน้ฝ่ฎญ็ปƒๅˆ†ๅธƒ๏ผŒ่ฏฆ่งไป“ๅบ“ READMEใ€‚


ๆจกๅž‹ไปŽๅ“ชๆฅ

Qwen3-30B-A3B-OpenClaw-RL-iter335 = Qwen3-30B-A3B (vanilla, ไธๆ˜ฏ Coder-30B-A3B-Instruct๏ผŒไนŸไธๆ˜ฏ 30B-A3B-Instruct-2507) + 335 ไธช RL rollout ็š„ GRPO outcome-only ่ฎญ็ปƒ๏ผŒrollout ๅœจ SETA terminal env pool ๆไพ›็š„ 1376 ไธช terminal task ไธŠใ€‚ๆฏไธช task ๆ˜ฏไธ€ไธช็œŸๅฎž็š„ Linux shell ไปปๅŠก๏ผˆไฟฎ่„šๆœฌใ€่งฃ base64ใ€่ตท serverใ€่ท‘ pytestโ€ฆ๏ผ‰๏ผŒๅœจ้š”็ฆป docker ๅฎนๅ™จ้‡Œ่ท‘๏ผŒagent ้€š่ฟ‡ camel.toolkits.TerminalToolkit ๆšด้œฒ็š„ 4 ไธชๅทฅๅ…ทๆ“ไฝœ shellใ€‚

ๅ€ผ
ๅŸบๅบง Qwen/Qwen3-30B-A3B๏ผˆvanilla MoE๏ผŒ30B total / 3B active๏ผŒ128 expert / topk=8 / 48 layer / hidden 2048๏ผ‰
่ฎญ็ปƒๆก†ๆžถ HansBug/OpenClaw-RL (Megatron + slime + sglang rollout)
Agent harness camel-ai ChatAgent + TerminalToolkit
ๆ•ฐๆฎ seta_env 1376 task pool๏ผˆๅซ terminal-bench v0.1.x 86 task ๅญ้›†๏ผ‰
็ฎ—ๆณ• GRPO outcome-only๏ผŒdense pass-rate reward
่ฎญ็ปƒ rollout ๆ•ฐ 335 rollout๏ผˆ็บฆ 4ร— n_samples ร— prompt ๆ•ฐ๏ผ‰
่ฎญ็ปƒ็กฌไปถ 8ร— NVIDIA H200๏ผŒactor 4ร—TP + 4ร—EP + ETP=1๏ผŒrollout 4ร—TP
่ฎญ็ปƒๆ—ถ้•ฟ ็บฆ 4 ๅคฉๅˆฐ iter_335 ๅฎŒๆˆ๏ผˆๅฎŒๆ•ด fresh run ็›ดๅˆฐ iter_367 ๅ…ฑ ~5.5 ๅคฉ / 367 rollout๏ผ‰
Wandb hansbug/openclaw-terminal-rl/runs/b0il0mq4
Group qwen3-30b-a3b-vanilla-fresh-run1

ไธบไป€ไนˆๆ˜ฏ vanilla ่€Œไธๆ˜ฏ Coder-30B-A3B-Instruct๏ผŸ ๅˆๆฌก็”จ Coder-30B-A3B-Instruct ่ท‘ไบ† 1114 ไธช rollout ๅ…จ fail โ€”โ€” ๅฎƒ็š„ chat_template.jinja ็”จ tool_call.arguments|items ่ฆๆฑ‚ arguments ๆ˜ฏ dict๏ผŒไฝ† slime/sglang ่ตฐ OpenAI ๅ่ฎฎๆŠŠ arguments ๅบๅˆ—ๅŒ–ๆˆ JSON string โ†’ jinja2 TypeErrorใ€‚vanilla Qwen3-30B-A3B ็š„ chat_template ไธŽ 8B ๅญ—่Š‚็บง็›ธๅŒ๏ผŒๆ•ดๆก slime + terminus-2 + harbor ้“พ่ทฏ 0 ไฟฎๆ”น้€š่ฟ‡ใ€‚่ฏฆ่ง HansBug/OpenClaw-RL issue #14 ยง1.1ใ€‚


่ฎญ็ปƒ่ฎพ็ฝฎ

ๅฎŒๆ•ดๅฏๅŠจๅ‘ฝไปค่ง run_qwen3_30b_a3b_experiment.shใ€‚ๅ…ณ้”ฎ่ถ…ๅ‚๏ผˆไธŽ 8B run-3 ็ฎ—ๆณ•ไพงๅฎŒๅ…จ็›ธๅŒ๏ผŒไป… MoE ๅนถ่กŒๅทฎๅผ‚๏ผ‰๏ผš

# GRPO ็ฎ—ๆณ• (ๅŒ 8B run-3, issue #4)
--advantage-estimator grpo
--use-kl-loss --kl-loss-coef 0.01 --kl-loss-type k3
--dynamic_history

# Optimizer (low LR + Adam beta2=0.98)
--optimizer adam --lr 1e-6 --lr-decay-style constant
--weight-decay 0.1 --adam-beta1 0.9 --adam-beta2 0.98

# Rollout (ๅŒ 8B)
--rollout-batch-size 16
--n-samples-per-prompt 8           # GRPO group size = 8
--num-steps-per-rollout 2
--rollout-temperature 1
--rollout-max-response-len 8192
--rollout-max-context-len 16384

# Megatron โ€” MoE ๅนถ่กŒ๏ผˆไธŽ 8B ไธๅŒ๏ผ‰
--tensor-model-parallel-size 4
--expert-model-parallel-size 4     # 128 expert ๅˆ†ๅˆฐ 4 ๅผ  actor ๅก๏ผŒๆฏๅก 32 expert
--expert-tensor-parallel-size 1
--sequence-parallel
--recompute-granularity full

# Save / freq
--save-interval 16                  # save ๆฏ 16 rollout๏ผˆโ‰ˆ 5.3h/save๏ผ‰
--num-rollout 2000                  # ่ฎญ็ปƒ็›ฎๆ ‡๏ผˆๅฎž้™…่ท‘ๅˆฐ 367 ๅœ๏ผ‰

# Rollout agent + tool-call parser
--custom-config-path configs/rollout_qwen3.yaml   # tool_call_parser: qwen25
                                                  # max_iteration: 10

Reward signal๏ผšdense pass-rate, outcome-only โ€”โ€” ๆฏไธช rollout ่ท‘ๅฎŒๅŽ็”ฑไปปๅŠก่‡ชๅธฆ็š„ run-tests.sh ๅœจ sandbox ้‡Œ่ท‘ pytest๏ผŒreward = passed / total_tests โˆˆ [0, 1]๏ผŒๅ†็บฟๆ€งๅ˜ๆขๅˆฐ score = 2ยทreward โˆ’ 1 โˆˆ [-1, +1] ๅ–‚็ป™ GRPO๏ผ›ๆฒกๆœ‰ PRM / process reward๏ผŒๆ•ดไธช episode ๅ…ฑ็”จไธ€ไธชๆ ‡้‡ใ€‚

max_iteration: 10๏ผš่ฎญ็ปƒๆ—ถ agent loop ไธŠ้™ 10 ่ฝฎใ€‚


่ฎญ็ปƒๆ›ฒ็บฟ

ๆฅ่‡ช wandb run b0il0mq4๏ผš

training curves

ๅ…ญไธชๅญๅ›พ่ฏดๆ˜Ž๏ผš

ๅญๅ›พ ่งฃ่ฏป
raw_reward rollout ้˜ถๆฎต reward ๅ‡ๅ€ผใ€‚-0.07 (rollout 0-49) โ†’ +0.21 (rollout 320-335) ๅ•่ฐƒไธŠๅ‡ใ€‚็ฉฟ่ถŠ 0 ๅ‡บ็Žฐๅœจ rollout 50 ๅทฆๅณ๏ผŒๅณๆจกๅž‹ไปŽ"่ฟ‡็š„ test < ไธ€ๅŠ"่ฝฌๅ‘"่ฟ‡็š„ test > ไธ€ๅŠ"ใ€‚iter_335 ่ฟ™ไธช ckpt ๅฏนๅบ”็š„่ฎญ็ปƒ็ช—ๅฃ raw_reward ๅ‡ๅ€ผ +0.21๏ผŒๆฏ” base ๆๅ‡ ~0.28ใ€‚
response_length ๆฏ่ฝฎ assistant ่พ“ๅ‡บ็š„ๅนณๅ‡ token ๆ•ฐใ€‚ไปŽ 217 ๆถจๅˆฐ 413๏ผŒๅ•่ฐƒไธŠๅ‡ใ€ๆฒกๆœ‰ plateauโ€”โ€”ๆ˜ฏ 30B ่ฟœๆœชๅˆฐ่พพๅฎน้‡ไธŠ้™็š„ๅ…ณ้”ฎไฟกๅท๏ผˆvs 8B run-3 ๅŽๆœŸๆจช็›˜ 300-400๏ผ‰ใ€‚
grad_norm ๆขฏๅบฆๅน…ๅบฆ๏ผˆlog ๅฐบๅบฆ๏ผ‰ใ€‚median 0.30-0.50 ๅฅๅบท๏ผŒๆœŸ้—ด 5 ๆฌกๅ•ๆญฅ spike๏ผˆๆœ€ๅคง step 38 grad=1.36e8 / kl=5.6e5๏ผ‰๏ผŒๅ…จ้ƒจ่ขซ megatron --clip-grad 1.0 ๅ…œๅบ•๏ผŒไธ‹ไธ€ๆญฅๅณๆขๅคใ€‚
kl_loss K3 KL estimatorใ€‚median 0.05-0.15 ๅฅๅบท๏ผŒ่ฟœไฝŽไบŽ 0.5 ้˜ˆๅ€ผใ€‚spike ไธŽ grad_norm ๅŒๆญฅๅ‡บ็Žฐ๏ผŒclip-grad ๅŒๆ ทๅธๆ”ถใ€‚
entropy_loss 0.13-0.17 ๆŒ็ปญ๏ผŒๆ—  collapseใ€‚
pg_clipfrac PPO clip ๆฏ”ไพ‹ ~0.6%๏ผˆๅˆ็†๏ผ‰ใ€‚

่ฏฆ็ป†็š„่ฎญ็ปƒๆ›ฒ็บฟใ€ๅผ‚ๅธธไบ‹ไปถๅˆ†ๆžใ€vs 8B run-3 ๅ ๅŠ ๅ›พ่ง HansBug/OpenClaw-RL issue #14ใ€‚


่ฏ„ๆต‹็ป“ๆžœ

ๅœจ terminal-bench v0.1.x๏ผˆ66-task harbor ๅญ้›†๏ผ‰ไธŠ็š„ pass@1 / pass@3

iter_335 ่ฟ™ไธช ckpt ๅœจ OOD eval๏ผˆagent harness ๅˆ‡ๅˆฐ harbor run --agent terminus-2๏ผŒไธŽ issue #8 8B run-3 ๅŒๅ่ฎฎ๏ผ‰ไธŠ็š„ๆˆ็ปฉ๏ผš

eval pass rate

Model pass@1 pass@3 unique solved (/66) solved trials (/198)
qwen3-30b-a3b-base (vanilla) 0.0606 0.1212 8 12
**qwen3-30b-a3b-OpenClaw-RL-iter335**๏ผˆๆœฌ ckpt๏ผ‰ 0.0808 โœจ 0.1515 โœจ 10 16
qwen3-30b-a3b-OpenClaw-RL-iter351 (later) 0.0556 โš  0.0758 โš  5 11
qwen3-30b-a3b-OpenClaw-RL-iter367 (final) 0.0657 0.1212 8 13

iter_335 ๆ˜ฏ่ฟ™ๆฌก fresh run ไธญๅ”ฏไธ€ pass@1 / pass@3 / unique_solved ไธ‰้กนๅ…จ้ƒจ่ถ…่ฟ‡ base ็š„ ckptใ€‚iter_351 ๅœจไธญ้—ดๅ‡บ็Žฐๆ˜Žๆ˜พๅ›ž่ฝ๏ผˆ็”š่‡ณ่ทŒ็ฉฟ base๏ผ‰๏ผŒiter_367 ้ƒจๅˆ†ๆขๅคไฝ†ไปๆœชๅ›žๅˆฐ iter_335 ๅณฐใ€‚่ฏฆ็ป†ๅˆ†ๆž่ง issue #14 eval commentใ€‚

vs 8B run-3๏ผˆissue #8 ๅŒ 66-task ๆ ‡ๅฐบ๏ผ‰

leaderboard

Model pass@1 pass@3 ไฝ“้‡ ๅค‡ๆณจ
Qwen3-30B-A3B-OpenClaw-RL-iter335๏ผˆๆœฌ ckpt๏ผ‰ 0.081 0.152 30B / 3B active MoE ๆœฌ ckpt
Qwen3-30B-A3B (vanilla base) 0.061 0.121 30B / 3B active ่ฎญ็ปƒ่ตท็‚น
Qwen3-8B-OpenClaw-RL-iter215 (issue #8) 0.056 0.091 8B dense 8B run-3 OOD ๅณฐ
Qwen3-8B (base) 0.020 0.030 8B dense 8B ่ตท็‚น
Qwen3-235B-A22B + Terminus 1 0.066 n/a 235B / 22B active TB ๅฎ˜ๆ–น 80-task
DeepSeek-R1 + Terminus 1 0.057 n/a 671B / 37B active TB ๅฎ˜ๆ–น 80-task
Qwen3-32B + TerminalAgent 0.155 n/a 32B dense TB ๅฎ˜ๆ–น 80-task
Claude 4.5 Sonnet 0.645 n/a ้—ญๆบ frontier
GPT-5 0.525 n/a ้—ญๆบ frontier

ๆณจ๏ผšๆœฌ ckpt ่ท‘็š„ๆ˜ฏ 66-task ๅญ้›†๏ผˆharbor migration ๅคฑ่ดฅ 20 task ๅŽๅ‰ฉไธ‹็š„ๅฏ่ท‘้ƒจๅˆ†๏ผ‰๏ผŒไธŽ leaderboard 80-task ๅ…จ้›†ไธๅฏ็›ดๆŽฅๆจชๆฏ”๏ผ›ไฝ†ๅ”ฏไธ€้ ่ฐฑ็š„ๅŒๆ ‡ๅฐบๅฏนๆฏ”ๆ˜ฏไธŽ issue #8 ๅŒๆ ท 66 ๅญ้›†็š„ Qwen3-8B ๆ•ฐๅญ—๏ผŒๆœฌ ckpt ็š„ pass@1 = 0.081 ๆฏ” Qwen3-8B-iter215 (0.056) ้ซ˜ **44%**ใ€‚

ไปปๅŠก็บงๅˆซ็š„ OOD ่งฃ้ข˜ๅˆ†ๅธƒ

per-task heatmap

14 ไธช task ๅœจๆ‰€ๆœ‰ 4 ไธช ckpt ร— 3 attempt ไธญ่‡ณๅฐ‘่ขซ่งฃๅ‡บ 1 ๆฌก๏ผŒๅ…ถไฝ™ 52 task ๅ…จ้ƒจ 0 solved๏ผˆไธŽ issue #8 60/66 ๅ…จ 0 ๅŒ pattern๏ผ‰ใ€‚iter_335 ็‹ฌๅ ่งฃๅ‡บ็š„ task๏ผšcsv-to-parquetใ€path-tracing-reverseใ€processing-pipeline 2xใ€‚


ไธบไป€ไนˆๆ˜ฏ iter_335 ่€Œไธๆ˜ฏๆœ€ๆ–ฐ ckpt

ๅฎŒๆ•ด 30B fresh run ่ท‘ๅˆฐ iter_367 ๅœ๏ผˆrollout 367 โ‰ˆ ่ฎญ็ปƒ 4.5 ๅคฉ๏ผ‰๏ผŒๆŒ‰ retention daemon ้…็ฝฎไป…ไฟ็•™ latest 3 ckpt๏ผšiter_335 / iter_351 / iter_367ใ€‚ๆ‰€ๆœ‰ 4 ไธชๅ€™้€‰๏ผˆๅซ base๏ผ‰้ƒฝๅœจ TB v0.1.x ่ท‘่ฟ‡ OOD eval๏ผŒๅพ—ๅˆฐ็š„่ฎญ็ปƒโ†’OOD ่ฝจ่ฟนๆ˜ฏ๏ผš

ckpt rollout in-domain raw_reward (่ฎญ็ปƒไพง) OOD pass@1 ่ฎญ็ปƒโ†’OOD ๆ˜ฏๅฆๅฏน้ฝ๏ผŸ
base โ€” โ€” 0.0606 โ€”
iter_335 335 +0.21 0.0808 โœจ โœ… ่ฎญ็ปƒ โ†‘ + OOD โ†‘
iter_351 351 +0.18๏ผˆๅซๅ…จๅฑ€ๅณฐ r346 +0.5651๏ผ‰ 0.0556 โŒ ่ฎญ็ปƒไฟๆŒ้ซ˜ไฝไฝ† OOD ่ทŒ็ฉฟ base
iter_367 367 +0.232๏ผˆๆœ€้ซ˜็ช—ๅฃๅ‡ๅ€ผ๏ผ‰ 0.0657 โŒ ่ฎญ็ปƒ โ†‘ ไฝ† OOD ๆฒก่ทŸไธŠ

iter_335 ๆ˜ฏ่ฟ™ๆฌก่ฎญ็ปƒๅ”ฏไธ€ๆ˜Ž็กฎ"่ฎญ็ปƒไพง โ†‘ + OOD โ†‘"็š„ ckptใ€‚่ฟ™ๆ˜ฏ issue #8 iter215๏ผˆ8B run-3 ไนŸๅœจไธญๆฎต ckpt ๆ‹ฟ OOD ๅณฐ๏ผŒๆœ€ๅŽๅ›ž่ฝ๏ผ‰ๅŒๆฌพ็Žฐ่ฑกใ€‚ๅฆ‚ๆžœไฝ ่ฆๆ‹ฟไธ€ไธชๆœ€ๆœ‰ๅฏ่ƒฝๅœจๆ–ฐ OOD task ไธŠ work ็š„ 30B fresh-run ckpt๏ผŒๅบ”่ฏฅ็”จ่ฟ™ไธช iter_335๏ผŒไธ่ฆ็”จๆœ€ๆ–ฐ็š„ iter_367ใ€‚


ๆŽจ็†ๆ—ถ็š„ on-the-wire ๅ่ฎฎ

่ฎญ็ปƒๆ—ถ่ฟ™ไธช ckpt ็œ‹ๅˆฐ็š„ๅ่ฎฎๆ˜ฏ camel-ai TerminalToolkit ็š„ 4 ๅทฅๅ…ท OpenAI function-calling๏ผˆไธŽ Qwen3-8B-OpenClaw-RL-iter215 ๅฎŒๅ…จ็›ธๅŒ๏ผ‰๏ผŒไธๆ˜ฏ terminal-bench ็š„ terminus-2 JSON ๅ่ฎฎใ€‚

ๆ–‡ไปถ ่ฏดๆ˜Ž
terminal-rl/agent/camel_agent.py rollout agent = camel.agents.ChatAgent ๅญ็ฑป
terminal-rl/remote/terminal_env.py env ๅœจ reset ๆ—ถๆŠŠ camel.toolkits.TerminalToolkit ็š„ 4 ไธชๅทฅๅ…ท๏ผˆshell_exec / shell_view / shell_write_to_process / shell_write_content_to_file๏ผ‰ๅฐ่ฃ…ๆˆ OpenAI tool schema ๅ–‚็ป™ rollout
terminal-rl/configs/rollout_qwen3.yaml tool_call_parser: qwen25 โ€” sglang ๆŠŠๆจกๅž‹ <tool_call>{...}</tool_call> markup ่ฝฌๅ›ž OpenAI tool_calls

System prompt ๆ˜ฏ terminal-rl/agent/camel_agent.py::get_developer_agent_prompt() ๅœจ system='Linux (in Docker)', machine='x86_64', non_think_mode=True ้…็ฝฎไธ‹ไบงๅ‡บ๏ผŒ็ป“ๅฐพๅŠ  /no_think ๅ…ณ้—ญ qwen3 ็š„ think traceใ€‚

ๅฆ‚ๆžœไฝ ๆƒณ 100% ๅคๅˆป่ฎญ็ปƒๅˆ†ๅธƒๅœจ inference ็”จ่ฟ™ไธช ckpt๏ผŒ็”จ HansBug/oc-repl ็š„้ป˜่ฎค --protocol camel-terminal-toolkitใ€‚


ๅทฒ็Ÿฅ้™ๅˆถ

  1. 30B ๅœจ OOD ไธŠ็š„ RL ่พน้™…ๆ”ถ็›Šๆฏ” 8B ๅฐใ€‚ๆœฌ ckpt vs 30B base๏ผšpass@1 +33%๏ผ›Qwen3-8B-iter215 vs Qwen3-8B base ๆ˜ฏ +180%ใ€‚ๅฆ‚ๆžœไฝ ็š„็›ฎๆ ‡ๆ˜ฏ frontier OOD ๆ€ง่ƒฝ๏ผŒ็บฏ RL ๅทฒ็ป saturating๏ผŒ้œ€่ฆๆข cold-start SFTใ€‚่ฟ™ไธŽ issue #11 ๅฎน้‡ๅ‡่ฏด ไธ€่‡ดใ€‚

  2. iter_351 / iter_367 ็š„ๅญ˜ๅœจ่ฏดๆ˜Ž RL ่ฎญ็ปƒๅŽๆœŸๆœ‰ OOD ๆผ‚็งป้ฃŽ้™ฉใ€‚iter_335 ๆ˜ฏ่ฟ™ๆฌก่ฎญ็ปƒๅ…จ 4 ckpt ไธญๅ”ฏไธ€ net-positive ็š„๏ผ›ๆ›ดๆ™š็š„ iter_351 ๅ่€Œ่ทŒ็ฉฟ baseใ€‚ๅฆ‚ๆžœไฝ ๆ‰“็ฎ—ๅค็Žฐ่ฟ™ไธช่ฎญ็ปƒ pipeline๏ผŒๅปบ่ฎฎๆŠŠ ckpt freeze ้ข‘็އๆ้ซ˜๏ผŒๆฏ 50-100 rollout ้ƒฝๅš OOD eval ็œ‹ trajectoryใ€‚

  3. ๆจกๅž‹ไธไผšไธปๅŠจๅœๆญข tool_callใ€‚่ฎญ็ปƒๆ—ถ agent loop ็”ฑ max_iteration: 10 ็กฌๆˆชๆ–ญ + outcome reward ๅ…œๅบ•๏ผŒinference ๆ—ถ่ฆ่‡ชๅทฑ่ฎพไธŠ้™๏ผˆoc-repl ้ป˜่ฎค 12 ่ฝฎ๏ผ‰ใ€‚

  4. ๅคๆ‚ๅคšๆญฅ task adherence ไธญ็ญ‰ใ€‚็ฎ€ๅ•ไปปๅŠก๏ผˆchmodใ€catใ€ls๏ผ‰adherence ๆปกๅˆ†๏ผ›ๅคšๆ–‡ไปถ Python ๆœๅŠกๅ™จใ€ๅคๆ‚ awk ่ฟ™็งๅถๅฐ”ไผš thinking ๅคชไน…ๆฒกไบงๅ‡บ tool_callใ€‚

  5. terminus-2 / terminus-XML ๅ่ฎฎๆ˜ฏ OODใ€‚ๆจกๅž‹ๆฒกๅœจ่ฟ™ไบ›ๅ่ฎฎไธŠ RL ่ฎญ็ปƒ่ฟ‡๏ผŒ่ƒฝไธ่ƒฝ่ท‘้€š้  qwen3 ๅบ•ๅบง็š„้€š็”จๆŒ‡ไปค่ทŸ้š่ƒฝๅŠ›ใ€‚่ฆๅคๅˆป่ฎญ็ปƒๅˆ†ๅธƒ่ฏท็”จ camel TerminalToolkit ๅ่ฎฎใ€‚

  6. ไธๆ˜ฏ frontier ๆฐดๅนณใ€‚pass@1 0.081 ่ทŸ Qwen3-235B ๅŒๆฐดไฝ๏ผˆ็”š่‡ณ็•ฅ้ซ˜๏ผ‰๏ผŒไฝ†่ทŸ Claude 4.5 / GPT-5 ่ฟ˜ๆœ‰ 6-8ร— ๅทฎ่ทใ€‚่ฟ™ไธช ckpt ้€‚ๅˆๅš RL ่ฎญ็ปƒๆก†ๆžถ็š„ baseline / case study / MoE base ไธŠ RL ็š„ๅฏนๆฏ”ๅŸบๅ‡†๏ผŒไธ้€‚ๅˆ็›ดๆŽฅๅฝ“ production agent ็”จใ€‚


ๅค็Žฐ / ๆŽจ็†ๅทฅๅ…ท

ไป“ๅบ“ / ๅทฅๅ…ท ็”จ้€”
HansBug/OpenClaw-RL ๅฎŒๆ•ด็š„่ฎญ็ปƒๆก†ๆžถ๏ผˆslime + Megatron + sglang๏ผ‰๏ผŒๅซ launch scriptใ€้…็ฝฎใ€agent code
HansBug/oc-repl ้’ˆๅฏน่ฟ™ไธช family ckpt ็š„ Codex ้ฃŽๆ ผ REPL๏ผŒๆ”ฏๆŒ 4 ็งๆŽจ็†ๅ่ฎฎ (camel-terminal-toolkit ้ป˜่ฎค = ่ฎญ็ปƒๅˆ†ๅธƒๅญ—่Š‚็บงๅคๅˆป)
HansBug/Qwen3-8B-OpenClaw-RL-iter215 ๅŒ family ็š„ 8B ckpt๏ผˆbase = Qwen3-8B๏ผ‰๏ผŒ็”จไบŽ same-protocol ๅŒๆ ‡ๅฐบๆจชๆฏ”
HansBug/Qwen3-8B-OpenClaw-RL-tboverfit-iter311 ๅŒ family ็š„ 8B eval-as-train ไธŠ็•Œ probe ckpt
HansBug/OpenClaw-RL issue #14 ๆœฌ ckpt ็š„ๅฎŒๆ•ด่ฎญ็ปƒ + eval ๆŠฅๅ‘Š๏ผˆ118h ่ฎญ็ปƒๆ›ฒ็บฟ + 4 ckpt OOD eval + vs 8B ๅฏนๆฏ”๏ผ‰
HansBug/OpenClaw-RL issue #4 8B run-3 ่ฎญ็ปƒๆŠฅๅ‘Š๏ผˆๅŒ็ฎ—ๆณ• / ๅŒ dataset / ๅŒ lr๏ผŒไป… base ๆจกๅž‹ไธๅŒ๏ผ‰
HansBug/OpenClaw-RL issue #8 8B run-3 ๅœจ TB v0.1.x 66-task ็š„ๅŒๆ ‡ๅฐบ OOD eval๏ผˆๆœฌ ckpt eval ๅฎŒๅ…จๅค็”จไบ†่ฏฅๅ่ฎฎ๏ผ‰

ๅผ•็”จ / ่‡ด่ฐข

License: Apache-2.0๏ผˆ็ปงๆ‰ฟ่‡ช Qwen3-30B-A3B๏ผ‰ใ€‚

ๅฆ‚ๆžœไฝ ็”จ่ฟ™ไธช ckpt ๅš paper / blog post๏ผŒๆฌข่ฟŽๅผ•็”จ HansBug/OpenClaw-RL ไป“ๅบ“ + ่ฟ™ไธช model cardใ€‚

Downloads last month
88
Safetensors
Model size
31B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for HansBug/Qwen3-30B-A3B-OpenClaw-RL-iter335

Finetuned
(91)
this model