veRL Agentic Loop 代码详解
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | 五道口纳什 |
| 日期 | 2025 |

引言
本期深入 veRL 的 Agentic Loop 代码,详细分析 agentloop.py 的实现。
核心类结构
AgentLoopBase
抽象基类,run 方法是抽象方法,需要用户自定义。官方提供了 Singleton 和 TwoAgents 两种实现。
AgentLoopWorker
封装了单个 Agent 的执行逻辑,管理状态转换。
AgentLoopManager
最核心的类,通过 generate_sequence 方法协调所有组件:
- 管理推理 server
- 协调 Worker 的状态
- 处理 tool call 的异步执行
设计理念
veRL 的 Agentic Loop 追求:
- 简洁的抽象
- 高效的异步执行
- 灵活的自定义接口
本章小结
AgentLoopManager 是 veRL Agentic RL 的大脑,统一管理推理、工具调用和训练的协调。
设计含义:抽象层次决定可扩展性
把 Base、Worker、Manager 三层拆开,并不是为了“代码更好看”,而是为了让 Agentic Loop 可以在不同任务间复用。真正变化最快的是具体任务逻辑,而不是状态管理和推理调度,因此统一抽象层能显著降低后续实验成本。
读框架代码时先看什么
- 哪一层负责统一 orchestration
- 哪一层承接具体任务状态
- 哪些接口是为了让研究者替换业务逻辑
本章小结
理解 AgentLoopManager 的最佳方式,不是死记函数名,而是看清哪些职责被稳定地抽象出来,哪些职责被故意留给自定义逻辑。
总结与延伸
- AgentLoopBase \(\to\) Worker \(\to\) Manager 的层次结构
- generate_sequence 是核心协调方法
- 自定义 Agent 只需实现 AgentLoopBase.run