[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-langfengQ--verl-agent":3,"tool-langfengQ--verl-agent":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":77,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":121,"forks":122,"last_commit_at":123,"license":124,"difficulty_score":125,"env_os":126,"env_gpu":127,"env_ram":126,"env_deps":128,"category_tags":137,"github_topics":138,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":147,"updated_at":148,"faqs":149,"releases":178},5171,"langfengQ\u002Fverl-agent","verl-agent","verl-agent is an extension of veRL, designed for training LLM\u002FVLM agents via RL. verl-agent is also the official code for paper \"Group-in-Group Policy Optimization for LLM Agent Training\"","verl-agent 是 veRL 框架的进阶扩展，专为通过强化学习（RL）训练大型语言模型（LLM）及视觉语言模型（VLM）智能体而设计。它不仅是 NeurIPS 2025 获奖论文\"Group-in-Group Policy Optimization\"的官方代码实现，更致力于解决传统方法在处理长程、多轮交互任务时的瓶颈。\n\n过往方案通常简单拼接完整的交互历史，导致上下文冗余且难以扩展。verl-agent 创新性地提出了“步独立多轮展开机制”，允许开发者对每一步的输入结构、历史记录管理及记忆模块进行完全自定义。这一架构突破使得模型能够高效应对如 ALFWorld 等需要长达 50 步以上才能完成的复杂任务，显著提升了长周期训练的稳定性与可扩展性。\n\n该工具内置了包括最新 GiGPO 在内的多种强化学习算法，并提供了丰富的智能体环境，支持文本与视觉双重任务场景。同时，它还集成了模块化记忆管理器，并持续跟进社区前沿，已支持 Qwen3-VL、LoRA 微调及 REINFORCE++ 等特性。\n\nverl-agent 非常适合从事大模型智能体研发的研究人员与工程师使用。如果你正在探索如何","verl-agent 是 veRL 框架的进阶扩展，专为通过强化学习（RL）训练大型语言模型（LLM）及视觉语言模型（VLM）智能体而设计。它不仅是 NeurIPS 2025 获奖论文\"Group-in-Group Policy Optimization\"的官方代码实现，更致力于解决传统方法在处理长程、多轮交互任务时的瓶颈。\n\n过往方案通常简单拼接完整的交互历史，导致上下文冗余且难以扩展。verl-agent 创新性地提出了“步独立多轮展开机制”，允许开发者对每一步的输入结构、历史记录管理及记忆模块进行完全自定义。这一架构突破使得模型能够高效应对如 ALFWorld 等需要长达 50 步以上才能完成的复杂任务，显著提升了长周期训练的稳定性与可扩展性。\n\n该工具内置了包括最新 GiGPO 在内的多种强化学习算法，并提供了丰富的智能体环境，支持文本与视觉双重任务场景。同时，它还集成了模块化记忆管理器，并持续跟进社区前沿，已支持 Qwen3-VL、LoRA 微调及 REINFORCE++ 等特性。\n\nverl-agent 非常适合从事大模型智能体研发的研究人员与工程师使用。如果你正在探索如何让 AI 在复杂环境中具备更强的推理与规划能力，或者需要构建稳定的多轮交互系统，verl-agent 将提供一个灵活、高效且经过学术验证的开发底座。","\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_f8d67632b8d5.png\" alt=\"logo\" width=\"55%\">\n\u003C\u002Fp>\n\n\n\u003Ch3 align=\"center\">\n\u003Cb>Group-in-Group Policy Optimization for LLM Agent Training\u003C\u002Fb>\n\u003Cbr>\n\u003Cb>NeurIPS 2025\u003C\u002Fb>\n\u003C\u002Fh3>\n\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Paper-red?style=flat-square&logo=arxiv\" alt=\"arXiv Paper\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Project-181717?style=flat-square&logo=github\" alt=\"GitHub Project\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Flangfeng01\u002Fverl-agent-684970e8f51babe2a6d98554\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingFace-Models-yellow?style=flat-square&logo=huggingface\" alt=\"HuggingFace Models\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Flangfengq\u002Fstatus\u002F1930848580505620677\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-Channel-000000?style=flat-square&logo=x\" alt=\"X Channel\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fblob\u002Fmaster\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg?style=flat-square\" alt=\"License\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FlangfengQ\u002Fverl-agent?style=flat-square&color=green\" alt=\"GitHub issues\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fstargazers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FlangfengQ\u002Fverl-agent?style=social\" alt=\"Repo stars\">\u003C\u002Fa>\n  &nbsp;\n\u003C\u002Fp>\n\n`verl-agent` is an extension of [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl), specifically designed for training **large language model (LLM) agents via reinforcement learning (RL)**. \n\nUnlike prior approaches that simply concatenate full interaction histories, `verl-agent` proposes **step-independent multi-turn rollout mechanism**, which allows for **fully customizable** per-step input structures, history management, and memory modules. This design makes `verl-agent` **highly scalable for very long-horizon, multi-turn RL training** (e.g., tasks in ALFWorld can require up to 50 steps to complete).\n\n`verl-agent` provides a **diverse set of RL algorithms** (including our new algorithm GiGPO) and a **rich suite of agent environments**, enabling the development of reasoning agents in both visual and text-based tasks.\n\n# News\n- [2026.02] `HGPO` accepted at [ICLR 2026](https:\u002F\u002Ficlr.cc\u002F)! 🎉🎉🎉 [[Paper](https:\u002F\u002Fopenreview.net\u002Fforum?id=T8Dev99qnz)] [[Code](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Ftree\u002Fmaster\u002Frecipe\u002Fhgpo)]\n- [2026.02] 🔥 We open-source [Dr. MAS](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS), which supports stable end-to-end RL post-training of **multi-agent LLM systems**! [[Paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2602.08847)] [[Code](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS)]\n- [2025.12] `Qwen3-VL` is supported! See example [here](.\u002Fexamples\u002Fgigpo_trainer\u002Frun_sokoban_qwen3vl.sh).\n- [2025.09] `GiGPO` is now supported by [ROLL](https:\u002F\u002Fgithub.com\u002Falibaba\u002FROLL)! [[Document](https:\u002F\u002Falibaba.github.io\u002FROLL\u002Fdocs\u002FEnglish\u002FUserGuide\u002Fagentic\u002Fagentic_GiGPO)] [[Train Curves](https:\u002F\u002Fgithub.com\u002Falibaba\u002FROLL\u002Fissues\u002F173#issuecomment-3332106534)].\n- [2025.09] `verl-agent`-style training pipeline is now supported by [OpenManus-RL](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL)!\n- [2025.09] [GiGPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978) accepted at [NeurIPS 2025](https:\u002F\u002Fneurips.cc\u002F)! 🎉🎉🎉\n- [2025.08] Add **Search-R1 experiments** and **similarity-based GiGPO**! Check out GiGPO's superior performance in Search-R1 experiments [here](#results).\n- [2025.07] `GiGPO` & `verl-agent` talks at [Agent for SWE meetup](https:\u002F\u002Flu.ma\u002Fe498qhsi) by LF AI & Data Singapore on 7\u002F11.\n- [2025.07] Add modular memory manager. See [here](.\u002Fagent_system\u002Fmemory).\n- [2025.06] ***Major update***: Merge all features from the latest [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl). For example, `verl-agent` now supports Qwen3, LoRA, REINFORCE++, and more. Feel free to explore!\n- [2025.05] Code released and paper on `GiGPO` released.\n\n# Quick Feature Summary\n| Feature Category | Supported Capabilities|\n| - | - |\n| **Interaction**          | ✅ Multi-turn Agent-Environment interaction\u003Cbr>✅ Step-wise interaction\u003Cbr>✅ Scalable for long-horizon tasks |\n| **Memory**               | ✅ Fully customizable memory module\u003Cbr>✅ Flexible history management|\n| **Input Flexibility**    | ✅ Fully customizable per-step input structures |\n| **Execution**            | ✅ Parallelized Gym environments\u003Cbr>✅ Group environments support (for group-based RL)|\n| **Model Support**        | ✅ Qwen3\u003Cbr>✅ Qwen3-VL\u003Cbr>✅ Qwen2.5\u003Cbr>✅ Qwen2.5-VL\u003Cbr>✅ LLaMA3.2\u003Cbr>and more |\n| **Modality**             | ✅ Text-only\u003Cbr>✅ Text + Image (multi-modal) |\n| **Lightweight Training** | ✅ Supports LoRA training |\n| **Environments**         | ✅ ALFWorld\u003Cbr>✅ WebShop\u003Cbr> ✅ Search (Tool Calling)\u003Cbr> ✅ Sokoban\u003Cbr>✅ Gym Cards\u003Cbr>✅ AppWorld |\n| **RL Algorithms**        | ✅ GiGPO\u003Cbr>✅ GRPO\u003Cbr>✅ PPO\u003Cbr>✅ DAPO\u003Cbr>✅ GSPO\u003Cbr>✅ RLOO\u003Cbr>✅ REINFORCE++\u003Cbr>✅ Dynamic sampling & clip-higher supported \u003Cbr> and more |\n| **Prompt-based Agent**   | ✅ GPT-4o prompt-based agent  |\n\n# Framework Comparison\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_54ae05ab2f23.png\" alt=\"framework\" width=\"100%\">\n\u003C\u002Fp>\n\n\n# Table of Contents\n\n- [Key Features](#key-features)\n- [Results](#results)  \n- [Installation](#installation)  \n  - [Install veRL](#install-verl)  \n  - [Install Supported Environments](#install-supported-environments)  \n    - [1. ALFWorld](#1-alfworld)  \n    - [2. WebShop](#2-webshop)\n    - [3. Search](#3-search)  \n    - [4. Sokoban](#4-sokoban)  \n    - [5. Gym Cards](#5-gym-cards)  \n    - [6. AppWorld (Experimental)](#6-appworld-experimental)  \n- [Run Examples](#run-examples)  \n  - [RL Training](#rl-training)  \n    - [1. GiGPO](#1-gigpo)  \n    - [2. GRPO](#2-grpo)  \n    - [3. PPO](#3-ppo)  \n    - [4. RLOO](#4-rloo)  \n    - [5. DAPO](#5-dapo)  \n    - [6. GiGPO (dynamic)](#6-gigpo-dynamic)\n  - [LoRA](#lora)\n  - [Prompt-based Agent with GPT-4o](#prompt-based-agent-with-gpt-4o)\n- [FAQ](#faq)\n  - [1. Customize Memory Module](#1-customize-memory-module)\n  - [2. Data Preparation](#2-data-preparation)\n  - [3. Customize Your Own Prompts](#3-customize-your-own-prompts)\n  - [4. Add New Environments](#4-add-new-environments)\n- [Contributing](#contributing)\n- [Acknowledgement](#acknowledgement)\n- [Awesome Work Powered by verl-agent & GiGPO](#awesome-work-powered-by-verl-agent--gigpo)\n- [Citation](#citation)\n- [Star History](#star-history)\n\n# Key Features\n\n- **Multi-Turn Agent-Environment Interaction**\n\n  `verl-agent` supports multi-step interactive loops between agents and environments. Agents perceive environmental feedback after each step, forming the basis for reinforcement learning.\n\n- **Fully Customizable Memory Module & Per-Step Input Structure**\n\n  `verl-agent` features a **customizable memory module** (see [here](.\u002Fagent_system\u002Fmemory)) that allows for flexibly choosing what history to include for each step. The input typically consists of the current observation along with a concise history summary at each step (see prompt [here](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002Fwebshop.py)). Developers can **freely define what to include, such as recent steps, key events, summaries, or external knowledge**. There's no requirement to concatenate the full history, and the input structure for each step is ***fully customizable***.\n\n- **Scalable for Very Long-Horizon Optimization**\n\n  Prior works like [RAGEN](https:\u002F\u002Fgithub.com\u002FRAGEN-AI\u002FRAGEN) and [Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1) concatenate the entire history of states and responses. This causes the context length to grow rapidly with the number of turns, making them difficult to scale to long-horizon scenarios. In contrast, `verl-agent` constructs inputs step-by-step. Each input is concise and customizable. This design keeps the context length almost constant over time, making `verl-agent` highly scalable for long-horizon scenarios (e.g., 30–50 steps in ALFWorld) without running into token limits or inefficiency.\n  \n- **Parallelized Gym-Style Environments and Group Environments**\n\n  `verl-agent` provides a gym-style interface with support for parallelized environments. This enables high-throughput rollouts, speeding up training. In addition, `verl-agent` introduces the concept of group environments. All environments within a group share identical initial states during `reset()`. This is especially useful for algorithms like GRPO and DAPO that require multiple rollouts on the same state. You can configure the number of rollouts per group using the `env.rollout.n` in [ppo_trainer.yaml](.\u002Fverl\u002Ftrainer\u002Fconfig\u002Fppo_trainer.yaml) config file.\n\n- **Support for Various Models**\n\n  `verl-agent` supports a wide range of LLMs, including `Qwen3`, `Qwen3-VL`, `Qwen2.5`, `LLaMA3.2`, `Qwen2.5-VL`, and others, allowing flexibility for various deployment needs.\n\n- **LoRA Fine-Tuning Support**\n\n  `verl-agent` provides support for [LoRA](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.09685) (Low-Rank Adaptation), significantly reducing computational cost. Now, `verl-agent` supports training 7B models using 2 H100 GPUs.\n\n- **Vision-Language Agent Support**\n\n  Beyond text-based agents, `verl-agent` also supports training vision-language agents. This enables multi-modal reasoning in environments where both visual perception and language understanding are required.\n\n- **Rich Suite of Environments**\n  \n  `verl-agent` offers a diverse set of interactive environments including [Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1) experiment, embodied AI environments like [ALFWorld](https:\u002F\u002Fgithub.com\u002Falfworld\u002Falfworld), visual games such as [Sokoban](https:\u002F\u002Fgithub.com\u002FmpSchrader\u002Fgym-sokoban) and [Gym Cards](https:\u002F\u002Fgithub.com\u002FRL4VLM\u002FRL4VLM\u002Fblob\u002Fmain\u002Fgym-cards\u002FREADME.md), and digital interface control tasks like [WebShop](https:\u002F\u002Fgithub.com\u002Fprinceton-nlp\u002FWebShop) and [AppWorld](https:\u002F\u002Fgithub.com\u002Fstonybrooknlp\u002Fappworld\u002F) (experimental). \n\n- **Diverse RL Algorithms**\n\n  `verl-agent` includes implementations of various RL algorithms, such as [GRPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300), [PPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06347), [DAPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2503.14476), [GSPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.18071), [RLOO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.14740) and our new state-of-the-art algorithm [GiGPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978). It also supports several variants enhanced with dynamic sampling and clip-higher techniques.\n\n# Results\n> ⚠️ Note: The performance of GiGPO has improved slightly after the \"[2025.06.03] Major Update.\" To reproduce the original paper results, please use the version released prior to the \"[2025.06.03] Major Update.\"\n\n| Algorithm          | Task         | Model      | Success Rate (Paper) | Training Log |\n|-------------------|--------------|--------------------------|-----------------------|-------------------------|\n| GiGPO | ALFWorld     | Qwen2.5-1.5B-Instruct    | 86.7%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F78zz4sc9) |\n| GiGPO | ALFWorld     | Qwen2.5-7B-Instruct      | 90.8%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F78zz4sc9) |\n| GiGPO | WebShop      | Qwen2.5-1.5B-Instruct    | 67.4%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fzfnvpvxe) |\n| GiGPO | WebShop      | Qwen2.5-7B-Instruct      | 75.2%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fzfnvpvxe) |\n| GiGPO | Sokoban [6x6]| Qwen2.5-VL-3B-Instruct   | 81.0%   | [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fxm92tyea) |\n| GiGPO | EZPoints     | Qwen2.5-VL-3B-Instruct   | 100.0%  |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fk0y51zei) |\n| GiGPO | NumberLine   | Qwen2-VL-2B-Instruct     | 100.0%  | [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F81qzsc3n) |\n\n\n\u003Ctable border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>Date\u003C\u002Fth>\n      \u003Cth>Method\u003C\u002Fth>\n      \u003Cth>NQ†\u003C\u002Fth>\n      \u003Cth>TriviaQA*\u003C\u002Fth>\n      \u003Cth>PopQA*\u003C\u002Fth>\n      \u003Cth>HotpotQA†\u003C\u002Fth>\n      \u003Cth>2Wiki*\u003C\u002Fth>\n      \u003Cth>MuSiQue*\u003C\u002Fth>\n      \u003Cth>Bamboogle*\u003C\u002Fth>\n      \u003Cth>Avg.\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd colspan=\"10\" align=\"center\">\u003Cb>Qwen2.5-3B-Instruct\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>R1-Instruct\u003C\u002Ftd>\u003Ctd>27.0\u003C\u002Ftd>\u003Ctd>53.7\u003C\u002Ftd>\u003Ctd>19.9\u003C\u002Ftd>\u003Ctd>23.7\u003C\u002Ftd>\u003Ctd>29.2\u003C\u002Ftd>\u003Ctd>7.2\u003C\u002Ftd>\u003Ctd>29.3\u003C\u002Ftd>\u003Ctd>27.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>Search-R1\u003C\u002Ftd>\u003Ctd>34.1\u003C\u002Ftd>\u003Ctd>54.5\u003C\u002Ftd>\u003Ctd>37.8\u003C\u002Ftd>\u003Ctd>32.4\u003C\u002Ftd>\u003Ctd>31.9\u003C\u002Ftd>\u003Ctd>10.3\u003C\u002Ftd>\u003Ctd>26.4\u003C\u002Ftd>\u003Ctd>32.5\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>ZeroSearch\u003C\u002Ftd>\u003Ctd>41.4\u003C\u002Ftd>\u003Ctd>57.4\u003C\u002Ftd>\u003Ctd>44.8\u003C\u002Ftd>\u003Ctd>27.4\u003C\u002Ftd>\u003Ctd>30.0\u003C\u002Ftd>\u003Ctd>9.8\u003C\u002Ftd>\u003Ctd>11.1\u003C\u002Ftd>\u003Ctd>31.7\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>StepSearch\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>34.5\u003C\u002Ftd>\u003Ctd>32.0\u003C\u002Ftd>\u003Ctd>17.4\u003C\u002Ftd>\u003Ctd>34.4\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>\u003Cb>GiGPO\u003C\u002Fb>\u003Ca href=\"https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F1dd48ymw\" target=\"_blank\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb\" alt=\"wandb link\"\u002F>\n    \u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>42.0\u003C\u002Ftd>\u003Ctd>59.5\u003C\u002Ftd>\u003Ctd>42.4\u003C\u002Ftd>\u003Ctd>36.9\u003C\u002Ftd>\u003Ctd>37.0\u003C\u002Ftd>\u003Ctd>12.6\u003C\u002Ftd>\u003Ctd>64.1\u003C\u002Ftd>\u003Ctd>42.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd colspan=\"10\" align=\"center\">\u003Cb>Qwen2.5-7B-Instruct\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>R1-Instruct\u003C\u002Ftd>\u003Ctd>21.0\u003C\u002Ftd>\u003Ctd>44.9\u003C\u002Ftd>\u003Ctd>17.1\u003C\u002Ftd>\u003Ctd>20.8\u003C\u002Ftd>\u003Ctd>27.5\u003C\u002Ftd>\u003Ctd>6.0\u003C\u002Ftd>\u003Ctd>19.2\u003C\u002Ftd>\u003Ctd>22.4\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>Search-R1\u003C\u002Ftd>\u003Ctd>39.3\u003C\u002Ftd>\u003Ctd>61.0\u003C\u002Ftd>\u003Ctd>39.7\u003C\u002Ftd>\u003Ctd>37.0\u003C\u002Ftd>\u003Ctd>40.1\u003C\u002Ftd>\u003Ctd>14.6\u003C\u002Ftd>\u003Ctd>36.8\u003C\u002Ftd>\u003Ctd>38.5\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>ZeroSearch\u003C\u002Ftd>\u003Ctd>43.6\u003C\u002Ftd>\u003Ctd>61.8\u003C\u002Ftd>\u003Ctd>51.5\u003C\u002Ftd>\u003Ctd>34.6\u003C\u002Ftd>\u003Ctd>35.2\u003C\u002Ftd>\u003Ctd>18.4\u003C\u002Ftd>\u003Ctd>27.8\u003C\u002Ftd>\u003Ctd>39.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>StepSearch\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>38.6\u003C\u002Ftd>\u003Ctd>36.6\u003C\u002Ftd>\u003Ctd>22.6\u003C\u002Ftd>\u003Ctd>40.0\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>\u003Cb>GiGPO\u003C\u002Fb>\u003Ca href=\"https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F1dd48ymw\" target=\"_blank\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb\" alt=\"wandb link\"\u002F>\n    \u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>46.4\u003C\u002Ftd>\u003Ctd>64.7\u003C\u002Ftd>\u003Ctd>46.1\u003C\u002Ftd>\u003Ctd>41.6\u003C\u002Ftd>\u003Ctd>43.6\u003C\u002Ftd>\u003Ctd>18.9\u003C\u002Ftd>\u003Ctd>68.9\u003C\u002Ftd>\u003Ctd>47.2\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\nWe have released our models on [HuggingFace](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Flangfeng01\u002Fverl-agent-684970e8f51babe2a6d98554).\n\n# Installation\n## Install veRL\n```bash\nconda create -n verl-agent python==3.12 -y\nconda activate verl-agent\n\npip3 install vllm==0.11.0\n\npip3 install flash-attn==2.7.4.post1 --no-build-isolation --no-cache-dir\npip install -e .\n```\n\n## Install Supported Environments\n> ⚠️ **Important:** \nTo run an agent in any of these environments, you must first install and configure the corresponding environment. We strongly recommend installing ***each environment in its own dedicated conda environment*** to avoid potential package version conflicts.\n\n### 1. ALFWorld\nInstall with pip:\n```bash\npip3 install gymnasium==0.29.1\npip3 install stable-baselines3==2.6.0\npip install alfworld\n```\n\nDownload PDDL & Game files and pre-trained MaskRCNN detector (will be stored in `~\u002F.cache\u002Falfworld\u002F`):\n```bash\nalfworld-download -f\n```\n\nUse `--extra` to download pre-trained checkpoints and seq2seq data.\n\nPlay a Textworld game:\n```bash\nalfworld-play-tw\n```\n---\n\n### 2. WebShop\nWebShop requires Python \u003C=3.10, so begin by creating a new `verl-agent-webshop` environment\n```bash\nconda create -n verl-agent-webshop python==3.10 -y\nconda activate verl-agent-webshop\n```\n\nInstall WebShop\n```bash\ncd .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fwebshop\u002Fwebshop\n.\u002Fsetup.sh -d all\n```\n\nNote: If you encounter issues with gdown, you may need to visit `https:\u002F\u002Fdrive.google.com\u002F`, get your Google Drive cookie, and paste it into `.cache\u002Fgdown\u002Fcookies.txt`.\nOr you may need to manually download the files.\n\nAfter WebShop is installed, return to the root directory of the repository and install the verl package in `verl-agent`:\n```bash\ncd repo_root\u002F\npip3 install torch==2.6.0 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu124\npip3 install flash-attn==2.7.4.post1 --no-build-isolation\npip3 install -e .\npip3 install vllm==0.8.2\n# spacy 3.7.2 requires typer\u003C0.10.0,>=0.3.0, but you have typer 0.15.2 which is incompatible.\n# weasel 0.3.4 requires typer\u003C0.10.0,>=0.3.0, but you have typer 0.15.2 which is incompatible.\n```\nThe warnings can be safely ignored.\n\n---\n\n### 3. Search\n```bash\ncd .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fsearch\u002Fthird_party\npip install -e .\npip install gym==0.26.2\n```\n\nPrepare dataset (data will be saved at `~\u002Fdata\u002FsearchR1_processed_direct`):\n```bash\ncd repo_root\u002F\npython examples\u002Fdata_preprocess\u002Fpreprocess_search_r1_dataset.py\n```\n\n\nSince faiss-gpu is not available via pip, we setup a separate conda environment for the local retrieval server. Running this server will use around 6GB of GPU memory per GPU, so make sure to account for this in your training run configuration. Build Retriever environments:\n```bash\n# Create and activate the retriever environment with Python 3.10\nconda create -n retriever python=3.10 -y\nconda activate retriever\n\n# Install PyTorch (with GPU support) and related libraries\nconda install numpy==1.26.4 # needed to stop incompatible version of numpy from being installed via pip\npip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu124\n\n# Install other Python packages\npip install transformers datasets pyserini huggingface_hub\n\n# Install the GPU version of faiss\nconda install faiss-gpu==1.8.0 -c pytorch -c nvidia -y\n\n# Install the API service framework\npip install uvicorn fastapi\n```\n\nDownload the index:\n```bash\nconda activate retriever\n\nlocal_dir=~\u002Fdata\u002FsearchR1\npython examples\u002Fsearch\u002Fsearchr1_download.py --local_dir $local_dir\ncat $local_dir\u002Fpart_* > $local_dir\u002Fe5_Flat.index\ngzip -d $local_dir\u002Fwiki-18.jsonl.gz\n```\n\nStart the local flat e5 retrieval server: \n```bash\nconda activate retriever\n\n# redirect the output to a file to avoid cluttering the terminal\n# we have observed outputting to the terminal causing spikes in server response times\nbash examples\u002Fsearch\u002Fretriever\u002Fretrieval_launch.sh > retrieval_server.log \n```\n\n### 4. Sokoban\n```bash\npip install matplotlib\npip install gym==0.26.2\npip install gym_sokoban==0.0.6\n```\n---\n### 5. Gym Cards\n\n```bash\ncd repo_root\u002F\npip3 install -e .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fgym_cards\u002Fgym-cards\u002F\npip3 install gymnasium==0.29.1\npip3 install stable-baselines3==2.6.0\n```\n---\n### 6. AppWorld (Experimental)\nInstall AppWorld package\n```bash\ncd repo_root\u002F\npip install git+https:\u002F\u002Fgithub.com\u002FStonyBrookNLP\u002Fappworld.git\nappworld install\npip install -e .\n```\nYou can ignore the warning of incompatibility for appworld, because we don't run appworld in `verl-agent` environment.\n\nCreate a dedicated conda environment `appworld` for the AppWorld server:\n```bash\nconda create -n appworld python=3.12 -y\nconda activate appworld\npip install git+https:\u002F\u002Fgithub.com\u002FStonyBrookNLP\u002Fappworld.git\nappworld install\nappworld download data\n```\n\n\n\u003C!-- > ⚠️ **Important:**  \nTo run an agent in any of these environments, you must first install and configure the corresponding environment. Please refer to the [Environment Setup Guide](agent_system\u002Fenvironments\u002FREADME.md) for step-by-step installation instructions. -->\n\n# Run Examples\n## RL Training\nWe provide out-of-the-box scripts in the [\"examples\u002F\"](.\u002Fexamples\u002F) directory for training agents in different environments.\n\nHere are some examples:\n### 1. GiGPO\nGiGPO is our novel algorithm designed to support fine-grained credit assignment in long-horizon LLM agent training. It introduces a two-level grouping mechanism:\n- Episode-level groups capture overall task success via total returns (like GRPO).\n- Step-level groups gather repeated states across trajectories to compute relative advantages for individual actions.\n\nGiGPO is fully critic-free, maintains the same GPU memory footprint and LLM rollout cost as GRPO, yet achieves significantly better training efficiency and performance.\n\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_webshop.sh # WebShop\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_search.sh # Search\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_sokoban.sh # Sokoban\n```\n### 2. GRPO\nGRPO is a critic-free algorithm that estimates relative advantages based on a group of full episode trajectories.\n```bash\nbash examples\u002Fgrpo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgrpo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 3. PPO\nPPO is a classic actor-critic algorithm that updates the policy using a clipped objective to ensure stable learning. It requires a separate value network (critic) to estimate state values.\n```bash\nbash examples\u002Fppo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fppo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 4. RLOO\nFor RLOO, we use a leave-one-out estimate and the PPO-clip update (instead of the REINFORCE update), making it closer to [LOOP](https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.01600).\n```bash\nbash examples\u002Frloo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Frloo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 5. DAPO\nDAPO enhances GRPO with techniques like dynamic sampling and clip-higher.\n```bash\nbash examples\u002Fdapo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fdapo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 6. GiGPO (dynamic)\nGiGPO uses dynamic sampling and clip-higher from DAPO\n```bash\nbash examples\u002Fgigpo_dynamic_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgigpo_dynamic_trainer\u002Frun_webshop.sh # WebShop\n```\n\n## LoRA\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_alfworld_lora.sh\n```\n\n## Prompt-based Agent with GPT-4o\nWe also provide a prompt-based GPT-4o agent.\n```bash\nbash examples\u002Fprompt_agent\u002Frun_gpt4o_agent.sh\n```\n\n# FAQ\n\n## 1. Customize Memory Module\n`verl-agent` supports a customizable and flexible memory system for managing and formatting interaction history between the agent and the environment. We provide a [SimpleMemory](.\u002Fagent_system\u002Fmemory\u002Fmemory.py) implementation as a default starting point. This memory module is invoked within [env_manager.py](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py) (i.e., `build_text_obs()`) to construct the observation at each step. \n\nDevelopers are encouraged to extend this module with custom memory strategies, such as dynamic summarization, selective memory retention, or external knowledge integration, to improve the handling of long-horizon interaction histories.\n\n## 2. Data Preparation\nFor most environments (e.g., AFLWorld, WebShop, Sokoban), we only use data preparation to indicate the modality, either \"text\" or \"visual\". For example, if the task is purely text-based, the data will just be an empty string \"\". If it involves visual input, it will be \"\\\u003Cimage\\>\". As for agent input (including task instruction, observation and prompt), we follow the classical RL pipeline. That means the input of LLM agent comes from the environment's feedback through `env.step()`. In the case of search-r1 experiments where tasks are drawn from a dataset, we leverage the [env_kwargs](.\u002Fexamples\u002Fdata_preprocess\u002Fpreprocess_search_r1_dataset.py#L90) parameter to pass tasks into the environment, using: [envs.reset(kwargs=gen_batch.non_tensor_batch.pop('env_kwargs', None))](.\u002Fagent_system\u002Fmulti_turn_rollout\u002Frollout_loop.py#L301).\n\n## 3. Customize Your Own Prompts  \nWe adopt a simple and minimal prompt format in our implementation. For example, in the WebShop environment:\n```\nYou are an expert autonomous agent operating in the WebShop e‑commerce environment.\nYour task is to: {task_description}. Prior to this step, you have already taken {step_count} step(s). Below are the most recent {history_length} observations and the corresponding actions you took: {action_history}. You are now at step {current_step} and your current observation is: {current_observation}. Your admissible actions of the current situation are: [{available_actions}].\n\nNow it's your turn to take one action for the current step.\nYou should first reason step-by-step about the current situation, then think carefully which admissible action best advances the shopping goal. This reasoning process MUST be enclosed within \u003Cthink> \u003C\u002Fthink> tags. Once you've finished your reasoning, you should choose an admissible action for current step and present it within \u003Caction> \u003C\u002Faction> tags.\n```\nIf you wish to further enhance or customize them, you can find and edit them in: [agent_system\u002Fenvironments\u002Fprompts](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002F).\n\n\n## 4. Add New Environments\nTo add a new environment, \n1. Create your environment package (gym-style interface and multi-process execution) in [agent_system\u002Fenvironments\u002Fenv_package\u002F](.\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002F)\n2. Define the corresponding prompt files in [agent_system\u002Fenvironments\u002Fprompts](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002F). \n3. Register your new environment in [env_manager.py](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py), following the structure defined by [EnvironmentManagerBase](.\u002Fagent_system\u002Fenvironments\u002Fbase.py#L19). \n\nFor a reference implementation, see the webshop environment:\n1. Environment package: [webshop package](.\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fwebshop)\n2. Prompts: [webshop prompts](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002Fwebshop.py)\n3. Environment Manager: [webshop env manager](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py#L304)\n\n\n# Contributing\n\nWe welcome and appreciate all contributions! If you have ideas to improve `verl-agent`, please feel free to submit a pull request (PR).\n\nExample contributions include:\n- **AppWorld Bug Fixes**: Fixed compatibility issues and ensured stable integration with the experimental AppWorld environment.\n- **Asynchronous Rollout**: Improved training efficiency and throughput by supporting asynchronous rollout pipelines.\n- **Additional Environments**: Added support for additional interactive environments to expand the benchmark coverage and task diversity.\n\n# Acknowledgement\n\n`verl-agent` codebase is built upon [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl). \nThe supported environments are adapted from [ALFWorld](https:\u002F\u002Fgithub.com\u002Falfworld\u002Falfworld), [Sokoban](https:\u002F\u002Fgithub.com\u002FmpSchrader\u002Fgym-sokoban), [SkyRL-Gym](https:\u002F\u002Fgithub.com\u002FNovaSky-AI\u002FSkyRL\u002Ftree\u002Fmain\u002Fskyrl-gym), [Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1), [Gym Cards](https:\u002F\u002Fgithub.com\u002FRL4VLM\u002FRL4VLM\u002Ftree\u002Fmain\u002Fgym-cards), [WebShop](https:\u002F\u002Fgithub.com\u002Fprinceton-nlp\u002FWebShop), and [AppWorld](https:\u002F\u002Fgithub.com\u002Fstonybrooknlp\u002Fappworld). We extend our gratitude to the authors and contributors of these projects for their valuable work.\n\nWe would also like to thank the following contributors for their specific improvements to this project: WebShop bug fix ([@YSLIU627](https:\u002F\u002Fgithub.com\u002FYSLIU627)), GSPO support ([@MakeKJ](https:\u002F\u002Fgithub.com\u002FMakeKJ)), Qwen3-VL support ([@FabianSchuetze](https:\u002F\u002Fgithub.com\u002FFabianSchuetze)).\n\n# Awesome Work Powered by verl-agent & GiGPO\n\n- [HGPO](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2602.22817): **Hierarchy-of-Groups** Policy Optimization for Long-Horizon Agentic Tasks. \n- [Dr. MAS](https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.08847): Stable **end-to-end RL** post-training for **multi-agent LLM systems**. [![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FlangfengQ\u002FDrMAS)](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS)\n- [AgentOCR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.04786): Efficient token compression by rendering multi-turn agent history into images and adopting agentic self-compression.\n- [OpenManus-RL](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL): An open-source framework for live-stream reinforcement learning tuning of LLM agents. [![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FOpenManus\u002FOpenManus-RL)](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL)\n- [RLVMR](https:\u002F\u002Fgithub.com\u002FTencent\u002FDigitalHuman\u002Ftree\u002Fmain\u002FRLVMR): Providing agents with fine-grained meta-reasoning rewards in long-horizon tasks. [![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTencent\u002FDigitalHuman)](https:\u002F\u002Fgithub.com\u002FTencent\u002FDigitalHuman\u002Ftree\u002Fmain\u002FRLVMR)\n- [UI-S1](https:\u002F\u002Fgithub.com\u002FX-PLUG\u002FMobileAgent\u002Ftree\u002Fmain\u002FUI-S1): A GUI automation model using semi-online reinforcement learning for stable long-horizon task execution. [![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FX-PLUG\u002FMobileAgent)](https:\u002F\u002Fgithub.com\u002FX-PLUG\u002FMobileAgent\u002Ftree\u002Fmain\u002FUI-S1)\n- [Agent Learning via Early Experience](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2510.08558): A scalable, reward-free paradigm that bridges imitation learning and RL via implicit world modeling and self-reflection.\n- [SPEAR](https:\u002F\u002Fgithub.com\u002FTencentYoutuResearch\u002FSPEAR): **Self-imitation** with **Progressive Exploration** for Agentic Reinforcement Learning (ICLR 2026). [![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTencentYoutuResearch\u002FSPEAR)](https:\u002F\u002Fgithub.com\u002FTencentYoutuResearch\u002FSPEAR\u002Ftree\u002Fmain\u002F)\n\n# Citation\nIf you find `verl-agent` and `GiGPO` useful in your research or applications, we would appreciate it if you could cite our work:\n\n```\n@article{feng2025group,\n  title={Group-in-Group Policy Optimization for LLM Agent Training},\n  author={Feng, Lang and Xue, Zhenghai and Liu, Tingcong and An, Bo},\n  journal={arXiv preprint arXiv:2505.10978},\n  year={2025}\n}\n```\n\n# Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_e00fe586d3d4.png)](https:\u002F\u002Fwww.star-history.com\u002F#langfengQ\u002Fverl-agent&Date)\n","\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_f8d67632b8d5.png\" alt=\"logo\" width=\"55%\">\n\u003C\u002Fp>\n\n\n\u003Ch3 align=\"center\">\n\u003Cb>基于组内分组策略优化的大型语言模型智能体训练\u003C\u002Fb>\n\u003Cbr>\n\u003Cb>NeurIPS 2025\u003C\u002Fb>\n\u003C\u002Fh3>\n\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-Paper-red?style=flat-square&logo=arxiv\" alt=\"arXiv论文\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Project-181717?style=flat-square&logo=github\" alt=\"GitHub项目\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Flangfeng01\u002Fverl-agent-684970e8f51babe2a6d98554\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingFace-Models-yellow?style=flat-square&logo=huggingface\" alt=\"HuggingFace模型\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Flangfengq\u002Fstatus\u002F1930848580505620677\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-Channel-000000?style=flat-square&logo=x\" alt=\"Twitter频道\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fblob\u002Fmaster\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg?style=flat-square\" alt=\"许可证\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FlangfengQ\u002Fverl-agent?style=flat-square&color=green\" alt=\"GitHub问题\">\u003C\u002Fa>\n  &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fstargazers\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FlangfengQ\u002Fverl-agent?style=social\" alt=\"仓库星标\">\u003C\u002Fa>\n  &nbsp;\n\u003C\u002Fp>\n\n`verl-agent` 是 [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl) 的扩展，专门用于通过强化学习（RL）训练**大型语言模型（LLM）智能体**。\n\n与以往简单地拼接完整交互历史的方法不同，`verl-agent` 提出了**与步骤无关的多轮展开机制**，允许对每一步的输入结构、历史管理和记忆模块进行**完全自定义**。这种设计使 `verl-agent` 在**超长时序、多轮次的强化学习训练**中具有极高的可扩展性（例如，ALFWorld中的任务可能需要多达50步才能完成）。\n\n`verl-agent` 提供了**多样化的强化学习算法**（包括我们新提出的 GiGPO 算法）以及**丰富的智能体环境套件**，支持在视觉和文本任务中开发推理型智能体。\n\n# 新闻\n- [2026.02] `HGPO` 被 [ICLR 2026](https:\u002F\u002Ficlr.cc\u002F) 接受！🎉🎉🎉 [[论文](https:\u002F\u002Fopenreview.net\u002Fforum?id=T8Dev99qnz)] [[代码](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Ftree\u002Fmaster\u002Frecipe\u002Fhgpo)]\n- [2026.02] 🔥 我们开源了 [Dr. MAS](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS)，它支持**多智能体 LLM 系统**的稳定端到端强化学习后训练！[[论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2602.08847)] [[代码](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS)]\n- [2025.12] 支持 `Qwen3-VL`！示例请见 [这里](.\u002Fexamples\u002Fgigpo_trainer\u002Frun_sokoban_qwen3vl.sh)。\n- [2025.09] `GiGPO` 现已被 [ROLL](https:\u002F\u002Fgithub.com\u002Falibaba\u002FROLL) 支持！[[文档](https:\u002F\u002Falibaba.github.io\u002FROLL\u002Fdocs\u002FEnglish\u002FUserGuide\u002Fagentic\u002Fagentic_GiGPO)] [[训练曲线](https:\u002F\u002Fgithub.com\u002Falibaba\u002FROLL\u002Fissues\u002F173#issuecomment-3332106534)]。\n- [2025.09] `verl-agent` 风格的训练流程现已被 [OpenManus-RL](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL) 支持！\n- [2025.09] [GiGPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978) 被 [NeurIPS 2025](https:\u002F\u002Fneurips.cc\u002F) 接受！🎉🎉🎉\n- [2025.08] 增加了**Search-R1 实验**和**基于相似性的 GiGPO**！查看 GiGPO 在 Search-R1 实验中的优异表现 [这里](#results)。\n- [2025.07] `GiGPO` 和 `verl-agent` 将于 7 月 11 日在 LF AI & Data Singapore 主办的 [Agent for SWE 聚会](https:\u002F\u002Flu.ma\u002Fe498qhsi) 上进行演讲。\n- [2025.07] 添加了模块化内存管理器。详情请见 [这里](.\u002Fagent_system\u002Fmemory)。\n- [2025.06] ***重大更新***：合并了最新版 [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl) 中的所有功能。例如，`verl-agent` 现在支持 Qwen3、LoRA、REINFORCE++ 等。欢迎探索！\n- [2025.05] 代码发布，并发表了关于 `GiGPO` 的论文。\n\n# 快速功能概览\n| 功能类别 | 支持的能力|\n| - | - |\n| **交互**          | ✅ 多轮智能体-环境交互\u003Cbr>✅ 分步交互\u003Cbr>✅ 可扩展至长时序任务 |\n| **记忆**               | ✅ 完全可定制的记忆模块\u003Cbr>✅ 灵活的历史管理|\n| **输入灵活性**    | ✅ 每步输入结构完全可定制 |\n| **执行**            | ✅ 并行化的 Gym 环境\u003Cbr>✅ 支持群体环境（用于群体强化学习）|\n| **模型支持**        | ✅ Qwen3\u003Cbr>✅ Qwen3-VL\u003Cbr>✅ Qwen2.5\u003Cbr>✅ Qwen2.5-VL\u003Cbr>✅ LLaMA3.2\u003Cbr>以及其他 |\n| **模态**             | ✅ 纯文本\u003Cbr>✅ 文本+图像（多模态） |\n| **轻量级训练** | ✅ 支持 LoRA 训练 |\n| **环境**         | ✅ ALFWorld\u003Cbr>✅ WebShop\u003Cbr> ✅ Search (工具调用)\u003Cbr> ✅ Sokoban\u003Cbr>✅ Gym Cards\u003Cbr>✅ AppWorld |\n| **强化学习算法**        | ✅ GiGPO\u003Cbr>✅ GRPO\u003Cbr>✅ PPO\u003Cbr>✅ DAPO\u003Cbr>✅ GSPO\u003Cbr>✅ RLOO\u003Cbr>✅ REINFORCE++\u003Cbr>✅ 支持动态采样与裁剪更高\u003Cbr>以及其他 |\n| **基于提示的智能体**   | ✅ 基于 GPT-4o 提示的智能体 |\n\n# 框架对比\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_54ae05ab2f23.png\" alt=\"框架\" width=\"100%\">\n\u003C\u002Fp>\n\n\n# 目录\n\n- [关键特性](#key-features)\n- [结果](#results)  \n- [安装](#installation)  \n  - [安装 veRL](#install-verl)  \n  - [安装支持的环境](#install-supported-environments)  \n    - [1. ALFWorld](#1-alfworld)  \n    - [2. WebShop](#2-webshop)\n    - [3. Search](#3-search)  \n    - [4. Sokoban](#4-sokoban)  \n    - [5. Gym Cards](#5-gym-cards)  \n    - [6. AppWorld（实验性）](#6-appworld-experimental)  \n- [运行示例](#run-examples)  \n  - [强化学习训练](#rl-training)  \n    - [1. GiGPO](#1-gigpo)  \n    - [2. GRPO](#2-grpo)  \n    - [3. PPO](#3-ppo)  \n    - [4. RLOO](#4-rloo)  \n    - [5. DAPO](#5-dapo)  \n    - [6. GiGPO（动态）](#6-gigpo-dynamic)\n  - [LoRA](#lora)\n  - [基于 GPT-4o 提示的智能体](#prompt-based-agent-with-gpt-4o)\n- [常见问题](#faq)\n  - [1. 自定义记忆模块](#1-customize-memory-module)\n  - [2. 数据准备](#2-data-preparation)\n  - [3. 自定义自己的提示](#3-customize-your-own-prompts)\n  - [4. 添加新环境](#4-add-new-environments)\n- [贡献](#contributing)\n- [致谢](#acknowledgement)\n- [由 verl-agent 和 GiGPO 驱动的优秀工作](#awesome-work-powered-by-verl-agent--gigpo)\n- [引用](#citation)\n- [星标历史](#star-history)\n\n# 核心特性\n\n- **多轮智能体与环境交互**\n\n  `verl-agent` 支持智能体与环境之间的多步交互循环。每一步后，智能体都会感知环境反馈，从而为强化学习奠定基础。\n\n- **完全可自定义的记忆模块与每步输入结构**\n\n  `verl-agent` 拥有**可自定义的记忆模块**（详见 [这里](.\u002Fagent_system\u002Fmemory)），允许灵活选择每一步需要包含的历史信息。通常，每一步的输入由当前观测以及一段简洁的历史摘要组成（提示请参见 [这里](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002Fwebshop.py)）。开发者可以**自由定义要包含的内容，例如最近的几步、关键事件、摘要或外部知识**。无需拼接完整的历史记录，每一步的输入结构都***完全可自定义***。\n\n- **可扩展至超长时序优化场景**\n\n  先前的工作，如 [RAGEN](https:\u002F\u002Fgithub.com\u002FRAGEN-AI\u002FRAGEN) 和 [Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1)，会将状态和响应的整个历史序列拼接在一起。这会导致上下文长度随交互轮次迅速增长，难以扩展到长时序场景。相比之下，`verl-agent` 采用逐步构建输入的方式，每一步的输入都简洁且可定制。这种设计使上下文长度几乎保持恒定，从而使 `verl-agent` 在长时序场景中（例如 ALFWorld 中的 30–50 步）具有极高的可扩展性，而不会遇到 token 限制或效率问题。\n\n- **并行化的 Gym 风格环境与分组环境**\n\n  `verl-agent` 提供了支持并行化环境的 Gym 风格接口，能够实现高吞吐量的模拟运行，从而加速训练。此外，`verl-agent` 还引入了分组环境的概念：在一个分组内的所有环境中，`reset()` 时的初始状态完全相同。这对于 GRPO 和 DAPO 等需要在相同状态下进行多次模拟的算法尤为有用。您可以通过配置文件 [ppo_trainer.yaml](.\u002Fverl\u002Ftrainer\u002Fconfig\u002Fppo_trainer.yaml) 中的 `env.rollout.n` 来设置每个分组的模拟次数。\n\n- **支持多种模型**\n\n  `verl-agent` 支持广泛的大型语言模型，包括 `Qwen3`、`Qwen3-VL`、`Qwen2.5`、`LLaMA3.2`、`Qwen2.5-VL` 等，满足不同部署需求的灵活性。\n\n- **LoRA 微调支持**\n\n  `verl-agent` 提供对 [LoRA](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.09685)（低秩适应）的支持，显著降低计算成本。现在，使用 2 张 H100 GPU 卡即可训练 7B 参数规模的模型。\n\n- **视觉-语言智能体支持**\n\n  除了文本型智能体外，`verl-agent` 还支持视觉-语言智能体的训练，从而在需要同时具备视觉感知和语言理解能力的环境中实现多模态推理。\n\n- **丰富的环境套件**\n\n  `verl-agent` 提供多样化的交互式环境，包括 [Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1) 实验、具身 AI 环境如 [ALFWorld](https:\u002F\u002Fgithub.com\u002Falfworld\u002Falfworld)、视觉类游戏如 [Sokoban](https:\u002F\u002Fgithub.com\u002FmpSchrader\u002Fgym-sokoban) 和 [Gym Cards](https:\u002F\u002Fgithub.com\u002FRL4VLM\u002FRL4VLM\u002Fblob\u002Fmain\u002Fgym-cards\u002FREADME.md)，以及数字界面控制任务，例如 [WebShop](https:\u002F\u002Fgithub.com\u002Fprinceton-nlp\u002FWebShop) 和 [AppWorld](https:\u002F\u002Fgithub.com\u002Fstonybrooknlp\u002Fappworld\u002F)（实验性）。\n\n- **多样化的强化学习算法**\n\n  `verl-agent` 包含多种强化学习算法的实现，例如 [GRPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03300)、[PPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06347)、[DAPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2503.14476)、[GSPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.18071)、[RLOO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.14740)，以及我们最新的最先进算法 [GiGPO](https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.10978)。此外，还支持若干结合动态采样和 clip-higher 技术的变体。\n\n# 结果\n> ⚠️ 注意：在“[2025.06.03] 主要更新”之后，GiGPO 的性能略有提升。若需复现原始论文结果，请使用该“[2025.06.03] 主要更新”之前发布的版本。\n\n| 算法          | 任务         | 模型      | 成功率（论文） | 训练日志 |\n|-------------------|--------------|--------------------------|-----------------------|-------------------------|\n| GiGPO | ALFWorld     | Qwen2.5-1.5B-Instruct    | 86.7%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F78zz4sc9) |\n| GiGPO | ALFWorld     | Qwen2.5-7B-Instruct      | 90.8%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F78zz4sc9) |\n| GiGPO | WebShop      | Qwen2.5-1.5B-Instruct    | 67.4%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fzfnvpvxe) |\n| GiGPO | WebShop      | Qwen2.5-7B-Instruct      | 75.2%   |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fzfnvpvxe) |\n| GiGPO | Sokoban [6x6]| Qwen2.5-VL-3B-Instruct   | 81.0%   | [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fxm92tyea) |\n| GiGPO | EZPoints     | Qwen2.5-VL-3B-Instruct   | 100.0%  |  [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002Fk0y51zei) |\n| GiGPO | NumberLine   | Qwen2-VL-2B-Instruct     | 100.0%  | [![wandb](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb)](https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F81qzsc3n) |\n\n\n\u003Ctable border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>日期\u003C\u002Fth>\n      \u003Cth>方法\u003C\u002Fth>\n      \u003Cth>NQ†\u003C\u002Fth>\n      \u003Cth>TriviaQA*\u003C\u002Fth>\n      \u003Cth>PopQA*\u003C\u002Fth>\n      \u003Cth>HotpotQA†\u003C\u002Fth>\n      \u003Cth>2Wiki*\u003C\u002Fth>\n      \u003Cth>MuSiQue*\u003C\u002Fth>\n      \u003Cth>Bamboogle*\u003C\u002Fth>\n      \u003Cth>平均\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd colspan=\"10\" align=\"center\">\u003Cb>Qwen2.5-3B-Instruct\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>R1-Instruct\u003C\u002Ftd>\u003Ctd>27.0\u003C\u002Ftd>\u003Ctd>53.7\u003C\u002Ftd>\u003Ctd>19.9\u003C\u002Ftd>\u003Ctd>23.7\u003C\u002Ftd>\u003Ctd>29.2\u003C\u002Ftd>\u003Ctd>7.2\u003C\u002Ftd>\u003Ctd>29.3\u003C\u002Ftd>\u003Ctd>27.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>Search-R1\u003C\u002Ftd>\u003Ctd>34.1\u003C\u002Ftd>\u003Ctd>54.5\u003C\u002Ftd>\u003Ctd>37.8\u003C\u002Ftd>\u003Ctd>32.4\u003C\u002Ftd>\u003Ctd>31.9\u003C\u002Ftd>\u003Ctd>10.3\u003C\u002Ftd>\u003Ctd>26.4\u003C\u002Ftd>\u003Ctd>32.5\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>ZeroSearch\u003C\u002Ftd>\u003Ctd>41.4\u003C\u002Ftd>\u003Ctd>57.4\u003C\u002Ftd>\u003Ctd>44.8\u003C\u002Ftd>\u003Ctd>27.4\u003C\u002Ftd>\u003Ctd>30.0\u003C\u002Ftd>\u003Ctd>9.8\u003C\u002Ftd>\u003Ctd>11.1\u003C\u002Ftd>\u003Ctd>31.7\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>StepSearch\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>34.5\u003C\u002Ftd>\u003Ctd>32.0\u003C\u002Ftd>\u003Ctd>17.4\u003C\u002Ftd>\u003Ctd>34.4\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>\u003Cb>GiGPO\u003C\u002Fb>\u003Ca href=\"https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F1dd48ymw\" target=\"_blank\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb\" alt=\"wandb link\"\u002F>\n    \u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>42.0\u003C\u002Ftd>\u003Ctd>59.5\u003C\u002Ftd>\u003Ctd>42.4\u003C\u002Ftd>\u003Ctd>36.9\u003C\u002Ftd>\u003Ctd>37.0\u003C\u002Ftd>\u003Ctd>12.6\u003C\u002Ftd>\u003Ctd>64.1\u003C\u002Ftd>\u003Ctd>42.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd colspan=\"10\" align=\"center\">\u003Cb>Qwen2.5-7B-Instruct\u003C\u002Fb>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>R1-Instruct\u003C\u002Ftd>\u003Ctd>21.0\u003C\u002Ftd>\u003Ctd>44.9\u003C\u002Ftd>\u003Ctd>17.1\u003C\u002Ftd>\u003Ctd>20.8\u003C\u002Ftd>\u003Ctd>27.5\u003C\u002Ftd>\u003Ctd>6.0\u003C\u002Ftd>\u003Ctd>19.2\u003C\u002Ftd>\u003Ctd>22.4\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.03\u003C\u002Ftd>\u003Ctd>Search-R1\u003C\u002Ftd>\u003Ctd>39.3\u003C\u002Ftd>\u003Ctd>61.0\u003C\u002Ftd>\u003Ctd>39.7\u003C\u002Ftd>\u003Ctd>37.0\u003C\u002Ftd>\u003Ctd>40.1\u003C\u002Ftd>\u003Ctd>14.6\u003C\u002Ftd>\u003Ctd>36.8\u003C\u002Ftd>\u003Ctd>38.5\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>ZeroSearch\u003C\u002Ftd>\u003Ctd>43.6\u003C\u002Ftd>\u003Ctd>61.8\u003C\u002Ftd>\u003Ctd>51.5\u003C\u002Ftd>\u003Ctd>34.6\u003C\u002Ftd>\u003Ctd>35.2\u003C\u002Ftd>\u003Ctd>18.4\u003C\u002Ftd>\u003Ctd>27.8\u003C\u002Ftd>\u003Ctd>39.1\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>StepSearch\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\u003Ctd>38.6\u003C\u002Ftd>\u003Ctd>36.6\u003C\u002Ftd>\u003Ctd>22.6\u003C\u002Ftd>\u003Ctd>40.0\u003C\u002Ftd>\u003Ctd>-\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>2025.05\u003C\u002Ftd>\u003Ctd>\u003Cb>GiGPO\u003C\u002Fb>\u003Ca href=\"https:\u002F\u002Fapi.wandb.ai\u002Flinks\u002Flangfeng-cs-nanyang-technological-university-singapore\u002F1dd48ymw\" target=\"_blank\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FW%26B-view-FFBE00?logo=wandb\" alt=\"wandb link\"\u002F>\n    \u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>46.4\u003C\u002Ftd>\u003Ctd>64.7\u003C\u002Ftd>\u003Ctd>46.1\u003C\u002Ftd>\u003Ctd>41.6\u003C\u002Ftd>\u003Ctd>43.6\u003C\u002Ftd>\u003Ctd>18.9\u003C\u002Ftd>\u003Ctd>68.9\u003C\u002Ftd>\u003Ctd>47.2\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n我们已在 [HuggingFace](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Flangfeng01\u002Fverl-agent-684970e8f51babe2a6d98554) 上发布了我们的模型。\n\n# 安装\n## 安装 veRL\n```bash\nconda create -n verl-agent python==3.12 -y\nconda activate verl-agent\n\npip3 install vllm==0.11.0\n\npip3 install flash-attn==2.7.4.post1 --no-build-isolation --no-cache-dir\npip install -e .\n```\n\n## 安装支持的环境\n> ⚠️ **重要提示：**\n要在这些环境中运行智能体，您必须先安装并配置相应的环境。我们强烈建议将***每个环境分别安装在独立的 conda 环境中***，以避免潜在的包版本冲突。\n\n### 1. ALFWorld\n使用 pip 安装：\n```bash\npip3 install gymnasium==0.29.1\npip3 install stable-baselines3==2.6.0\npip install alfworld\n```\n\n下载 PDDL 和游戏文件以及预训练的 MaskRCNN 检测器（将存储在 `~\u002F.cache\u002Falfworld\u002F` 中）：\n```bash\nalfworld-download -f\n```\n\n使用 `--extra` 下载预训练检查点和 seq2seq 数据。\n\n玩一个 Textworld 游戏：\n```bash\nalfworld-play-tw\n```\n---\n\n### 2. WebShop\nWebShop 需要 Python \u003C=3.10，因此请先创建一个新的 `verl-agent-webshop` 环境：\n```bash\nconda create -n verl-agent-webshop python==3.10 -y\nconda activate verl-agent-webshop\n```\n\n安装 WebShop：\n```bash\ncd .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fwebshop\u002Fwebshop\n.\u002Fsetup.sh -d all\n```\n\n注意：如果遇到 gdown 相关问题，您可能需要访问 `https:\u002F\u002Fdrive.google.com\u002F`，获取您的 Google Drive cookie，并将其粘贴到 `.cache\u002Fgdown\u002Fcookies.txt` 文件中。或者您也可以手动下载这些文件。\n\nWebShop 安装完成后，返回仓库根目录，在 `verl-agent` 中安装 verl 包：\n```bash\ncd repo_root\u002F\npip3 install torch==2.6.0 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu124\npip3 install flash-attn==2.7.4.post1 --no-build-isolation\npip3 install -e .\npip3 install vllm==0.8.2\n# spacy 3.7.2 要求 typer\u003C0.10.0,>=0.3.0，但您当前的 typer 版本为 0.15.2，这与要求不兼容。\n# weasel 0.3.4 也要求 typer\u003C0.10.0,>=0.3.0，而您目前的 typer 版本同样不兼容。\n```\n这些警告可以安全地忽略。\n\n---\n\n### 3. 搜索\n```bash\ncd .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fsearch\u002Fthird_party\npip install -e .\npip install gym==0.26.2\n```\n\n准备数据集（数据将保存在 `~\u002Fdata\u002FsearchR1_processed_direct`）：\n```bash\ncd repo_root\u002F\npython examples\u002Fdata_preprocess\u002Fpreprocess_search_r1_dataset.py\n```\n\n\n由于 pip 中无法直接获取 faiss-gpu，我们为本地检索服务器单独搭建了一个 conda 环境。运行该服务器时，每块 GPU 大约会占用 6GB 显存，请务必在训练配置中考虑到这一点。构建检索环境：\n```bash\n# 创建并激活 Python 3.10 的检索环境\nconda create -n retriever python=3.10 -y\nconda activate retriever\n\n# 安装支持 GPU 的 PyTorch 及相关库\nconda install numpy==1.26.4 # 防止通过 pip 安装不兼容版本的 numpy\npip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu124\n\n# 安装其他 Python 包\npip install transformers datasets pyserini huggingface_hub\n\n# 安装 GPU 版本的 faiss\nconda install faiss-gpu==1.8.0 -c pytorch -c nvidia -y\n\n# 安装 API 服务框架\npip install uvicorn fastapi\n```\n\n下载索引：\n```bash\nconda activate retriever\n\nlocal_dir=~\u002Fdata\u002FsearchR1\npython examples\u002Fsearch\u002Fsearchr1_download.py --local_dir $local_dir\ncat $local_dir\u002Fpart_* > $local_dir\u002Fe5_Flat.index\ngzip -d $local_dir\u002Fwiki-18.jsonl.gz\n```\n\n启动本地 flat e5 检索服务器：\n```bash\nconda activate retriever\n\n# 将输出重定向到文件，避免终端混乱\n# 我们观察到直接输出到终端会导致服务器响应时间飙升\nbash examples\u002Fsearch\u002Fretriever\u002Fretrieval_launch.sh > retrieval_server.log \n```\n\n### 4. 拖把推箱\n```bash\npip install matplotlib\npip install gym==0.26.2\npip install gym_sokoban==0.0.6\n```\n---\n### 5. Gym Cards\n\n```bash\ncd repo_root\u002F\npip3 install -e .\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fgym_cards\u002Fgym-cards\u002F\npip3 install gymnasium==0.29.1\npip3 install stable-baselines3==2.6.0\n```\n---\n### 6. AppWorld（实验性）\n安装 AppWorld 包\n```bash\ncd repo_root\u002F\npip install git+https:\u002F\u002Fgithub.com\u002FStonyBrookNLP\u002Fappworld.git\nappworld install\npip install -e .\n```\n对于 appworld 的不兼容警告可以忽略，因为我们不会在 `verl-agent` 环境中运行 AppWorld。\n\n为 AppWorld 服务器创建专用的 conda 环境 `appworld`：\n```bash\nconda create -n appworld python=3.12 -y\nconda activate appworld\npip install git+https:\u002F\u002Fgithub.com\u002FStonyBrookNLP\u002Fappworld.git\nappworld install\nappworld download data\n```\n\n\n\u003C!-- > ⚠️ **重要：**  \n要在这些环境中运行智能体，必须先安装并配置相应的环境。请参阅 [环境设置指南](agent_system\u002Fenvironments\u002FREADME.md) 获取详细的安装步骤。 -->\n\n# 示例运行\n## 强化学习训练\n我们在 [\"examples\u002F\"](.\u002Fexamples\u002F) 目录下提供了开箱即用的脚本，用于在不同环境中训练智能体。\n\n以下是一些示例：\n### 1. GiGPO\nGiGPO 是我们提出的一种新算法，旨在支持长 horizon LLM 智能体训练中的细粒度信用分配。它引入了两级分组机制：\n- 轨迹级分组通过总回报来捕捉任务的整体成功情况（类似于 GRPO）。\n- 步骤级分组则收集不同轨迹中重复出现的状态，以计算单个动作的相对优势。\n\nGiGPO 完全无需价值网络，其显存占用和 LLM 推理成本与 GRPO 相同，但训练效率和性能却显著提升。\n\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_webshop.sh # WebShop\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_search.sh # 搜索\n```\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_sokoban.sh # 拖把推箱\n```\n### 2. GRPO\nGRPO 是一种无需价值网络的算法，它基于一组完整的轨迹来估计相对优势。\n```bash\nbash examples\u002Fgrpo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgrpo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 3. PPO\nPPO 是一种经典的策略梯度算法，通过裁剪目标函数来更新策略，从而确保学习过程的稳定性。它需要一个独立的价值网络（critic）来估计状态值。\n```bash\nbash examples\u002Fppo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fppo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 4. RLOO\n对于 RLOO，我们使用留一法估计，并采用 PPO 裁剪更新（而非 REINFORCE 更新），使其更接近 [LOOP](https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.01600)。\n```bash\nbash examples\u002Frloo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Frloo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 5. DAPO\nDAPO 在 GRPO 的基础上，加入了动态采样和裁剪增强等技术。\n```bash\nbash examples\u002Fdapo_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fdapo_trainer\u002Frun_webshop.sh # WebShop\n```\n### 6. 动态 GiGPO\n动态 GiGPO 结合了 DAPO 的动态采样和裁剪增强技术。\n```bash\nbash examples\u002Fgigpo_dynamic_trainer\u002Frun_alfworld.sh # ALFWorld\n```\n```bash\nbash examples\u002Fgigpo_dynamic_trainer\u002Frun_webshop.sh # WebShop\n```\n\n## LoRA\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_alfworld_lora.sh\n```\n\n## 基于提示的 GPT-4o 智能体\n我们还提供了一个基于提示的 GPT-4o 智能体。\n```bash\nbash examples\u002Fprompt_agent\u002Frun_gpt4o_agent.sh\n```\n\n# 常见问题解答\n\n## 1. 自定义记忆模块\n`verl-agent` 支持可定制且灵活的记忆系统，用于管理和格式化智能体与环境之间的交互历史。我们提供了一个默认的 [SimpleMemory](.\u002Fagent_system\u002Fmemory\u002Fmemory.py) 实现作为起点。该记忆模块会在 [env_manager.py](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py) 中被调用（即 `build_text_obs()`），以在每一步构建观测信息。\n\n鼓励开发者扩展此模块，加入自定义的记忆策略，例如动态摘要、选择性记忆保留或外部知识整合，从而更好地处理长时程的交互历史。\n\n## 2. 数据准备\n对于大多数环境（如 AFLWorld、WebShop、Sokoban 等），我们仅通过数据准备来标明模态，即“文本”或“视觉”。例如，如果任务完全是基于文本的，则数据将为空字符串 \"\"；若涉及视觉输入，则为 \"\\\u003Cimage\\>\"。至于智能体的输入（包括任务指令、观测和提示），我们遵循经典的强化学习流程。也就是说，LLM 智能体的输入来自环境通过 `env.step()` 返回的反馈。在 search-r1 实验中，由于任务是从数据集中抽取的，我们利用 [env_kwargs](.\u002Fexamples\u002Fdata_preprocess\u002Fpreprocess_search_r1_dataset.py#L90) 参数将任务传递给环境，具体方式是：[envs.reset(kwargs=gen_batch.non_tensor_batch.pop('env_kwargs', None))](.\u002Fagent_system\u002Fmulti_turn_rollout\u002Frollout_loop.py#L301)。\n\n## 3. 自定义你的提示模板  \n我们在实现中采用了一种简单且极简的提示格式。例如，在 WebShop 环境中：\n```\n你是一位在 WebShop 电子商务环境中工作的专家级自主智能体。\n你的任务是：{task_description}。在此之前，你已经完成了 {step_count} 步操作。以下是最近的 {history_length} 次观察以及你所采取的相应行动：{action_history}。你现在处于第 {current_step} 步，当前的观察结果是：{current_observation}。当前状态下，你可以采取的动作有：[{available_actions}]。\n\n现在轮到你为当前步骤选择并执行一个动作了。\n你应该首先对当前情况进行逐步推理，然后仔细思考哪个可执行动作最能推动购物目标的实现。这一推理过程必须被包裹在 \u003Cthink>\u003C\u002Fthink> 标签内。完成推理后，请选择当前步骤的一个可执行动作，并将其置于 \u003Caction>\u003C\u002Faction> 标签中呈现。\n```\n如果你希望进一步优化或自定义这些提示模板，可以在以下路径找到并编辑它们：[agent_system\u002Fenvironments\u002Fprompts](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002F)。\n\n\n## 4. 添加新环境  \n要添加一个新的环境，  \n1. 在 [agent_system\u002Fenvironments\u002Fenv_package\u002F](.\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002F) 中创建你的环境包（遵循 Gym 风格的接口和多进程执行方式）；  \n2. 在 [agent_system\u002Fenvironments\u002Fprompts](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002F) 中定义相应的提示文件；  \n3. 按照 [EnvironmentManagerBase](.\u002Fagent_system\u002Fenvironments\u002Fbase.py#L19) 定义的结构，在 [env_manager.py](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py) 中注册你的新环境。  \n\n以 WebShop 环境为例：  \n1. 环境包：[webshop 包](.\u002Fagent_system\u002Fenvironments\u002Fenv_package\u002Fwebshop)  \n2. 提示：[webshop 提示](.\u002Fagent_system\u002Fenvironments\u002Fprompts\u002Fwebshop.py)  \n3. 环境管理器：[webshop 环境管理器](.\u002Fagent_system\u002Fenvironments\u002Fenv_manager.py#L304)\n\n\n# 贡献说明\n\n我们欢迎并感谢所有贡献！如果你有任何改进 `verl-agent` 的想法，请随时提交拉取请求（PR）。\n\n一些示例贡献包括：  \n- **AppWorld 错误修复**：修复了兼容性问题，确保与实验性 AppWorld 环境的稳定集成。  \n- **异步回放缓冲**：通过支持异步回放缓冲管道，提升了训练效率和吞吐量。  \n- **新增交互式环境**：增加了对更多交互式环境的支持，从而扩展了基准测试的覆盖范围和任务多样性。  \n\n# 致谢\n\n`verl-agent` 代码库构建于 [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl) 之上。  \n所支持的环境改编自 [ALFWorld](https:\u002F\u002Fgithub.com\u002Falfworld\u002Falfworld)、[Sokoban](https:\u002F\u002Fgithub.com\u002FmpSchrader\u002Fgym-sokoban)、[SkyRL-Gym](https:\u002F\u002Fgithub.com\u002FNovaSky-AI\u002FSkyRL\u002Ftree\u002Fmain\u002Fskyrl-gym)、[Search-R1](https:\u002F\u002Fgithub.com\u002FPeterGriffinJin\u002FSearch-R1)、[Gym Cards](https:\u002F\u002Fgithub.com\u002FRL4VLM\u002FRL4VLM\u002Ftree\u002Fmain\u002Fgym-cards)、[WebShop](https:\u002F\u002Fgithub.com\u002Fprinceton-nlp\u002FWebShop) 和 [AppWorld](https:\u002F\u002Fgithub.com\u002Fstonybrooknlp\u002Fappworld)。我们向这些项目的作者和贡献者致以诚挚的谢意，感谢他们所做的宝贵工作。\n\n同时，我们也特别感谢以下贡献者对本项目的具体改进：WebShop 错误修复（[@YSLIU627](https:\u002F\u002Fgithub.com\u002FYSLIU627)）、GSPO 支持（[@MakeKJ](https:\u002F\u002Fgithub.com\u002FMakeKJ)）、Qwen3-VL 支持（[@FabianSchuetze](https:\u002F\u002Fgithub.com\u002FFabianSchuetze)）。  \n\n# 由 verl-agent 和 GiGPO 驱动的杰出成果  \n\n- [HGPO](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2602.22817)：针对长时程智能体任务的“群体层次”策略优化。  \n- [Dr. MAS](https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.08847)：用于多智能体 LLM 系统的稳定端到端强化学习后处理。[![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FlangfengQ\u002FDrMAS)](https:\u002F\u002Fgithub.com\u002FlangfengQ\u002FDrMAS)  \n- [AgentOCR](https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.04786)：通过将多轮智能体历史渲染成图像并采用智能体自我压缩技术，实现高效的令牌压缩。  \n- [OpenManus-RL](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL)：一个用于 LLM 智能体实时流式强化学习调优的开源框架。[![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FOpenManus\u002FOpenManus-RL)](https:\u002F\u002Fgithub.com\u002FOpenManus\u002FOpenManus-RL)  \n- [RLVMR](https:\u002F\u002Fgithub.com\u002FTencent\u002FDigitalHuman\u002Ftree\u002Fmain\u002FRLVMR)：在长时程任务中为智能体提供细粒度的元推理奖励。[![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTencent\u002FDigitalHuman)](https:\u002F\u002Fgithub.com\u002FTencent\u002FDigitalHuman\u002Ftree\u002Fmain\u002FRLVMR)  \n- [UI-S1](https:\u002F\u002Fgithub.com\u002FX-PLUG\u002FMobileAgent\u002Ftree\u002Fmain\u002FUI-S1)：一种基于半在线强化学习的 GUI 自动化模型，可稳定执行长时程任务。[![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FX-PLUG\u002FMobileAgent)](https:\u002F\u002Fgithub.com\u002FX-PLUG\u002FMobileAgent\u002Ftree\u002Fmain\u002FUI-S1)  \n- [通过早期经验进行智能体学习](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2510.08558)：一种可扩展的无奖励范式，通过隐式世界建模和自我反思，弥合模仿学习与强化学习之间的鸿沟。  \n- [SPEAR](https:\u002F\u002Fgithub.com\u002FTencentYoutuResearch\u002FSPEAR)：结合渐进式探索的自我模仿技术，用于智能体强化学习（ICLR 2026）。[![[code]](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTencentYoutuResearch\u002FSPEAR)](https:\u002F\u002Fgithub.com\u002FTencentYoutuResearch\u002FSPEAR\u002Ftree\u002Fmain\u002F)  \n\n# 引用说明  \n\n如果你在研究或应用中使用了 `verl-agent` 和 `GiGPO`，并认为它们对你有所帮助，请考虑引用我们的工作：\n\n```\n@article{feng2025group,\n  title={Group-in-Group Policy Optimization for LLM Agent Training},\n  author={Feng, Lang and Xue, Zhenghai and Liu, Tingcong and An, Bo},\n  journal={arXiv preprint arXiv:2505.10978},\n  year={2025}\n}\n```\n\n# 星标历史  \n\n[![星标历史图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_readme_e00fe586d3d4.png)](https:\u002F\u002Fwww.star-history.com\u002F#langfengQ\u002Fverl-agent&Date)","# verl-agent 快速上手指南\n\n`verl-agent` 是基于 [veRL](https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl) 的扩展框架，专为通过强化学习（RL）训练大语言模型（LLM）智能体而设计。其核心优势在于**步独立的多轮滚动机制**，支持完全自定义的每步输入结构和记忆模块，能够高效处理长程多轮任务（如 ALFWorld 中长达 50 步的任务）。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 20.04+)\n*   **Python**: 3.9 或更高版本\n*   **GPU**: 支持 CUDA 的 NVIDIA GPU (建议显存 >= 24GB，若使用 LoRA 可降低要求)\n*   **CUDA**: 11.8 或 12.1+\n*   **依赖管理**: 推荐使用 `conda` 或 `venv` 创建独立虚拟环境\n\n## 2. 安装步骤\n\n### 2.1 安装 veRL 核心库\n\n首先克隆并安装基础的 `veRL` 库。国内用户建议使用镜像源加速下载。\n\n```bash\n# 克隆 veRL 仓库\ngit clone https:\u002F\u002Fgithub.com\u002Fvolcengine\u002Fverl.git\ncd verl\n\n# 创建并激活虚拟环境 (示例使用 conda)\nconda create -n verl python=3.9 -y\nconda activate verl\n\n# 安装 PyTorch (请根据实际 CUDA 版本选择，此处以 CUDA 11.8 为例)\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\n\n# 安装 veRL 依赖\npip install -e .\n```\n\n### 2.2 安装 verl-agent\n\n克隆 `verl-agent` 项目并安装其特定依赖：\n\n```bash\ncd ..\ngit clone https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent.git\ncd verl-agent\n\n# 安装 verl-agent 额外依赖\npip install -e .\n```\n\n### 2.3 安装支持的环境\n\n根据您想要运行的任务，安装对应的环境依赖。以下是常用环境的安装命令：\n\n#### 1. ALFWorld (具身智能任务)\n```bash\npip install alfworld\nalfworld-download\n```\n\n#### 2. WebShop (网页购物任务)\n```bash\npip install webshop\n```\n\n#### 3. Search (工具调用\u002F搜索任务)\n无需额外安装重型依赖，确保网络可访问搜索引擎 API 即可。\n\n#### 4. Sokoban (推箱子视觉任务)\n```bash\npip install gym-sokoban\n```\n\n#### 5. Gym Cards (卡牌游戏)\n```bash\npip install gym-cards\n```\n\n> **注意**: 若需运行多模态任务（如 Sokoban），请确保已安装对应的视觉编码器依赖（如 `transformers`, `accelerate` 等，通常包含在主依赖中）。\n\n## 3. 基本使用\n\n`verl-agent` 提供了多种强化学习算法（如 GiGPO, GRPO, PPO 等）的启动脚本。以下以 **GiGPO 算法在 ALFWorld 环境** 上训练为例。\n\n### 3.1 数据准备\n确保环境变量配置正确，或者在配置文件中指定数据路径。对于 ALFWorld，`alfworld-download` 命令会自动处理数据。\n\n### 3.2 运行训练示例\n\n进入项目根目录，执行以下命令启动训练。该示例使用 `Qwen2.5-1.5B-Instruct` 模型在 ALFWorld 上进行 GiGPO 训练。\n\n```bash\nbash examples\u002Fgigpo_trainer\u002Frun_alfworld_qwen2.5.sh\n```\n\n如果您想尝试其他算法或环境，可以参考 `examples\u002F` 目录下的脚本：\n\n*   **GRPO 算法**:\n    ```bash\n    bash examples\u002Fgrpo_trainer\u002Frun_alfworld_qwen2.5.sh\n    ```\n*   **PPO 算法**:\n    ```bash\n    bash examples\u002Fppo_trainer\u002Frun_alfworld_qwen2.5.sh\n    ```\n*   **多模态任务 (Sokoban + Qwen3-VL)**:\n    ```bash\n    bash examples\u002Fgigpo_trainer\u002Frun_sokoban_qwen3vl.sh\n    ```\n\n### 3.3 开启 LoRA 微调（降低显存需求）\n\n若显存有限，可在配置文件或启动脚本中启用 LoRA。在对应的 `.yaml` 配置文件（如 `verl\u002Ftrainer\u002Fconfig\u002Fppo_trainer.yaml`）中设置：\n\n```yaml\nactor:\n  fsdp_config:\n    ...\n  lora:\n    rank: 64\n    alpha: 128\n    dropout: 0.0\n    target_modules: [\"q_proj\", \"v_proj\"] # 根据模型架构调整\n```\n\n然后正常运行上述训练脚本即可。\n\n### 3.4 查看训练日志\n\n训练过程中，日志将输出到终端，同时支持集成 **Weights & Biases (W&B)** 进行可视化监控。若需启用 W&B，请在运行前登录：\n\n```bash\nwandb login\n```\n\n训练指标（如成功率、奖励曲线）将自动同步至您的 W&B 仪表盘。","某自动驾驶研发团队正致力于训练一个能在复杂城市路况中连续执行 50 步以上导航指令的多模态智能体（VLM Agent）。\n\n### 没有 verl-agent 时\n- **长程任务记忆丢失**：传统方法简单拼接所有历史交互，导致上下文窗口迅速爆满，智能体在任务后期“忘记”早期的关键路标或指令。\n- **训练结构僵化**：无法针对不同步骤定制输入结构，难以灵活引入外部地图记忆模块，导致模型在处理长序列决策时效率极低。\n- **算法适配困难**：缺乏针对多轮对话优化的强化学习算法，直接使用标准 PPO 等算法在长步数任务（如 ALFWorld）中收敛极慢甚至不收敛。\n- **多模态支持割裂**：视觉与文本数据的处理流程分离，难以统一训练能同时理解摄像头画面和自然语言指令的端到端代理。\n\n### 使用 verl-agent 后\n- **步长独立记忆机制**：利用其“步长独立多轮展开机制”，团队为每一步设计了独立的输入结构和专用记忆模块，智能体在 50 步后仍能精准回忆起始指令。\n- **高度定制化架构**：灵活配置每步的历史管理策略，轻松集成外部知识库，显著提升了长程任务中的推理稳定性和资源利用率。\n- **先进算法加持**：直接应用内置的 GiGPO（组内组策略优化）算法，在复杂导航任务中的训练收敛速度提升明显，成功率大幅超越基线。\n- **原生多模态融合**：依托对 Qwen3-VL 等模型的原生支持，实现了视觉感知与语言决策的无缝联合训练，智能体能更准确地识别红绿灯并执行转向。\n\nverl-agent 通过创新的步长独立机制与专用强化学习算法，彻底解决了长程多模态智能体训练中记忆断裂与收敛困难的核心瓶颈。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FlangfengQ_verl-agent_f8d67632.png","langfengQ","Lang Feng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FlangfengQ_38852a1b.png","PhD student @ NTU Singapore",null,"Singapore","https:\u002F\u002Flangfengq.github.io\u002F","https:\u002F\u002Fgithub.com\u002FlangfengQ",[82,86,90,94,98,102,106,110,114,117],{"name":83,"color":84,"percentage":85},"Python","#3572A5",64.8,{"name":87,"color":88,"percentage":89},"Jupyter Notebook","#DA5B0B",20.7,{"name":91,"color":92,"percentage":93},"C","#555555",9.7,{"name":95,"color":96,"percentage":97},"Shell","#89e051",2.4,{"name":99,"color":100,"percentage":101},"PDDL","#0d00ff",1.3,{"name":103,"color":104,"percentage":105},"Yacc","#4B6C4B",0.7,{"name":107,"color":108,"percentage":109},"HTML","#e34c26",0.4,{"name":111,"color":112,"percentage":113},"Lex","#DBCA00",0.1,{"name":115,"color":116,"percentage":113},"CSS","#663399",{"name":118,"color":119,"percentage":120},"Makefile","#427819",0,1777,163,"2026-04-07T11:55:33","Apache-2.0",4,"未说明","需要 NVIDIA GPU (提及支持使用 2 张 H100 GPU 训练 7B 模型)，显存需求视模型大小而定，需支持 CUDA",{"notes":129,"python":126,"dependencies":130},"该工具是 veRL 的扩展，专为通过强化学习训练 LLM Agent 设计。支持多模态（文本 + 图像）和纯文本任务。支持多种模型（如 Qwen3, Qwen2.5, LLaMA3.2 等）及多种 RL 算法（GiGPO, PPO, GRPO 等）。支持 LoRA 微调以降低计算成本。需单独安装支持的环境（如 ALFWorld, WebShop, Sokoban 等）。建议使用支持最新特性的深度学习框架版本以兼容 Qwen3 等新模型。",[131,132,133,134,135,136],"veRL","torch","transformers","accelerate","gym","LoRA",[13,14,35],[139,140,141,142,143,144,145,146],"llm-agents","llm-training","reinforcement-learning","large-language-models","deepseek-r1","grpo","agent-framework","gigpo","2026-03-27T02:49:30.150509","2026-04-08T01:49:25.579394",[150,155,160,165,170,174],{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},23445,"运行训练脚本时遇到 NCCL 通信错误导致无法启动，如何解决？","这通常是由于集群环境中的 NCCL 通信问题引起的。可以尝试设置以下环境变量来禁用 InfiniBand 和 P2P 通信：\nexport NCCL_IB_DISABLE=1\nexport NCCL_P2P_DISABLE=1\n设置后重新运行代码即可成功启动。","https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\u002F119",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},23446,"运行脚本时提示 CPU 资源不足（需要超过 70 个 CPU），但机器核心数有限，如何调整？","当前配置可能请求了过多的 CPU 资源。您可以修改源代码中 Ray 远程函数的 CPU 请求量。具体步骤是找到 `agent_system\u002Fenvironments\u002Fenv_package\u002Falfworld\u002Fenvs.py` 文件第 40 行左右，将 `@ray.remote(num_cpus=0.25)` 中的数值调小，例如改为 `@ray.remote(num_cpus=0.15)`。修改后保存并重新运行脚本即可。如果运行速度变慢，可以使用 `ray status` 检查资源利用率以进行进一步优化。","https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\u002F70",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},23447,"在 AppWorld 基准测试中遇到 'Connection refused' 错误或导入问题，应该如何配置环境？","AppWorld 和 AlfWorld 的环境依赖可能存在冲突。建议为 AppWorld 创建一个独立的 Conda 环境（例如命名为 `verl-agent-appworld`），并严格按照 README 文档在该新环境中进行安装和配置。不要尝试在同一个环境中混合运行 AlfWorld 和 AppWorld 任务。","https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\u002F104",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},23448,"复现 WebShop 示例脚本时验证成功率始终为 0，可能是什么原因？","首先请检查终端日志以获取详细报错信息。最关键的是确保 WebShop 的安装完全正确：\n1. 运行安装脚本 `.\u002Fsetup.sh -d all` 时终端无任何报错。\n2. 确认所有必要的数据集（通常需要从 Google Drive 下载）已完整且正确地下载到指定目录。\n如果安装或数据下载不完整，会导致验证过程无法正常执行从而返回 0 成功率。","https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fissues\u002F41",{"id":171,"question_zh":172,"answer_zh":173,"source_url":159},23449,"GiGPO 训练脚本中的 `train_data_size` 和 `group_size` 参数分别代表什么含义？","根据社区讨论和论文定义：\n- `group_size`：指从相同初始状态开始的 rollout 数量（即 GiGPO 论文中的分组大小）。\n- `train_data_size`：通常指参与训练的并行环境组数或批次大小。\n两者相乘（例如 16 * 8 = 128）通常表示并行运行的总环境数量。如果发现 Ray worker 进程数量远超预期，可能需要检查是否每个环境启动了过多的子进程，或者调整这两个参数以减少并行度。",{"id":175,"question_zh":176,"answer_zh":177,"source_url":169},23450,"如何在资源受限的设备上调整 WebShop 训练参数以避免 Ray 报错？","如果原始批量大小导致 Ray 抛出错误，可以适当减小 `batch size`。对于初步测试，可以将 `train_data_size` 设置为较小值（如 8），将 `val_data_size` 设置为适中值（如 32）。注意，如果调整后验证成功率仍为 0，需优先排查环境安装和数据下载是否完整，而不仅仅是调整参数。",[179],{"id":180,"version":181,"summary_zh":182,"released_at":183},144958,"v0.1.0","## 变更内容\n* Langfeng alfworld，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F3 中完成\n* Langfeng 合并 verl 31\u002F3\u002F2025，包括 SGlang 和 vllm 0.8.2，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F7 中完成\n* 解决验证中的 SuccessManager bug，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F8 中完成\n* 更新 README.md，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F9 中完成\n* Langfeng，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F11 中完成\n* group-in-group 策略优化，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F12 中完成\n* 更新 run_tw.sh，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F13 中完成\n* Appworld 分支合并，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F15 中完成\n* 重要：实现 sokoban 和 ezpoints 的收敛，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F16 中完成\n* 支持 Webshop 环境！由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F17 中完成\n* DAPO 支持！动态 GiGPO 支持！由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F18 中完成\n* 避免动态采样中的潜在错误，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F19 中完成\n* 调整变量名，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F20 中完成\n* 修复 bug，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F21 中完成\n* 【重要】实现无偏的 GiGPO，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F22 中完成\n* 修复 bug，更新 README 和脚本，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F27 中完成\n* 更新 LICENSE 和 README.md，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F29 中完成\n* 更新 README，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F30 中完成\n* 更新 README.md，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F32 中完成\n* 增加对 RLOO 的支持，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F36 中完成\n* 修复动态采样中的一些 bug，并将提示词整理到一个单独的文件夹中，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F38 中完成\n* 为避免 EOF 错误，在 alfworld 中交互时移除 expert，由 @YSLIU627 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F40 中完成\n* 更新 README.md，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F46 中完成\n* WebShop 中的拆分与人工选项，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F48 中完成\n* 修复 WebShop 安装中的安装 bug，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F49 中完成\n* 修复 WebShop 安装中的安装 bug，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F50 中完成\n* 重大更新：合并最新版 verl，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F54 中完成\n* 更新示例，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F55 中完成\n* 在 adv 计算中增加 compute_mean_std_cross_all_data 的选项，由 @langfengQ 在 https:\u002F\u002Fgithub.com\u002FlangfengQ\u002Fverl-agent\u002Fpull\u002F57 中完成\n* 更新 README.md，由 @langfengQ 在 https:\u002F","2025-12-11T10:55:32"]