AReaL工具集成框架:构建支持工具调用的推理智能体

【免费下载链接】AReaL Lightning-Fast RL for LLM Reasoning and Agents. Made Simple & Flexible. 【免费下载链接】AReaL 项目地址: https://gitcode.com/GitHub_Trending/are/AReaL

AReaL是一个 Lightning-Fast RL for LLM Reasoning and Agents. Made Simple & Flexible. 的开源项目,它为开发者提供了构建支持工具调用的推理智能体的强大框架。通过AReaL,你可以轻松地将各种工具集成到智能体中,实现复杂的任务推理和执行。

智能体工具调用的核心组件

AReaL的工具集成框架主要由以下几个核心组件构成:

工具调用解析器

工具调用解析器负责从模型输出中提取工具调用信息。在AReaL中,这一功能主要由tool_call_parser.py实现。该模块能够识别模型输出中的工具调用指令,并将其解析为结构化的工具调用对象。

# 工具调用解析器核心代码
def process_tool_calls(
    text: str,
    tools: list[Any],
    tool_call_parser: str,
    reasoning_parser: str,
    finish_reason: str,
    use_responses: bool = False,
) -> tuple[
    list[ChatCompletionMessageFunctionToolCall | ResponseFunctionToolCall] | None,
    str,
    str,
]:
    # 解析逻辑实现
    ...

智能体工作流

AReaL提供了灵活的智能体工作流管理机制,允许开发者定义复杂的工具调用流程。在controller.py中,我们可以看到如何将智能体工作流包装到OpenAIProxyWorkflow中:

# 智能体工作流包装
def _wrap_openai_agent(
    self, 
    agent_workflow,
    proxy_server_addr: str,
):
    """Wrap an agent workflow in OpenAIProxyWorkflow (HTTP mode only)."""
    ...

工具调用执行器

工具调用执行器负责实际执行解析后的工具调用。在worker/app.py中,定义了一个Agent Worker服务,它可以接收工具调用请求并执行相应的工具:

# 工具调用执行
@app.post("/run")
async def run(body: dict[str, Any]):
    request = AgentRequest(
        message=body.get("message", ""),
        session_key=body.get("session_key", ""),
        run_id=body.get("run_id", ""),
        history=body.get("history", []),
        queue_mode=QueueMode(body.get("queue_mode", "collect")),
        metadata=body.get("metadata", {}),
    )

    emitter = _CollectingEmitter()

    try:
        response: AgentResponse = await agent.run(request, emitter=emitter)
    except Exception as exc:
        # 错误处理
        ...

    return {**asdict(response), "events": emitter.events}

工具调用流程详解

AReaL的工具调用流程可以分为以下几个步骤:

  1. 用户输入:用户向智能体发送请求或问题。
  2. 模型推理:智能体使用LLM模型进行推理,生成包含工具调用指令的响应。
  3. 工具调用解析tool_call_parser.py解析模型输出,提取工具调用信息。
  4. 工具执行:Agent Worker执行解析后的工具调用。
  5. 结果返回:工具执行结果返回给智能体,用于后续处理或直接返回给用户。

工具调用训练效果

通过AReaL的强化学习训练,智能体的工具调用能力可以得到显著提升。下面的图表展示了在训练过程中工具调用次数和任务奖励的变化趋势。

工具调用次数随训练步数变化

上图显示了工具调用次数随训练步数的变化。可以看到,随着训练的进行,智能体逐渐学会了更有效地使用工具,工具调用次数趋于稳定。

任务奖励随训练步数变化

对应的,任务奖励也随着训练步数的增加而逐步提高,表明智能体在工具调用的帮助下,解决任务的能力不断增强。

快速开始:构建你的第一个工具调用智能体

要开始使用AReaL构建工具调用智能体,你可以按照以下步骤操作:

  1. 克隆AReaL仓库:
git clone https://gitcode.com/gh_mirrors/are/AReaL
  1. 安装依赖:
cd AReaL
pip install -r requirements.txt
  1. 参考examples/tir/目录下的示例,定义你的工具和智能体逻辑。

  2. 使用AReaL提供的训练框架训练你的智能体:

python examples/tir/train_tir.py --config examples/tir/tir_math_config.yaml
  1. 启动Agent Worker服务:
python -m areal.experimental.agent_service.worker.app --agent-cls-path "your.agent.class.path"

结语

AReaL工具集成框架为构建支持工具调用的推理智能体提供了强大而灵活的解决方案。通过其模块化的设计和强化学习支持,开发者可以轻松地创建能够使用各种工具解决复杂任务的智能体。无论是科研实验还是工业应用,AReaL都能为你的智能体项目提供有力的支持。

如果你想深入了解AReaL的更多功能,可以参考项目中的官方文档:docs/。同时,你也可以在examples/目录下找到更多实用的示例代码,帮助你快速上手AReaL框架。

开始使用AReaL,释放你的智能体的全部潜力吧!🚀

【免费下载链接】AReaL Lightning-Fast RL for LLM Reasoning and Agents. Made Simple & Flexible. 【免费下载链接】AReaL 项目地址: https://gitcode.com/GitHub_Trending/are/AReaL

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