(2603) GROUP VERIFICATION-BASED POLICY OPTIMIZATION FOR INTERACTIVE CODING AGENTS
🌺 论文摘要
问题背景
❓问题背景
核心方法
📕核心方法
实验设置
✍️实验设置
基础模型
训练任务/数据
评测任务/数据
算法/策略
超参
关键结果
🍑关键结果
模型效果
重要结论
关键贡献
未来方向
⛳ 未来方向
(2512) Reinforcement Learning for Self-Improving Agent with Skill Library
🌺 论文摘要
参考链接
核心方法 (SAGE, Skill Augmented GRPO for Self-Evolution)
技能库+持续学习RL框架。Sequential Rollout:2任务链训练,Task1生成技能被Task2使用,实现持续学习。结果奖励+技能生成/使用奖励。仅当技能被后续任务成功复用时才给予额外奖励。训练流程:Claude构造专家数据->SFT冷启动->SAGE RL训练。
模型效果(Qwen2.5-32B, SFT+RL, AppWorld)
SAGE
Test-NormalTGC 72,SGC 60。性能超过
基线GRPOSGC 51.8,GPT4o/Claude3.5+React,SGC 32.1,SGC 41SAGE比GRPO步数Tokens更少。12.1 vs 16.4,1475 vs 3613
关键结论
- 封装技能将
复杂的API调用序列简化为单函数调用,提高准确率,大幅降低推理成本。- SAGE 提升技能使用成功率,RL教会模型
何时如何使用Skill。
- SAGE 提升技能使用成功率,RL教会模型
必须做SFT+RL:仅靠Prompt无法让开源模型用好技能库。专家SFT数据提供格式先验,RL进一步优化策略。
必须做SFT冷启动:(SGC指标)直接RL 25.6,SFT 41.7,SFT+RL 60.7。- AppWorld
Query简单,n-gram检索SKill效果就挺好。 3个任务链并未提升性能。
关键贡献
- 提出了
Tool-use Agent的SAGE框架,同场景序列学习+Skill思想。 - 解决了 RL Agent
在新环境中难以利用历史经验持续优化的问题。
问题背景(新场景难持续学习)
❓ 问题背景
持续学习难题
- 现有的RL Agent (如CodeAct, RLVR) 往往
局限于特定场景。 新环境时,难通过积累经验来持续自我提升。
技能库 (Skill Library) 的挑战
- 现有
技能库方法主要依赖LLM Prompting(如 Voyager, Agent Skill Induction)。 缺点:依赖基座模型能力:对指令遵循要求高,开源模型难以稳定生成/调用技能。格式不统一:通常将任务执行和技能提炼分开,增加了上下文开销和推理延迟。缺乏针对性优化:没有专门针对生成高质量技能进行RL 训练。
Skill Library Agent
📕 核心方法
统一的交互格式
- 扩展自
CodeAct框架。 - Skill:模型在
解决任务时,将常用的操作序列封装为Python 函数(Skill)。 - 流程:
定义函数->存入库->后续步骤/任务中调用函数。 - 优点:相比于
事后总结技能,这种方式即时生效且减少Token消耗。

