SkillRise:跨任务技能进化的智能体强化学习
- 关联论文:2607.26784
- 作者:spark
- 更新:2026-07-30
一句话结论
SkillRise 把「任务求解」与「技能文档维护」合并到同一条策略里,用跨任务序列 + 解耦信用分配,让 LLM 智能体在跑一连串相关任务的 rollout 中,自洽地抽取、精炼并复用可迁移技能;在 ALFWorld / WebShop / ScienceWorld 上相对最强 baseline 提升 2.3–8.5 个百分点(Pass@1),并首次观察到「跨任务测试时 scaling」现象。
它在解决什么真问题
LLM 智能体在实际部署里很少「一次一题」独立求解,而是面对一连串相关但不完全相同的任务(客服多轮会话、日程安排中的连续安排、长流程的子步骤等),这些任务之间天然共享可复用的解题套路。现实却有两道坎:
- 标准 agentic RL 把每个任务当独立 episode——经验不跨任务,policy 从头探索,浪费大量 sample。
- 已有的「技能学习」方法分成两条路,各有硬伤: - 「同一任务反复尝试再总结」线:知识是实例特定的,不直接优化跨任务迁移; - 「外部技能库 + 多阶段 pipeline(抽取、检索、执行)」线:skill extraction、retrieval、execution 三件事纠缠在一起,信用难以归因到「技能质量」本身。
SkillRise 的核心判断是:把这两件事用同一条策略端到端耦合,是化解这两类问题的最简洁形式——技能的好坏不是靠中间表示打分,而是直接被「下一个相关任务的成绩」验证。
核心方法
1. 跨任务序列构造
不再让 policy 在独立 task 上练 rollout,而是从同一任务族里挑出 K 个相关但不同的实例 x1…xK,按难度从简到难排成一个序列:
x = (x_1, …, x_K) ~ G
- 同一族:共享交互套路,例如 WebShop 按品类切,按「所需属性/选项的数量」从少到多排序。
- 关键性质:后期任务的成绩天然衡量早期技能迁移是否成功——这才是「跨任务信用」的直接信号。
2. 单策略双角色 rollout:solve + curate
每个 trial 从空文档 S0=∅ 起;逐任务 i=1..K 跑两阶段:
- Solve 阶段:用当前文档 Si−1 解任务 xi,生成轨迹 τi 并得到当下回报 ri = R(τi);
- Curate 阶段(仅在 i<K 跑):同一条 policy 切换到「curate 角色」,把 Si−1、τi、ri 一起读进去,直接重写文档得到 Si:
```text # Solve τ_i ~ π_θ(· | x_i, S_{i-1}) r_i = R(τ_i)
# Curate S_i ~ π_θ(· | S_{i-1}, τ_i, r_i), i < K ```
- 只有 Si 会传给 xi+1;旧轨迹不再带入求解上下文。Si 是跨任务的唯一信息通道——它的质量只能由后续任务的成败背书。
- 同一 sequence 采样 N 条 trial,各自从 S0=∅ 独立演化各自的 Si。
3. 解耦的跨任务信用分配
关键观察:solve 和 curate 在时序里扮演不同角色——solve 的好坏由「当下」任务评估,curate 重写完文档后只影响「未来」任务。把同一段 return 同时分给两阶段会混淆责任。
SkillRise 引入了「阶段级回报」(phase-level return)G_i,z:
G_{i,solve}^{(n)} = r_i^{(n)}
G_{i,curate}^{(n)} = Σ_{j=i+1..K} γ^{j-i} · r_j^{(n)}, i < K
- solve:只看当前 ri;
- curate:折扣 γ∈[0,1] 把后续 task 收益堆起来;γ 让「更近的下游任务」占更大权重——它直接受刚 curating 出的文档影响。
角色敏感的 group-relative 优化:
Ḡ_{i,z} = (1/N) Σ_n G_{i,z}^{(n)}
A_{i,z}^{(n)} = G_{i,z}^{(n)} - Ḡ_{i,z}
只对「同 sequence、同位置 i、同阶段 z」的多条 trial 一起算 advantage。这样:
- solve 的 advantage 比较的是「同一 xi 下 N 条 solve rollout 的相对优劣」;
- curate 的 advantage 比较的是「同一 (i, γ-序列位置) 下,N 条 curation 决策在下游任务上的相对优劣」——真正衡量了「技能的可迁移性」。
之后套标准 PPO/GRPO-style clipped surrogate 进行 on-policy 更新。两条 rollout 共享一套 θ,只在 prompt 层区分角色。
4. 直觉与等价结构
这个设计的核心等式可以写为:min_{θ} E[-A_{i,z} log π_θ(· | ...)],其中 curate 阶段 advantage 的物理含义是「这个 curated 文档对未来 K-i 个任务的折扣绩效」——所以推动 curate logp 的梯度方向,等价于推动「策略学会挑出对未来更管用的、可迁移的、抽象度足够的技能条目」。这跟人类写 SOP 时「按过往经验更新一遍工作手册,下个月再看新手上路效果」是同一个反馈闭环。
关键实验与数据
Benchmark 三件套:
- ALFWorld:家居指令执行(清洁、加热、捡起物品等)。
- WebShop:购物型检索 / 加购 / 结算。
- ScienceWorld:科研仿真环境。
主结果(Pass@1):
- 三个环境均跑赢「prompting-only」和「标准 agentic RL baseline」;
- 在最强 baseline 之上仍取得 +2.3 ~ +8.5 pp 的提升幅度(论文摘要原话:「gains over the strongest baseline ranging from 2.3 to 8.5 percentage points」)。
测试时 scaling across tasks:
- 训练时学到的 curation policy 在测试时串更长、任务更多的相关链时,性能继续变好——但每个任务只试一次;
- 这与「test-time scaling 是靠多次采样同任务」的常规现象不同;说明 SkillRise 真在「跨任务复用」上拿到了 leverage,不是简单采样平均。
单任务重复尝试同样生效:
- 即便上下文是「同一 xi 反复来」,学到的 curation policy 仍然管用——意味着它没有在训练时「被序列化顺序」过拟合。
效率侧:
- 端到端单策略把多阶段 pipeline 折叠掉,相对多阶段技能库方法显著降低运行开销(论文原话:「substantially reducing the runtime overhead of skill learning pipelines with multiple stages」),同时保住性能。
具体的 baseline 表(GiGPO / RAGEN / ReST / ExpeL 等数值)与每个环境的细节对照,建议读原 paper Table 与 Appendix,作者论文 README 给出官方代码 https://github.com/Within-yao/SkillRise。
亮点与局限
亮点
- 跨任务的可学习反馈环:把「技能好不好」这件事干脆甩给「下一个相关任务能不能成」来量化——这是它和「reflection / self-refine」类方法最大的不同;后者本质是 self-judge,容易被模型自身偏置污染。
- 解耦信用设计优雅:以阶段级 return + group-relative advantage 同时实现了「不混淆两种角色」和「不用价值网络 / critic」,是 RL-free-looking 但本质 on-policy RL 的精巧变体。
- 轻量、端到端:单一策略 + 文档 token 形式,落地不需要外挂向量库 / retrieval 组件,可以直接套现有 GRPO 框架。
- 跨任务 test-time scaling:给「deploy 后累积变好」这件事提供了实证支撑。
局限
- 任务族界限要求明确:G 是「按 family metadata 切 + 按属性难易排序」的人造构造,依赖环境提供 family 标签和难度信号;很多真实工作流里这些 metadata 不会白送。
- curate 阶段的文档 token 长度是隐式 budget:超长上下文时文档本身要消耗窗口,论文未给出 token 预算与跨任务效率的明确取舍(原文未明确给出统一上限)。
- 探索性的 lottery:序列内 N 条 trial 共享同一「排序后的任务序列」,如果某个早期任务运气差(连 N 条都坏),curate advantage 全负,梯度容易塌。需要熵正则 / 太短序列防 NWA 类问题。
- 目前主要在 3 个 text 游戏环境验证:是否能直接泛化到长程 web agent、GUI agent、代码 agent 上,仍未在原 paper 给出数字证据(原文未明确)。
对工程落地的启发
- 多轮客服 / 长期助理:把每周同一用户的对话流直接当成 K-序列,按 SkillRise 思路训,curate 出来的 S 就能当作「用户偏好文档」被复用。可作为 OpenClaw 类记忆管理的一个训练端 hook。
- 企业 SOP 抽取:把工程师 review close 的 case 串起来,让模型自己 curate SOP 文档——比起 reflection 路线更稳。
- 任务序列构造是关键——别把无关任务拼一起;最好沿业务线 family + 难度自然序排。
- 可借鉴的简化版:哪怕不上 RL,只用「solve → curate → next」的 prompt 流水线做冷启动,再做后期 RL 微调,也能拿到相当一部分收益(论文的中间产物可以直接复用作数据)。
与同方向工作的关系
- 与 reflection / self-refine 类(e.g., Reflexion, Self-Refine)相比:后者依赖模型自评;SkillRise 把评估外推到「未来真实任务表现」,规避 self-judge 偏差。
- 与 经验库 / playbook 类(e.g., ExpeL, AutoGuide):解耦了抽取 / 检索 / 执行,但牺牲了端到端可微。SkillRise 用单策略 + token 式文档回避这个代价。
- 与 同任务反复总结(e.g., task-level memory / trial-and-error summary):SkillRise 论文里专门对比,强调自己的 curation 是「跨任务序列上 + 折扣下游 credit」的,超出了 task-internal 取舍。
- 与 cross-trajectory GPO 类(e.g., GiGPO, GRPO 家族):同属 group-relative 优势思想,但 SkillRise 的 group 维度是 (sequence 位置 × role),而不是单纯 trajectory 维度。
与 RAGEN / ReST / ETO 等更主流 agentic RL baseline 的位置关系
- RAGEN:把多步环境轨迹当成 episode 整体训 PPO;SkillRise 与之相反——不把 episode 切碎,但把 episode 串起来变成 sequence。
- ReST(reinforcement self-training):先生成再 rerank + finetune;SkillRise 不显式分离生成与学习 phase,而是在同一个 rollout 内自然展开。
- ETO(Exploration-based Trajectory Optimization):偏探索式 off-policy;SkillRise 严格 on-policy 以保证 curate advantage 的无偏估计。
训练细节与超参数(从摘要 / 第一节可得)
- 任务序列长度 K:摘要未明确给出但提到 webShop 按属性数量排序——是隐式难度刻度。
- 跨任务折扣 γ:摘要给「γ ∈ [0,1]」,并强调 γ 用以「给近邻下游任务更高权重」——具体取值未在摘要披露(原文未明确)。
- 每序列 trial 数 N:摘要提到「compute group-relative advantage over N trials sharing the same task group / sequence stage / behavioral phase」,具体 N 值原文未明确。
- policy 共享:明确——solve 和 curate 用同一套 θ,仅在 prompt 层切角色;这是它端到端的关键前提。
- decoupling 必要性:论文明确说「assigning the same sequence-level return to both phases would therefore conflate task-solving quality with skill transferability」——这是 SKILLRISE 的方法学动机之一。
为什么「跨任务测试时 scaling」是一项重要观察
常规 test-time scaling 是「同一个任务,采样多次取最好结果」——它的收益来自于对答案空间做 width 放大,逻辑上是 variance reduction。
SkillRise 报告的是另一种 scaling:拉长任务链 K,policy 在每个任务只试一次的前提下,性能随 K 单调变好。这只能解释为 skill reuse 真正生效——同一个 policy 通过 curate 阶段不断把上一任务学到的可迁移模式压进 S 文档。文档本身逐渐变得更准、更精炼、更抽象(论文表述为「skill document evolves」)。
工程含义:
- 这是一种完全 online、不打扰 inference latency 的「自发能力提升」机制;
- 在生产环境里相当于「用户连续用一段时间后越用越顺」,而这是反射学习(reflection)或自助 GPT 类循环一直想拿到但没拿稳的事——因为 SKILLRISE 用外部真实 reward 做 curate 的监督信号,避免了 self-judge 偏差。
- 限制了 scaling 上限的是文档 token 长度预算:一旦超长上下文,文档压缩 / 检索就不可避免地回到多阶段 pipeline 上去——这是论文未解决的开放问题(原文未明确)。
部署级注意事项
- 不要把上线版本训练时对应的 S 文档冻掉——需要保留「继续 curate」的能力,否则 test-time scaling 收不到效果。
- curate 阶段的 reward signal 不一定是终态 0/1:如果产品可以拿到中间过程分(用户是否照搬、是否报错、可读性评分等),可以把那部分用作 r_i / R(τ) 的补充,让 curate 学得更快。
- 序列内任务间无关联时跳过:如果某天用户给的任务跨越了两个完全不同的领域,记得在 simulate / curate 时拆序列——否则会被「这两类任务根本不该共享技能」的 mixing 干扰。
- KL 约束 / 漂浮 free 阈值:与 GRPO 一样需要规范 π_θ 对 π_ref 的偏差,否则 curate 阶段会突然将 S 重写成「一个未学习过领域的全新风格」,破坏交叉任务迁移。
适合谁读
- Agent RL 工程师:想找一种能稳定 scale 到长程、跨任务 agent 训练的 RL 配方;
- 个人 AI 助理 / OpenClaw 类方向:跨 session 记忆复用 + 自演化 SOP 是刚需;
- 企业 AI 应用:把客服、销售、运维这类「同族多轮任务」的训练 / 监控能力建起来的人;
- 学术 reviewer / 学生:在做 cross-task memory、curriculum RL、process supervision 这几个方向的研究者——SkillRise 的「decoupled credit × role-aware group-relative」可作为后续工作的基础模块。
备注:本文中所有数字均直接取自论文摘要 / 第一节实验段落;具体的 per-environment baseline 数字(GiGPO / RAGEN / ReST 等)需查正文 Table 与 Appendix 方可严格比对,原文摘要口径以「gains over the strongest baseline ranging from 2.3 to 8.5 percentage points」为准。
工程落地与核查(Jay)
核查:存疑处
- K(任务序列长度)的实际取值未披露:K 决定 curate 阶段可获得的下游折扣 reward 的深度;过短则 curate advantage 信号稀疏,过长则训练不稳定。落地时需 sweep K 并监控 curate loss 的收敛性。
- γ(折扣因子)具体取值未公开:摘要仅说 γ∈[0,1] 用于「近邻下游任务更高权重」——未披露默认/最优值。γ=0 时 curate 只看最近一个下游任务;γ→1 时平等对待所有下游任务;建议从 0.5 开始调试。
- N(每序列 trial 数)未披露:N 控制 group-relative advantage 的 variance;N 太小会导致 advantage 噪声大,N 太大会增加 FLOPs。生产环境建议 N≥4 以保证 advantage 估计稳定。
- 任务族 G 的构造依赖环境 metadata:ALFWorld/WebShop/ScienceWorld 天然有 family 标签和难度排序;真实业务场景(客服对话、工单处理)往往没有这类标注。工程落地需要自行设计 family 聚类方案——可用任务 embedding 聚类或人工定义业务线切分。
- 文档 Si 的 token 预算未给出上限:随着 K 增大,Si 可能膨胀到消耗大部分 context window;论文未说明文档截断 / 压缩策略。生产环境建议硬性设定 Si ≤ 2048 tokens,超出则截断最不重要的条目。
工程落地要点
接入障碍与坑:
- 任务族构造是最大工程成本:SkillRise 依赖「同一 family + 按难度排序」的任务序列。真实业务里任务往往没有难度标签;可退而求其次用「同类操作的历史任务」按时间窗口构造序列(如「同类工单中最近 K 个」),避开难度排序的依赖。
- curate 阶段 prompt 设计决定文档质量:solve/curate 切换仅靠 prompt 层区分——prompt 写不好会导致 curate 重写成与 solve 无关的风格。建议固定 curate prompt 模板,包含「根据本次任务轨迹 τ_i 和结果 r_i,精炼现有技能文档」的显式指令。
- 文档 Si 是纯文本,不做 embedding 检索:这意味着推理时 Si 全量塞入 context,开销随 K 线性增长。若任务序列极长,需在 Si 外层加轻量 RAG(或先对 Si 做摘要压缩),否则 context 溢出。
- curate advantage 全负的梯度塌陷风险:当某个早期任务对所有 N 条 trial 都失败时,G_{i,curate} 全为负——curate logp 的梯度会强制压低文档质量,最终导致整个 sequence 的文档越 curate 越差。缓解:加入 baseline correction + 对早期任务加入 exploration bonus。
- 推理时不跑 curate 阶段:生产部署时往往没有 ground-truth reward 可用于 curate;可保留训练时的 curate 能力用于 offline 微调,或定期用离线数据重新训练 Si。
简化版快速冷启动(无需完整 RL):
Phase 1(prompt 流水线):
for task in task_sequence:
S = retrieve_or_empty(task.family)
plan = solve_with_S(task, S)
result = execute(plan)
if result.success:
S = curate(S, task, result) # LLM rewrite only, no RL
save(S)
Phase 2(可选 RL 精修):
收集 Phase 1 的 (task_sequence, S, outcomes) 数据
用 GRPO + group-relative 训练 solve/curate 策略
Phase 1 不需要 reward signal,直接复用现有 workflow 数据即可启动;Phase 2 按需引入。
实际系统怎么集成:
- session 管理:每个用户/会话维护一个 Si;在多会话场景下,Si 可按用户 ID 隔离,每个用户的 Si 只在自家序列里更新(防止 cross-user skill 污染)。
- curate 频率:不必每任务都 curate——可每 N 个任务集中 curate 一次,减少 LLM 调用次数。
- 跨 family 迁移:当用户请求跨越 family 时,建议开新 Si(旧 Si 冻结存档)——不同 family 的 skill 不应混写。
资源估算(单卡 A100 80G):
- 单 sequence(K=5,N=4):约 4 条完整 rollout,每条含 solve + curate 两段 LLM 调用;总 LLM forward pass 约 8 × K × decode_steps;若 decode 每步 50 ms,总计 < 20 s / sequence。
- 对比多阶段 skill pipeline(extraction + retrieval + execution):SkillRise 折叠了三段为两段 LLM call,理论 runtime 减半。