← 返回列表

每次对话都是一堂课,只是你把作业扔了

OpenClaw-RL: Train Any Agent Simply by Talking
Yinjie Wang, Xuyang Chen, Xiaolong Jin, Mengdi Wang, Ling Yang
北京大学 / 普林斯顿
2026-03-10
#paper #xray #reinforcement-learning #agent #personalization #online-learning

挠痒

AI agent 每天跟用户对话成千上万次,每次用户的反应——满意、追问、纠正、放弃——都在告诉 agent 它做得好不好。但这些信号全被扔掉了。能不能让 agent 从日常对话中自动学习,不需要人工标注、不需要离线训练?

现状: agent部署后冻结, 用户反馈 = 废气
  |
  v
发现: 每次交互的"下一步状态"包含两类信号
  |
  +---> 评价信号: 用户重新提问 = 不满意 (好/坏)
  +---> 指导信号: "你应该先检查文件" (怎么改)
  |
  v
方法: 评价信号 --> Binary RL (PPO)
      指导信号 --> 提示增强蒸馏 (OPD)
  |
  v
结果: 24-36轮对话后个人agent显著提升
      同一框架跨终端/GUI/代码/工具/对话五种环境

RLHF 需要人工标注偏好,DPO 需要离线数据对,GRPO 需要可验证的奖励函数。这些方法都假设"训练"和"部署"是两个阶段。但真实世界的 agent 每时每刻都在产生学习信号——用户的下一句话就是最天然的反馈。之前的工作要么只处理评价信号(好/坏),要么只处理指导信号(怎么改),没人把两者统一起来做在线学习。这篇论文说:把用户交互的"下一步状态"当作免费教材,agent 就能边用边学。

翻译

一句话

把用户交互后的每一个"下一步状态"(回复、报错、界面变化)拆成"好不好"和"怎么改"两路信号,合并训练,让 agent 从日常使用中持续进化。

核心机制

想象一个实习厨师在餐厅里学艺。每上一道菜,他能从两个渠道学习:

客人的表情(评价信号):吃了一口放下筷子 = 差评,吃完盘子光了 = 好评。厨师不知道哪里出了问题,但知道方向对不对。这就是 Binary RL——给每次行动打分(+1/-1),用 PPO 调整策略。

主厨的点评(指导信号):主厨走过来说"盐放早了,应该出锅前再调味"。这不只是好坏,而是具体的纠正方向。这就是 OPD(On-Policy Distillation)——从"下一步状态"里提取文字提示,拼回原始 prompt 生成一个"开了挂的版本",然后让原始模型向这个增强版本学习。

关键:两种信号互补。客人表情覆盖面广(每道菜都有),主厨点评信息量大(但不是每次都有)。合并起来比单独用任何一种都强。

用户发消息 --> Agent 生成回复 --> 环境返回"下一步状态"
                                        |
                    +-------------------+-------------------+
                    |                                       |
             评价信号 (好/坏)                         指导信号 (怎么改)
                    |                                       |
                    v                                       v
            PRM多数投票                               提取文字提示
            打分: +1 / -1 / 0                        (1-3句纠正方向)
                    |                                       |
                    v                                       v
            Binary RL (PPO)                     拼入prompt生成增强版本
            标量奖励梯度                          token级对数概率差 = 优势
                    |                                       |
                    +-------------------+-------------------+
                                        |
                                        v
                              加权合并损失函数
                              A = w1*r + w2*(log pi_teacher - log pi_theta)
                                        |
                                        v
                              策略更新 (异步, 不阻塞服务)

关键概念

下一步状态信号(Next-State Signal):agent 做完一个动作后,世界给出的反应。在对话场景里是用户的下一句话,在终端里是命令输出,在 GUI 里是界面变化。传统做法把这些反应当作"输入"处理完就扔掉。OpenClaw-RL 说这些反应本身就是学习信号——用户追问意味着上一轮没答好,测试通过意味着代码写对了,界面报错意味着操作失败。不需要额外标注,信号就在交互流里。

评价 vs 指导信号的分离:同一个"下一步状态"可能同时包含两种信息。比如用户说"不对,你应该先查数据库再回答"——这句话既是评价(不对 = 差评),也是指导(先查数据库 = 具体方向)。论文用 PRM(过程奖励模型)做投票提取评价分数,用 judge 模型提取文字提示。两条管线独立运行,最后在损失函数里加权合并。

异步四模块解耦:策略服务(SGLang)、环境交互(HTTP)、奖励评估(PRM)、策略训练(Megatron)四个模块完全异步。Agent 不需要停下来等训练完成——边服务边学习,用户无感知。这解决了在线学习的工程瓶颈:传统做法要么停服训练,要么维护两套模型做 A/B 切换。