Skill-Augmented GRPO
1. Sequential Rollout
- 利用 AppWorld 的
Scenario结构(每个场景包含3个相似任务)。 - 构建
任务链: - Agent
先解决, 生成技能存入库。 - 使用
更新后的技能库去解决 。
- Agent
目的:模拟真实场景下的持续学习,强制模型学习如何复用前一个任务的经验。
2. Skill-Integrated Reward (技能集成奖励)
- 奖励公式:
Outcome 奖励: 任务成功1,失败0。Skill 奖励:技能生成奖励:如果生成的技能帮助成功解决,则 奖励。 技能使用奖励:如果成功使用了的技能并 完成任务,则奖励。
惩罚:模型未生成代码直接结束,给予-1.0 惩罚。
3. 训练策略
算法:GRPO (Group Relative Policy Optimization)。优势计算:基于任务链的期望回报,不使用 KL 惩罚。
实验设置
✍️ 实验设置
基础模型
Qwen2.5-32B-Instruct
数据集
- AppWorld: 模拟9个日常APP (Amazon, Gmail等) 的复杂操作环境。
- 训练集: Train Set (
难度 1-2),未使用难度3数据。24个场景。 - 评测集: Test-Normal (168任务), Test-Challenge (417任务,含未见过的APP)。
- SFT数据构造:
1.1k轨迹数据。Claude 3.5+Skill Agent,拒绝采样,筛选任务成功+有效利用技能的数据。
训练策略
- SFT 冷启动:学会
技能定义和调用格式。 - SAGE RL: 基于SFT模型做RL训练,采样
2个任务组成链做Sequential Rollout。
评估指标
- 效果指标:TGC,SGC,
- Efficiency: 平均交互步数 (Steps) 和 Token 消耗。
训练参数
- 每一步:384个rollout。
关键结果(Qwen2.5-32B, SFT+RL, AppWorld)
🍑 关键结果
模型效果(Qwen2.5-32B, SFT+RL, AppWorld)
SAGE Test-Normal
TGC 72,SGC 60。Base GRPO:TGC 69.2,SGC 51.8。GPT-4o+ReAct: SGC32.1Claude 3.5 Sonnet+ReAct :SGC41.1
SAGE比GRPO步数Tokens更少。12.1 vs 16.4,1475 vs 3613
关键结论
- 封装技能将
复杂的API调用序列简化为单函数调用,提高准确率,大幅降低推理成本。- SAGE 提升技能使用成功率,RL教会模型
何时如何使用Skill。
- SAGE 提升技能使用成功率,RL教会模型
必须做SFT+RL:仅靠Prompt无法让开源模型用好技能库。专家SFT数据提供格式先验,RL进一步优化策略。
必须做SFT冷启动:(SGC指标)直接RL 25.6,SFT 41.7,SFT+RL 60.7。3个任务链并未提升性能。
Skill 检索方式对比
- 理想情况-
Same Scenario: SGC 60.7% Query N-gram 检索: SGC 60.1% (几乎无损)Embedding 检索:SGC 59.5%简单的N-gram检索在AppWorld 这种指令相似度高的场景下非常有效。


