跳转至

__init__.py — 这是 agent_loop 子包的初始化文件

文件路径: verl/experimental/agent_loop/__init__.py

文件概述

这是 agent_loop 子包的初始化文件,负责对外暴露该模块的核心类。它从各子模块中导入关键类,并通过 __all__ 声明公开 API。

关键代码讲解

from .agent_loop import AgentLoopBase, AgentLoopManager, AgentLoopWorker, AsyncLLMServerManager
from .single_turn_agent_loop import SingleTurnAgentLoop
from .tool_agent_loop import ToolAgentLoop

_ = [SingleTurnAgentLoop, ToolAgentLoop]

__all__ = ["AgentLoopBase", "AgentLoopManager", "AsyncLLMServerManager", "AgentLoopWorker"]

导入说明

导入的类 来源 用途
AgentLoopBase agent_loop.py Agent 循环的抽象基类
AgentLoopManager agent_loop.py 管理多个 Agent Loop Worker
AgentLoopWorker agent_loop.py 执行批量推理的工作节点
AsyncLLMServerManager agent_loop.py 异步 LLM 服务器管理器(负载均衡)
SingleTurnAgentLoop single_turn_agent_loop.py 单轮对话 Agent
ToolAgentLoop tool_agent_loop.py 支持工具调用的多轮 Agent

关于 _ = [SingleTurnAgentLoop, ToolAgentLoop]

这行代码的目的是触发模块级的副作用。SingleTurnAgentLoop 和 ToolAgentLoop 在定义时通过 @register(...) 装饰器将自己注册到全局的 _agent_loop_registry 字典中。赋值给 _ 只是为了确保这些类在导入时被加载,从而完成注册。

核心类/函数列表

  • AgentLoopBase: Agent 循环抽象基类
  • AgentLoopManager: Agent 循环管理器
  • AgentLoopWorker: Agent 循环工作节点
  • AsyncLLMServerManager: 异步 LLM 服务管理器

与其他模块的关系

  • 被 fully_async_policy、one_step_off_policy 等上层模块依赖
  • 通过注册机制,SingleTurnAgentLoop 和 ToolAgentLoop 可以通过名字动态实例化

小结

该 __init__.py 是 agent_loop 模块的入口,通过集中导入和注册机制,让上层代码可以方便地使用不同类型的 Agent 循环实现。