Napkin Sketch

  传统 Agent 训练                       OpenClaw-RL
  ==========================           ==========================

  阶段1: 离线收集偏好数据               在线: 每轮交互即训练数据
  阶段2: 标注/排序                     自动: 下一步状态 = 免费标注
  阶段3: 训练 (RLHF/DPO)              实时: 异步训练不停服
  阶段4: 部署 (冻结)                   持续: 边用边学

  信号类型: 只有评价                    信号类型: 评价 + 指导
  训练数据: 人工标注                    训练数据: 用户交互副产品
  适用范围: 单一环境                    适用范围: 对话/终端/GUI/代码/工具

从"先学后用"到"边用边学"——agent 不再有毕业典礼。

洞见

哦,原来用户每一次追问、纠正、沉默,都是一条免费的训练数据——我们一直在往下水道里倒黄金。

这不显然,因为 RLHF 范式把"训练数据"定义为"人工标注的偏好对",暗示学习信号需要刻意制造。整个行业花了大量资源建标注团队、设计标注流程、清洗标注数据。但这篇论文指出:最高质量的学习信号一直就在交互流里,只是没有人把"用户的下一句话"当作训练信号来处理。

它改变的认知:agent 的进化不应该是离散的版本迭代(v1→v2→v3),而应该是连续的、与使用同步的梯度流。部署不是学习的终点,是学习的起点。

博导审稿

选题眼光非常好。"从交互中学习"这个方向说了好多年,但真正做出统一框架、跨五种环境验证的工作很少。把评价信号和指导信号分开处理再合并,这个设计有品味——既不丢信息,又不混淆梯度方向。

方法上,Binary RL 部分是标准 PPO,不算新,但 OPD 管线有巧劲:用指导信号增强 prompt 生成"开挂版本",再用 token 级对数概率差做优势函数。这比直接拿指导文本做 SFT 更精细——保留了"哪些 token 需要改"的信息,不是全量覆盖。

实验的覆盖面让人信服:个人 agent(作业助手/批改)、终端、GUI、SWE、工具调用,五种环境用同一套管线。个人 agent 24-36 轮交互就能看到显著提升,这个数字对实用性很重要。但有两点没说透:一是 PRM 评估器本身的准确率是多少——如果评估器打分不准,Binary RL 就在学噪声;二是 OPD 的提示提取质量如何保证——论文用了 10 字符最短长度过滤,但低质量提示可能导致"开挂版本"反而更差。

异步架构的工程设计扎实,但论文没给延迟数据——从产生信号到策略更新需要多少轮?如果延迟太大,"边用边学"的叙事就打折扣。

判决:weak accept。 方向重要,框架统一,实验跨度大。但核心组件(PRM 准确率、OPD 提示质量)的鲁棒性验证不够,且缺少与 DPO/GRPO 在同一任务上的直接对比。

接线

迁移:PAI 的 hook 系统已经在捕获交互信号——SessionStart/Stop、PreToolUse/PostToolUse、rating signals(1774 条)。但这些信号目前只用于记忆和观测,没有反馈到模型行为。OpenClaw-RL 的框架可以直接移植:把 PAI 的 rating signals 当评价信号(1-10 分已有),把用户纠正("不是这样""重新来")当指导信号,喂给 context-inject 或 Nowledge Mem 做在线适配。不需要真的做 RL——哪怕只是用指导信号增强 system prompt,也比现在"收集不用"强。

混搭:上一篇 ParamMem 说"把反思模式炼进参数",这篇说"从交互中提取学习信号"。混在一起:用 OpenClaw-RL 的管线从 PAI 日常交互中持续提取评价+指导信号,用 ParamMem 的 LoRA 方法把这些信号编码进参数式记忆模块。结果是一个"越用越懂你"的 agent,记忆不靠检索而靠参数演化。Nowledge Mem 的 Qwen3-4B 蒸馏管线是现成的 LoRA 基础设施。

反转:PAI 当前的学习循环是手动的——session digest → 人工整理 → memory.md → 下次加载。这篇论文说学习应该是异步、在线、用户无感知的。PAI 的记忆系统是"日记本"(每天写、每周整理),OpenClaw-RL 的记忆是"肌肉"(每次动作都在调参数)。日记本模式的瓶颈是 Fish 的整理带宽——如果他不触发"整理记忆",洞察就堆在 daily 里发霉。自动化的在线学习循环才是真正的"珊瑚程序"——不需要他调参,系统自己生长。

💬 评论