未来方向
⛳ 未来方向
技能检索增强
- 当前:依赖
同一场景、简单检索。 - 未来:探索
功能语义的专用检索器,以应对跨场景的技能复用。
任务链长度扩展
3个任务链并未提升性能,可能因为奖励分配不均、梯度方差变大等原因。- 解决
长序列信用分配问题。
更通用的技能库
- 目前技能针对
AppWorld-API。 - 探索SAGE应用到
更开放的Code Agent或Web Agent场景。
(2511) (通义) AgentEvolver
🌺 论文摘要
参考链接
核心方法
AgentEvolver 框架:无需人工数据,通过环境交互实现自主进化。三大核心机制:Self-Questioning (自提问):好奇心驱动探索环境 ->合成任务->任务筛选,解决数据匮乏。Self-Navigating (自导航):构建经验池->检索经验->混合Rollout,解决探索效率低。Self-Attributing (自归因):LLM Judge进行步骤级归因(Good/Bad)->细粒度奖励,解决奖励稀疏。
基础设施:Context Manager(支持滑动窗口、自管理上下文等模板)。
模型效果 (Qwen2.5-14B-Instruct)
- AppWorld (Test-Normal):
TGC(Task Goal Completion) avg@8 达48.7%(Base 18.0%),best@8 达69.4%。 - BFCL v3: avg@8 达
66.5%(Base 41.6%)。 - 样本效率:在AppWorld上,达到Baseline 90%性能所需的训练步数减少了
55%(40步 vs 90步)。
重要结论
Self-Questioning贡献最大,解决了"学什么"的问题。Self-Attributing提供了密集的中间奖励,显著提升了样本效率。经验内化(Implicit RL) 比单纯的In-Context Learning效果更好且上限更高。
关键贡献
- 提出了一套完整的
Agent自进化流程 (E -> Task -> Trajectory -> Policy),不再依赖昂贵的人工标注数据。
问题背景(AgentRL训练困境)
❓问题背景
成本高昂与效率低下
依赖人工数据:现有Agent训练通常需要人工构建任务数据集(SFT数据)。RL探索效率低:传统RL在复杂工具调用环境中依赖随机探索,成功率低,样本利用率差。奖励稀疏:长程任务通常只有最终成败反馈,缺乏中间步骤信用分配。
目标
- 实现
零人工干预的Agent能力提升。 - 让Agent在
未知环境中自主发现任务、积累经验并自我优化。
📕核心方法
自主任务生成 (Self-Questioning,学什么)
流程
- 环境探索:基于
环境Profile(实体、属性、操作)进行好奇心驱动的随机游走。 - 任务合成:将
探索轨迹抽象为(Query,Reference Solution)Pair。 - 任务清洗:
实时过滤:词法去重。事后过滤:使用Agent重放验证可行性,剔除幻觉任务。
作用
- 将
交互Sandbox(无任务环境)转化为Proxy Task Distribution(训练任务集)。 - 提供了
Reference Solution,用于后续的Reward计算。
经验辅助探索 (Self-Navigating,怎么探索)
经验获取 (Offline)
- 从历史轨迹中提取
成功或失败的经验(What to do / What not to do)。 - 构建
经验池 (Experience Pool),形式为自然语言描述。
经验混合 Rollout (Online)
检索:根据当前Task检索Top-K经验。混合策略:比例的Rollout使用经验指导( Prompt中插入经验),其余为Vanilla Rollout。目的:平衡利用(Exploitation,利用经验走捷径)与探索(Exploration,发现新路径)。
Mask 经验Loss
Mask 经验Token的Loss
细粒度归因奖励 (Self-Attributing,怎么学)
双通道奖励设计
- 结果奖励 (
):任务最终是否成功(0/1),进行标准化。 - 过程归因奖励 (
): LLM Judge 对每一步做打分:GOOD(+1) 或BAD(-1)。Trajectory-level 标准化,避免长轨迹方差过大。
合成奖励
- 提供了
Dense Reward,显著加速收敛。
实验设置
✍️实验设置
基础模型
- Policy:
Qwen2.5-7B-Instruct,Qwen2.5-14B-Instruct - Judge:
Qwen-Max/Qwen3-235B
评测基准
- AppWorld: 复杂的API交互环境,指标为
TGC(Task Goal Completion)。 - BFCL v3: 工具调用基准。
算法配置
- 训练算法:
GRPO变体。 - 探索配置:Self-Questioning 生成任务;经验混合比例
。 - 奖励权重:
(Attribution权重) 调优,最终选取 0.1~0.2。
关键结果
🍑关键结果
模型效果(AppWorld, Test-Normal TGC avg@8指标)
- Qwen2.5-7B TGC 由 1.8 -> 32.4
Qwen2.5-14BTGC由18.8->48.7
模型效果(BFCL v3, avg@8指标)
- Qwen2.5-7B 由 29.8 -> 57.9
- Qwen2.5-14B 由 41.6 -> 66.5
消融实验 (14B)
- Base: 18.0%
- +Questioning (有任务了): 44.3% (提升最大,解决了冷启动)
- +Navigating (有经验了): 45.4%
- +Attributing (有细粒度奖励了): 48.7% (最终完整版)
样本效率
- 引入Self-Attributing后,在 AppWorld 上仅需
40步即可达90步 90%的性能。 - 证明了
细粒度信用分配对加速收敛的关键作用。
未来方向
⛳ 未来方向
上下文管理
- 针对超长任务(百步),
Context Manager的不同模板(滑动窗口vs自主压缩)对性能影响大。 - 未来需探索
更智能Memory管理机制。
经验利用的权衡
- 过度依赖检索经验:
在推理时有效,但在训练时可能导致过拟合,降低泛化探索能力。 - 需要平衡
Guidance和Intrinsic Reasoning。
多Agent协同
- 当前主要单Agent自我进化,未来可扩展到
多角色(如Planner-Executor)的联合进化。
(2510) SALT: Step-level Advantage Assignment for Long-horizon Agents via Trajectory Graph
🌺 论文摘要
参考链接
核心方法
SALT 框架:基于轨迹图构建的细粒度优势分配机制。核心思想:将多个生成的轨迹合并为轨迹图(Trajectory Graph)。合并 (Merge):不同轨迹中相同状态和动作的节点合并。分支 (Diverge):不同动作导致路径分叉。
优势重估:基于图结构计算每个Step的优势,而非简单广播整个轨迹的最终回报。共享步骤(出现在成功和失败中)->中性优势。关键步骤(仅出现在成功轨迹中)->高优势。
轻量级插件:无缝集成至 GRPO/RLOO,无需额外Reward Model,无需人工标注。
模型效果 (Qwen2.5-1.5B/7B/32B)
- ALFWorld: Qwen2.5-1.5B 上,GRPO 成功率从
69.0%提升至80.5%(+11.5%)。 - WebShop: Qwen2.5-1.5B 上,GRPO 成功率从
64.6%提升至66.2%。 - AppWorld: Qwen2.5-32B 上,GRPO+SALT 在 Test-Normal SGC 指标上达
20.9%(Base GRPO 17.0%)。
重要结论
细粒度信贷分配:解决了长程任务中好坏动作纠缠导致梯度冲突的问题。计算开销极低:相比Rollout和Update,SALT引入的开销可忽略不计。无需Critic模型:适用于 Group-Based RL (如 GRPO) 的纯 Policy 优化场景。
关键贡献
- 提出了
基于结果稀疏奖励进行Step-level 优势估计的通用方法 SALT。
问题背景
❓问题背景
长程任务挑战
- LLM Agent 在 WebShop、ALFWorld 等长程任务中,需要执行多步操作才能获得最终反馈。
- 主流方法(如 GRPO)通常依赖
稀疏的最终奖励(Outcome-based rewards)。
粗粒度信用分配 (Coarse-grained Credit Assignment)
- GRPO 将整条轨迹的
最终回报直接广播给轨迹中的每一个 Step。 - 噪声问题:
成功轨迹中可能包含冗余/错误步骤(被错误奖励)。失败轨迹中可能包含正确步骤(被错误惩罚)。
- 后果:导致
训练不稳定,策略更新存在梯度冲突,难以收敛到最优解。
核心方法(Step-level Advantage Assignment)
📕核心方法
1. 轨迹图构建 (Trajectory Graph Construction)
- 输入:对同一个 Prompt 采样的
条轨迹 (Rollouts)。 - 操作:
- 定义状态
为包含过去 步的历史窗口。 - Merge:如果两条轨迹在某一步的
历史状态和当前动作相同,则将它们视为图中的同一个节点。 - Diverge:动作不同则产生分支。
- 定义状态
- 结果:将独立的线性轨迹转化为
有向无环图 (DAG),揭示了哪些步骤是跨轨迹共享的,哪些是独有的。
2. 细粒度优势计算 (Step-level Advantage)
- 直觉:
共享节点(Shared Nodes):出现在多条轨迹(包括成功和失败)中,说明该步骤对结果区分度低,应给予平均/中性优势。独有节点(Distinct Nodes):仅出现在高分轨迹中的步骤可能是关键成功因素,应给予高优势。
- 计算:
- 每个节点的价值
估计为经过该节点的所有轨迹回报的平均值。 - 使用该节点价值替代原有的轨迹级回报来计算优势函数。
- 每个节点的价值
3. 轻量化与兼容性
- Plug-and-Play:插入在 Advantage Computation 和 Policy Update 之间。
- 零额外参数:不需要训练 Value Model 或 Process Reward Model (PRM)。
实验设置
✍️实验设置
基础模型
- Qwen2.5-Instruct 系列:
1.5B,7B,32B。
训练/评测任务
- ALFWorld:具身智能推理任务 (6种类型)。
- WebShop:网页购物模拟,涉及搜索、选择属性等。
- AppWorld:复杂的日常API交互任务 (高难度长程)。
算法/策略
- Baseline:
RLOO,GRPO。 - Ours:
RLOO+SALT,GRPO+SALT。
超参配置
- Group Size: 默认为 8 (消融实验测试了 4-16)。
- State History (
): 默认为 3 (用于判断节点合并的上下文窗口)。 - Rollout: Temperature=1.0。
关键结果
🍑关键结果
ALFWorld 显著提升
Qwen2.5-1.5B:- GRPO: 69.0% -> GRPO+SALT: 80.5%
- RLOO: 68.4% -> RLOO+SALT: 76.6%
Qwen2.5-7B:- GRPO: 83.6% -> GRPO+SALT: 86.1%
- 结论:在小模型上提升尤为显著,帮助小模型探索并锁定正确路径。
AppWorld 高难度任务突破
- 使用
Qwen2.5-32B: - Test-Normal (SGC): GRPO (17.0%) -> GRPO+SALT (20.9%)。
- Test-Challenge (SGC): 在难度最高的D2子集上,成功率翻倍 (8.0% -> 18.6%)。
- 结论:在需要极长推理链的任务中,SALT 能够有效识别关键步骤。
效率分析
- 计算开销:在一次迭代中,Rollout 耗时 240s,SALT 仅耗时 0.15s。相比带来的性能提升,开销几乎可以忽略不计。
消融实验
- Group Size:Group Size 越大 (如 16),轨迹图连接越丰富,SALT 带来的相对提升越大。
- History Length:
效果最佳。太短( )导致错误合并,太长( )导致图退化为独立轨迹。
未来方向
⛳ 未来方向
局限性
- 依赖 Group 多样性:如果采样的轨迹全部相同或完全不重叠,SALT 退化为标准 GRPO。需要保证一定的采样多样性 (Temperature > 0)。
潜在应用
- 代码生成与数学推理:虽然本文关注 Agent 任务,但该思想同样适用于 Code/Math 的 Reasoning 过程优化,尤其是对于中间步骤的信贷分配。
- 结合 PRM:SALT 是基于统计的无监督方法,未来可与显式的 Process Reward Model 结合,进一步校准优势估计。
(2509) ProST: Progressive Sub-task Training for Pareto-Optimal Multi-agent Systems Using Small Language Models
🌺 论文摘要
参考链接
核心方法
ProST:多智能体的课程学习微调策略,渐进式引入子任务。多智能体:Orchestrator(规划)、Executor(执行/写代码)、Critic(反馈)。
模型效果(Qwen2.5-14B + ProSFT + 多角色)
- Test-Normal
TGC 达42.3,SGC达26.8,Test-ChallengeTGC 14.1,SGC 5.8。
重要结论
ProST > SFT > Base:所有模型尺寸,ProST训练的多智能体均优于标准SFT。14B-MA(ProST)效果优于32B-SA(Base),小模型组合可胜单体大模型,推理FLOPs更低。资源给规划者比较好:规划-执行-评估,14B-7B-7B显著优于7B-14B-14B。
关键贡献
- 个人感觉不是很ok,效果太差了。
问题背景(小模型在复杂场景效果不好)
❓问题背景
小模型做复杂任务存在挑战
AppWorld复杂+长交互:需要规划、编码、API调用和错误恢复GPT4效果好但成本高。SLM小模型成本低,但效果不好。
现有SFT存在局限性
长轨迹学习困难:直接在完整轨迹上SFT,难学会中间的子任务,易灾难性遗忘或逻辑断层。角色专业化不足:虽拆为多智能体,但单SLM难同时掌握角色的细微差别和长程依赖。
效率与效果的权衡
- 业界缺乏对
多智能体在计算成本与任务完成率之间权衡的系统研究。
📕核心方法
ProST-渐进式子任务训练
核心思想
- 借鉴
课程学习,让模型先学简单的/局部的,再学复杂的/全局的。 训练早期,只暴露部分子任务。随Epoch增加,逐步扩展输入上下文,直到覆盖完整轨迹。
训练流程
- 数据构建:包含
个子任务的轨迹。 - 渐进式掩码 (Progressive Masking):
Epoch 0:仅训练特定的子任务子集(例如子任务 2, 3),屏蔽其他。Epoch i:引入更多子任务(例如从子任务 2 扩展到 1-3)。Final Epoch:训练包含所有子任务的完整轨迹。
- 优势:
- 避免模型在长序列中迷失。
- 强制模型
优先掌握核心逻辑,再处理长依赖。
Mask错误动作的Loss
- 仅计算
正确步骤和自我修正成功步骤的Loss。 Mask错误步骤的Loss,避免模型学习错误的推理路径。- 同 SWE-Lego Mask错误动作
三角色架构与数据合成
角色分工
- Orchestrator (规划者):
- 将用户Query拆解为
子任务序列(ReAct模式)。 处理执行失败,动态调整计划。
- 将用户Query拆解为
- Executor (执行者):
接收子任务,编写Python代码调用AppWorld API。- 包含
自我纠错循环。
- Critic (批评者):
- 当
Executor反复失败时介入,审查代码和环境反馈,提供自然语言建议。
- 当
数据合成Pipeline
- 源数据:用
Llama-3.3-70B生成高质量的单智能体轨迹(Rejection Sampling)。 - 转换:用
Claude-3.7-Sonnet把单智能体轨迹重写为多智能体训练数据。 - 验证:所有转换后的轨迹都在AppWorld环境中
实际执行验证,确保正确性。
实验设置
✍️实验设置
基础模型
Qwen-2.5-Coder(7B, 14B, 32B) —— 核心实验模型(代码能力强)。Llama-3.1-8B,Phi-4—— 验证泛化性(推理能力强)。
基准测试 (AppWorld)
- 模拟9个日常APP(Amazon, Spotify, Venmo等),457个API。
Test-Normal(域内测试) 和Test-Challenge(域外测试/OOD)。
评估指标
- 效果指标:
TGC(任务目标完成率),SGC(场景目标完成率)。 - 效率指标:
Inference FLOPs,推理时的浮点运算次数,用于衡量真实的计算开销
对比基线
Single Agent (SA): Base, SFTMulti-Agent (MA): Base, SFT, ProST(Ours)
关键结果(Qwen2.5-14B+ProSFT+多角色)
🍑关键结果
模型效果(Qwen2.5-14B + ProSFT + 多角色)
- Test-Normal
TGC 达42.3,SGC达26.8,Test-ChallengeTGC 14.1,SGC 5.8。
关键结论
ProST > SFT > Base:所有模型尺寸,ProST训练的多智能体均优于标准SFT。14B-MA(ProST)效果优于32B-SA(Base),小模型组合可胜单体大模型,推理FLOPs更低。资源给规划者比较好:规划-执行-评估,14B-7B-7B显著优于7B-14B-14B。
未来方向
⛳ 未来方向
局限性
显存开销:虽然FLOPs(时间成本)降低了,但同时加载3个模型对GPU显存要求很高。数据依赖:严重依赖闭源模型(Claude 3.7)进行数据的多智能体转换。
未来探索
OOD 泛化:Test-Challenget提升少,如何让Agent适应未见API是关键。动态资源分配:根据任务难度动态选择不同大小的模型角色。更通用的课程:其他长周期Agent任务(如SWE-bench)上的ProST应用。
(2502) Leave-One-Out PPO
🌺 论文摘要
参考链接
核心方法
LOOP:留一法算优势+去掉std+PPO Off-Policy+PPO Clip+Token级建模AppWorld 训练数据筛选:去掉难度3场景、再去掉6场景
模型效果(Qwen2.5-32B-Inst, AppWorld)
TestNormal:TGC 达71.3分,SGC 达53.6分。- TestChallenge:TGC 达45.7分,SGC达 26.6分。
整体均超过其他方法。
重要结论
per-token>per-turn>per-traj,71.3> 64.1 >53.3组内std归一化会降低9pt:71.3 -> 61.9移除KL惩罚有效果:Test-C TGC 从 22.4 -> 26.6Loop 优于 GRPO:71.3>58。LOOP 非归一化 优于 GRPO 归一化 ?Loop 优于 PPO:71.3>50.8。Critic 不好训,易引入误差- 出现一些涌现行为。
关键贡献
- AppWorld SOTA
- 详细的
各方法对比实验
问题背景
❓问题背景
LLM Agent真实任务效果不行
LLM Agent处理真实任务效果不行
- AppWorld
- 单任务:agent和
python环境可能交互40轮、32k长度。 - 特点:
stateful、多领域、多app、环境API交互- 跨应用、长序列规划、动态适应、上下文长。
- 单任务:agent和
现有模型效果不好- 开源Qwen2.5仅40%,GPT4o 仅50%成功率。
RLOO 缺点
同策略算法,样本效率低。Trajetory-Level 建模,但Token-Level 通常更稳定一些。
基础RL算法概览及其问题
RL建模:llm token-level MDP
1. REINFORCE算法
参考笔记:REINFORCE、REINFORC++算法、优势AC算法
策略梯度,优势决定更新方向。优势大于0,鼓励;优势小于0,抑制。
2. RLOO 算法
参考笔记:RLOO
REINFORCE+留一法计算优势,无需Critic和Ref模型。
3. 本文LOOP 算法
RLOO+异策略,具体引入PPO信任域,提升样本效率。
4. GRPO 算法
5. PPO 算法
6. 其他非RL
- 迭代iSFT,通过
不断筛选好样本,来微调模型。
PPO序列和Token两种建模Loss计算
PPO 建模方式
Per-轨迹:把整个序列看成1个动作,计算1个总的重要性权重。GSPO 序列级IS权重Per-Token:把每个词看成1个动作,为每个词单独计算重要性权重。更稳定、平滑。
PPO Loss 计算方式
Seq-Level-Loss:PPO Seq-level-Loss, GSPO Seq-Level-Loss
Token-Level-Loss:DAPO Token-Level-Loss
PPO CLIP 粒度
per-trajectory:
1条轨迹计算1个IS权重。- 缺点:非常不稳定。
per-turn:为
每个回合计算1个IS权重。- 优点:
per-token:为
每个token单独计算1个IS权重。- 优点:最精细。
AppWorld 场景
- 相关:text-games(2015,2023), webshop(2022), 导航(2022), 手机控制(2024)
- WebShop:
- Yao(2022):REINFORCE + 可学习baseline
- ArCHer(2024):结合off-policy + on-policy 训练
- AgentQ(2024):DPO + Tree搜索
- 场景:
买东西,1个app,8个动作,每回合最多1个参数
场景和任务
多样化复杂逻辑:邮件、支付、音乐、购物、打电话、文件系统等。9个真实app,457个API调用,单API最多17个参数。250个场景,每个场景有3个任务,总计750个任务。- 任务难度分
1-3档。
训练评测数据量
训练:
35场景,105个任务。Level 1-2-3:36,36,18Dev:
20场景,60任务。Level 1-2-3:30,24,3- Level1-36条,Level2-36条,Level3-18条
Test-Normal:
56场景,168任务。Level 1-2-3:57,48,63Test-Challenge:
139场景,417任务。复杂、新APP。Level 1-2-3:72,150,195
评测维度
- 每个任务有
1套单元测试,3个维度事情已完成:任务所要求的环境状态成功执行无副作用:没有对环境或APP造成额外的修改答案正确:agent最终答案和标准答案一致
评估指标
- TGC:Task-Goal-Completion,
任务目标完成率 - SGC:Scenario-Goal-Completion,
场景目标完成率- 1场景有3任务,
3个任务全部完成,才算场景完成。
- 1场景有3任务,
部分可观测马尔可夫决策过程
状态
初始隐藏状态:Python REPL状态、模拟数据库等,
智能体看不见,上下文:
user prompt所有token序列:
大模型生成token+环境返回token,是agent可观察的历史信息。
动作
- Agent生成下一个token
状态转移
- 状态追加
LLM生成token+ 环境返回token
轨迹概率
- Token 概率乘积
- 指示函数I:轨迹和初始状态一致,则为1;否则为0。
优化目标
- 最大化累积期望奖励
Leave-One-Out PPO 算法
📕核心方法
PPO Off-Policy 提高样本效率
多轮次训练- Rollout数据使用
ppo_epochs轮,训练多轮。 - 使用
重要性权重来做分布修正。 - 如果
ppo_epochs=1,则LOOP退化成RLOO。
- Rollout数据使用
小批量学习- train_batch分成
多个mini-batch,进行多次梯度更新。
- train_batch分成
PPO Clip 保证更新稳定
PPO-Clip限制更新策略幅度保证稳定
标准差
- 在
不稳定的任务上,标准差大 除以标准差,会削弱或抑制那些偶然成功的高奖励学习信号。
差异
- GRPO:
除以标准差。 - LOOP:
不除以标准差。
LOOP 实验
- LOOP实验
不除以标准差好,能更有效地从不稳定的、探索性的行为中学习。
相关算法
- Dr.GRPO:
不除以标准差,避免难度偏差。 - REINFORCE++、LitePPO:
Global std

