跳转至

veRL Agentic Loop 代码详解

LaTeX 源码 · 备用 PDF

字段 内容
作者/整理 基于公开课程资料整理
来源 五道口纳什
日期 2025

veRL Agentic Loop 代码详解

引言

本期深入 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 的最佳方式,不是死记函数名,而是看清哪些职责被稳定地抽象出来,哪些职责被故意留给自定义逻辑。

总结与延伸

  1. AgentLoopBase \(\to\) Worker \(\to\) Manager 的层次结构
  2. generate_sequence 是核心协调方法
  3. 自定义 Agent 只需实现 AgentLoopBase.run