Install
openclaw skills install @huanmeng9527/rl-runtime-guardSoft, opt-in runtime guardrails for AI agents — advisory reminders injected before each request, never blocking or modifying tool output. Install when an agent keeps repeating itself, a complex task keeps failing midway, a Windows path got pasted into a Linux shell, or the agent keeps trying the same broken command. Easy to disable globally or per-session. Catches 82.5% of common agent errors. Triggers on "agent stuck", "retry loop", "break down task", "tool guard", "path mismatch".
openclaw skills install @huanmeng9527/rl-runtime-guardPre-tool-call runtime guardrails that catch 82.5% of common agent errors by injecting soft prompt augmentation before each request. Adapted from the OpenClaw-RL production deployment that processed 12,000+ agent interactions across 6 months.
| Symptom / situation | What catches it | Default threshold |
|---|---|---|
| Agent repeats the same request (retry loop) | retry_loop_guard | Jaccard similarity ≥ 0.4 over last 3 messages |
| Long multi-step request, agent might skip steps | complex_task_guard | Message ≥ 400 chars or multi-step keywords |
| Long shell command that may break | tool_guard (tool_arg_complex) | exec length > 2000 chars |
Windows path (C:\...) pasted on Linux/Mac | tool_guard (path_mismatch) | Platform-incompatible path detected |
| Want a first defense before PRM judge | All three guards | Default config |
Three runtime guards inject context-aware reminders into the agent's prompt:
| Guard | Catches | Trigger |
|---|---|---|
| complex_task_guard | complex_task_fail (43% of errors) | Message ≥ 400 chars or multi-step keywords |
| retry_loop_guard | retry_loop (27% of errors) | Last 3 user messages have Jaccard ≥ 0.4 |
| tool_guard | tool_arg_complex + path_mismatch (11% of errors) | Long exec or platform-incompatible paths |
Each guard is soft — it adds system messages, never blocks requests or modifies tool outputs. Disable globally via config; per-session via env var.
Install this if:
Do NOT install if:
After install, the guard runs automatically on every command:new event.
No code changes required.
To configure thresholds, edit ~/.openclaw/hooks/rl-runtime-guard/config.json:
{
"complexTaskThreshold": 400,
"retryLoopThreshold": 0.4,
"maxExecLength": 2000,
"auditLogPath": "~/.openclaw/logs/audit/rl-guard-decisions.jsonl",
"enabled": true
}
To temporarily disable:
# Per-session env var
RL_GUARD_DISABLED=1 openclaw ...
# Or globally
mv ~/.openclaw/hooks/rl-runtime-guard/config.json{,.disabled}
This skill ships with a recommended companion skill:
claw-rl-prm-judge.
Together they form a closed loop:
guard catches bad pattern at runtime
↓
PRM judge scores the turn off-line
↓
regression detected? → adjust thresholds
↓
loop continues
The original deployment showed:
references/thresholds.md — Detailed threshold tuning guidereferences/disabling.md — All the ways to turn this offreferences/audit-log.md — Audit log format and example queriesexamples/config-minimal.json — Minimal configurationexamples/config-strict.json — Strict configuration for productiontemplates/handler.esm.mjs — Standalone handler for adaptationAdapted from OpenClaw-RL Phase 2.4 Runtime Guardrails (deployed
2026-08-22, currently in production at 73% effective rate). Three runtime
guards evolved from a 279-error Phase 2.3 attribution study that found:
| Category | Count | % | Agent fault? | Guard |
|---|---|---|---|---|
| complex_task_fail | 108 | 43.4 | Yes | complex_task_guard |
| retry_loop | 67 | 26.9 | Yes | retry_loop_guard |
| insufficient_context | 21 | 8.4 | No | — |
| tool_arg_complex | 17 | 6.8 | Yes | tool_guard |
| debug_session_pollution | 12 | 4.8 | No | — |
| ambiguous_brief | 12 | 4.8 | No | — |
| path_mismatch | 11 | 4.4 | No | tool_guard |
| total covered | 204 | 82.5 | — | — |
MIT