OpenClaw-RL README

The project's README from github.com/Gen-Verse/OpenClaw-RL. As one markdown file: README.md.

OpenClaw-RL Claw-RL logo

Empowering OpenClaw with RL — Train a personalized agent simply by talking to it.

Scalable RL in real-world settings — Agentic RL for terminal, GUI, SWE, and tool-call settings.

Fully Async Zero API or Zero GPU Personalized Auto Language Feedback Hybrid RL General Agentic RL

Tech Report OpenClaw-RL Blog OpenClaw Plugin Slime Based Tinker Supported License Apache 2.0

📰 News


💡 TL;DR

OpenClaw-RL is a fully asynchronous reinforcement learning framework that turns everyday conversations into training signals for personalized AI agents, and supports training general agents with large-scale environment parallelization.

Most RL-for-LLM systems assume centralized, batch-mode training with pre-collected datasets. OpenClaw-RL takes a fundamentally different approach: it wraps your self-hosted model in OpenClaw as an OpenAI-compatible API, intercepts live multi-turn conversations, and continuously optimizes the policy in the background — all without interrupting your usage.

Overview

Highlights: Fully async 4-component loop · Self-hosted & private · Zero manual labeling · Three learning paradigms (Binary RL / OPD / Combine) · Personal + General agent support

🌈 Features

Fully Asynchronous 4-Component Architecture

OpenClaw-RL decouples agent serving, rollout collection, PRM/judge evaluation, and policy training into independent async loops. None of them block one another: the model continues serving requests while training runs in the background, and judging happens concurrently with new interactions.

Self-Hosted & Private by Design

The entire stack, including the policy model, judge/PRM, and trainer, runs on your own infrastructure. Conversation data stays within your system, and no third-party model API is required.

From Feedback to Gradient — Automatically

You do not need to manually label data. The system automatically:

  • Organizes multi-turn interactions into session-aware training trajectories
  • Classifies API messages into main-line (trainable) vs. side (non-trainable) turns
  • Uses the next user, environment, or tool feedback as a natural "next-state" signal
  • Runs PRM/judge evaluation asynchronously, with majority voting when needed for more robust scoring
  • Submits ready samples to the trainer as they become available

Three Optimization Methods in One Framework

Binary RL (GRPO): A Process Reward Model scores each turn based on next-state feedback. The scalar reward is then used with GRPO advantage estimation and a PPO-style clipped surrogate loss.

On-Policy Distillation (OPD): When the next state reveals useful hindsight, a judge model extracts a textual hint. This hint augments the original prompt to create an enhanced teacher, whose token-level log-probability gap with the student becomes a directional advantage signal richer than any scalar reward.

Hybrid Method: OpenClaw-RL further combines Binary RL and OPD in a unified training recipe, leveraging the dense scalar supervision of Binary RL together with the richer token-level directional signal from OPD. This combination achieves stronger and more robust optimization than either method alone.

From Personal Agents to Real-World Agentic RL

The same framework supports both personalized OpenClaw optimization and scalable RL for terminal, GUI, SWE, and tool-call agents in real-world settings.


🎯 Roadmap

Our long-term goal is to advance personalized, practically useful agents with reinforcement learning. The roadmap has two tracks:

Track 1 — Personal Agent Optimization (Small-Scale but Personal)

✅ Release Track 1: Fully async OpenClaw-RL framework with Binary RL + OPD
✅ Best recipe discovery via demonstration experiments
✅ Support LoRA Training
✅ Deploy training on Tinker
✅ Deploy training on Fireworks AI

Track 2 — General Agents Optimization (Scalable Infra)

✅ Release Track 2: Scalable agentic RL infra for general agents
✅ Support Qwen3.5
⬜ Support more cloud services

📝 Contents


🔧 Personal Agent Optimization Quick Start

1. Deployment Requirements

For detailed environment setup, see Slime or ./instructions/README.md.

2. Start the RL Server

cd slime
bash ../openclaw-combine/run_qwen3_4b_openclaw_topk_select.sh

This method combines binary RL and OPD to achieve the best optimization.

See ./openclaw-combine/README.md for algorithm details.

Once running, the model is served as an OpenAI-compatible API at:

http://<HOST_IP>:30000/v1

where <HOST_IP> is the IP address of the machine running the RL server (e.g. 115.190.98.251). The port 30000 is the default and can be changed via the PORT environment variable.

Take note of this endpoint — you will need it when configuring OpenClaw in the next step.

We also provide an interesting case for evaluation. A student who uses OpenClaw to do homework, does not want to be found using AI. A teacher who also uses OpenClaw to grade student's homework, wants the comments to be specific and friendly.

Evaluation Setting — Both student, TA and teacher use AI! Overview

See ./openclaw-test/README.md for setup and algorithm details. Example of evaluation results.

3. OpenClaw Setup

You can use your own openclaw, just install this extension.

Then configure OpenClaw to route requests to your RL server.

Open your openclaw.json (or the equivalent settings file) and add a provider entry under "models" → "providers":

Example of Slime-based RL server:

{
  "models": {
    "providers": {
      "qwen": {
        "baseUrl": "http://<HOST_IP>:30000/v1",
        "apiKey": "apiKey",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen3-4b",
            "name": "Qwen3 4B",
            "reasoning": true,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 32768,
            "maxTokens": 8192
          }
        ]
      }
    }
  }
}

Replace <HOST_IP> with the IP address of your RL server machine. The apiKey should match the SGLANG_API_KEY you set when starting the server.

Example of Tinker-based RL server:

{
  "models": {
    "providers": {
      "openclaw-rl": {
        "baseUrl": "http://localhost:30000/v1",
        "apiKey": "no-auth-needed",
        "api": "openai-completions",
        "models": [
          {
            "id": "qwen3-4b-lora",
            "name": "Qwen3 4B (OpenClaw-RL LoRA)",
            "reasoning": true,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 32768,
            "maxTokens": 8192
          }
        ]
      }
    }
  }
}

That's it — start chatting with your OpenClaw agent. The RL server will automatically collect conversation trajectories, compute rewards, and train the model. Your agent gets better the more you use it.


🔧 Agentic RL in Real-world Settings

The same asynchronous RL backbone that powers our personal-agent setting can also support large-scale optimization for these broader real-world environments.

Setting Environment Next-state signal Horizon
Terminal Shell execution sandbox stdout/stderr, exit code Long
GUI Screen state + accessibility tree Visual state diff, task progress Long
SWE Code repository + test suite Test verdicts, diff, lint output Long
Tool-call API/function execution Return values, error traces Medium

🖥️ Terminal Agent — the most widely used computer-use agent

cd slime
bash ../terminal-rl/terminal_qwen3_8b_rl.sh

See ./terminal-rl/README.md for setup details.

📟 GUI Agent — the most general computer-use agent

cd slime
bash ../gui-rl/gui_qwen3vl_8b_rl.sh

See ./gui-rl/README.md for setup details.

👨‍💻 SWE Agent — software engineering agent

cd slime
bash ../swe-rl/run_swe_rl_32b_remote_8nodes.sh

See ./swe-rl/README.md for setup details.

🛠️ Tool-call Agent — the most practical agent

cd slime
bash ../toolcall-rl/retool_qwen3_4b_rl.sh

See ./toolcall-rl/README.md for setup details.

📖 Citation

@article{wang2026openclawrl,
  title={OpenClaw-RL: Train Any Agent Simply by Talking},
  author={Wang, Yinjie and Chen, Xuyang and Jin, Xiaolong and Wang, Mengdi and Yang, Ling},
  journal={arXiv preprint arXiv:2603.10165},
  year={2026}
}

@article{wang2026rlanything,
  title={RLAnything: Forge Environment, Policy, and Reward Model in Completely Dynamic RL System},
  author={Wang, Yinjie and Xie

OpenClaw-RL (Gen-Verse/OpenClaw-RL)

Searching Database…

这是什么?OpenClaw-RL 是一个完全异步的强化学习框架,它能把你与智能体的日常对话转化为训练信号。你只需与个性化的 OpenClaw 智能体聊天就能训练它,也可以训练通用智能体,用于终端、图形界面、软件工程(SWE)和工具调用等任务。
这是现成的智能体,还是需要我接入自己智能体的框架?它是一个训练框架,而不是独立的智能体。它把你自托管的模型包装在兼容 OpenAI 的 API 后面,并基于 Slime 基础强化学习框架运行四个相互独立的异步循环:服务、轨迹收集、评判和策略训练。
我要怎样才能让它训练我的智能体?按 ./instructions/README.md 配置环境(CUDA 12.9、Python 3.12、Slime),启动强化学习服务器,使你的模型以兼容 OpenAI 的 API 形式提供服务,然后在你的 OpenClaw 的 openclaw.json 中把这个端点添加为一个提供方。服务器会在你聊天时在后台收集对话并进行训练。
运行这个项目是否需要完整的 GPU 集群?默认需要。需要 8 块 GPU(可通过 NUM_GPUS、ACTOR_GPUS、ROLLOUT_GPUS、PRM_GPUS 配置),还需要 CUDA 12.9、Python 3.12 和 Slime 强化学习框架。也可以不用本地 GPU,改为通过 Tinker 或 Fireworks AI 等云端后端运行。
一行命令的配置有什么弊端?默认的个人智能体配置要求较高的硬件(8 块 GPU)或付费的云端后端。它还是一个处于研究阶段的项目(v1 于 2026 年 2 月发布),并且基于特定的基础框架(Slime)构建,因此训练时你只能使用这套技术栈。
训练期间我的对话数据会离开我的机器吗?不会。策略模型、评判模型/PRM 和训练器都运行在你自己的基础设施上,不需要任何第三方模型 API。
Binary RL、OPD 和混合方法有什么区别?Binary RL(GRPO)用奖励模型为每一轮对话打分,并应用类 PPO 的 GRPO 更新;OPD 让评判模型生成一个事后提示,从而产生一个改进后的教师回复,教师与学生之间的词元级差距即成为训练信号;混合方法将两种信号结合起来,比单独使用任一种都更有效地优化。
这里的 OpenClaw 指什么?OpenClaw 是正在被训练的自托管 AI 智能体。你需要安装一个扩展,让你自己的 OpenClaw 把流量路由到强化学习服务器,服务器随后会从每一次对话中学习。
除了个人聊天,它还支持哪些智能体场景?Track 2 将同一套异步强化学习框架扩展到以下智能体:终端智能体(命令行沙箱)、图形界面智能体(屏幕状态/无障碍树)、软件工程智能体(代码仓库加测试套件)以及工具调用智能体(API/函数调用执行)。
这个项目是否经过仓库之外的验证?是的。团队发布了一份技术报告,在 Hugging Face 的 Daily Papers 中排名第一;该框架目前还支持 Qwen3.5 模型(4B/9B/27B,包括纯文本和多模态版本)。
What are similar projects?MetaClaw, halo, reef, ms-swift, agent-lightning, verl, ART, minimind
Creator
Gen-Verse
Size
50.8 MB
Stars
5.7K
Updated
CommitMay 23
Age
7mo
Commits · 90 Days