实验设置
✍️实验设置
奖励函数
- [0, 1],
单元测试通过比例。no sparse
训练数据
- 从原始Train中,
筛选出24场景,共72任务。 - 筛选逻辑
先去掉难度3场景,只用难度1和2(35 -> 30)。- 使用难度3会降低性能。
- 再
去掉6个场景:30 -> 24。
其他超参
- 最大轮次:
训练40轮,测试50轮。 - Rollout:6次。
- Batch:
40个任务、每次学习40*6=240条序列 - 固定学习率:5e-5
- Prompt:ReACT Prompt
- 长度:LLM单次
1500 token;环境单次:3000 token。 训练50epoch,取最好的checkpoint。
基础模型
- Qwen2.5-32B
训练任务/数据
- AppWorld
筛选后的训练数据:24个场景,共72个任务。
评测任务/数据
- AppWorld
Test-normal,Test-Challenge
算法/策略
LOOP,LORA训练
超参
- 2*8H100,训练42小时。
- 其他超参见上文
关键结果(Qwen2.5-32B-Instruct)
🍑关键结果
模型效果(Qwen2.5-32B-Inst, AppWorld)
TestNormal:TGC 达71.3分,SGC 达53.6分。- TestChallenge:TGC 达45.7分,SGC达 26.6分。
- 整体均超过其他方法。
重要结论
per-token>per-turn>per-traj,71.3> 64.1 >53.3组内std归一化会降低9pt:71.3 -> 61.9移除KL惩罚有效果:Test-C TGC 从 22.4 -> 26.6Loop 优于 GRPO:71.3>58。LOOP 非归一化 优于 GRPO 归一化 ?Loop 优于 PPO:71.3>50.8。Critic 不好训,易引入误差- 出现一些涌现行为。
关键贡献
- SOTA
- 从
莽撞到谨慎:不必要代码执行减少6倍,避免了次优loop - 从
想当然到查文档:调用特定APP接口时,API文档查询增加60% - 从
瞎猜到求证:毫无根据的假设减少了30倍,虚构密码等重要位置减少了6倍 - 从
脆弱到坚韧:失败后放弃次数减少3倍


未来方向
⛳未来方向
性能还不够好,提升成功率。目前仅70%完成。- 环境太理想化,
需提升真实复杂情况。- 不确定性、暂时性故障、模棱两可的任务、对抗性场景、与用户主动交互、与真人其他agent交互等等。
多模态能力:看懂网页截图、图表等。