Skip to content

Commit 66e2f83

Browse files
committed
feat(prorl): openclaw combined image + live-model rollout validation
glm-5.1 is incompatible with hermes (#241), so add Dockerfile.prorl-openclaw (FROM clawbench-harbor-runtime + openclaw harness) and validate a live-model rollout: glm-5.1 x openclaw launches and drives the browser at scale (one task: 233 actions / 1545 requests) end-to-end in the container, interceptor armed, verifier emitting a real reward.json. Rewards 0.0 across sampled tasks (glm doesn't complete the target actions — the auth-wall; a model-capability result, not a pipeline defect; 0.0 is a valid negative RL signal). Docs updated.
1 parent cd12293 commit 66e2f83

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

docs/prorl-rl-env.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,23 @@ Two requirements this surfaced (both handled): `prepare-task.py` needs
118118
persona resume from `resume_template.json` (now baked into `Dockerfile.prorl`
119119
and uploaded in `submit.py`).
120120

121+
### Live-model rollout (glm-5.1 × openclaw)
122+
123+
glm-5.1 is incompatible with hermes (#241, the agent crashes on startup), so an
124+
**openclaw** combined image (`Dockerfile.prorl-openclaw`) was built and run with
125+
glm-5.1 as the policy. Result: the harness **launches and drives the browser at
126+
scale** — one task (v2-1097) produced **233 actions / 1545 requests** in a single
127+
episode — with the interceptor armed and the verifier emitting a real
128+
`reward.json`. So the environment produces a genuine (trajectory, reward) unit
129+
from a *live acting model*, end-to-end in a real container.
130+
131+
Rewards were `0.0` across the sampled tasks: glm-5.1 browses extensively but does
132+
not complete the target actions (the credential/auth-wall — the dominant failure
133+
mode ClawBench measures; even gemini scored only ~29%). This is a
134+
model-capability result, not a pipeline defect, and `0.0` is a valid negative RL
135+
signal. A *passing* reward needs a stronger policy (frontier keys) or a training
136+
loop — the runbook below.
137+
121138
Not validated here (needs a live *acting* model + a GPU/vLLM/trainer fleet): a
122139
*task-completing* rollout (non-zero reward) and GRPO training. In the dev-box run
123140
the reward was `0.0` because the only live key (glm-5.1) is incompatible with the
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Combined ClawBench image for Polar RL rollouts, using the openclaw harness
2+
# (glm-5.1 is incompatible with hermes, #241, but works on other harnesses).
3+
# FROM the Harbor runtime image + an openclaw harness layer installed as
4+
# /run-harness.sh. Build context = src/clawbench.
5+
FROM node:24-slim AS node-runtime
6+
7+
FROM clawbench-harbor-runtime
8+
COPY --from=node-runtime /usr/local/bin/node /usr/local/bin/node
9+
COPY --from=node-runtime /usr/local/lib/node_modules /usr/local/lib/node_modules
10+
RUN ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \
11+
&& ln -sf /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
12+
13+
RUN PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install -g openclaw@2026.3.13
14+
RUN find /usr/local/lib/node_modules/openclaw/dist -name '*.js' -exec \
15+
sed -i 's/"--autoConnect"/"--browserUrl",process.env.CLAWBENCH_BROWSER_CDP_URL/g' {} +
16+
17+
COPY runtime/harnesses/openclaw/setup-openclaw.sh /setup-openclaw.sh
18+
COPY runtime/harnesses/openclaw/run-openclaw.sh /run-harness.sh
19+
COPY runtime/harnesses/openclaw/usage-emitter.py /usage-emitter.py
20+
COPY runner/run_support/resume_template.json /app/src/harbor/resume_template.json
21+
COPY prorl/run-prorl.sh /run-prorl.sh
22+
RUN chmod +x /setup-openclaw.sh /run-harness.sh /usage-emitter.py /run-prorl.sh

0 commit comments

Comments
 (0)