使用 OpenAI Agents SDK 构建经理-专家工作流

作者
  • avatar
    姓名
    Nino
    职业
    Senior Tech Editor

大语言模型(LLM)应用的范式正在从简单的聊天界面转向复杂、自主的代理工作流(Agentic Workflows)。在这一领域中,最强大的架构模式之一就是 经理-专家(Manager-Specialist) 模型。在这种模式下,一个核心的“经理”智能体负责协调一组“专家”智能体,不仅将它们视为子进程,而是将其视为模块化的工具。通过利用 OpenAI Agents SDK,开发者可以构建比单智能体设置更可靠的系统。对于寻求最强大基础设施来运行这些工作流的开发者,n1n.ai 提供了一个统一的网关,用于访问这些复杂交互所需的高性能模型。

从单体智能体到编排模式的转变

早期的 AI 智能体实现通常依赖于一个巨大的提示词(Prompt),试图处理用户的所有意图。这些“单体”智能体经常遇到上下文漂移、指令遵循失败以及高延迟的问题。经理-专家工作流通过应用“关注点分离”原则解决了这些问题。

在这种设置中,经理智能体充当路由和监督者的角色。它不需要知道如何执行特定任务(如 SQL 生成或数据可视化);它只需要知道哪个专家智能体最适合当前请求。当您使用 n1n.ai 时,您可以为每个专家无缝切换不同的模型提供商,在工作流的每个节点上针对成本或性能进行优化。

OpenAI Agents SDK 的核心概念

OpenAI Agents SDK 引入了几种原语,使构建这些层级结构变得直观:

  1. 智能体 (Agents):具有特定指令和工具的封装逻辑单元。
  2. 移交 (Handoffs):一个智能体将对话控制权转移给另一个智能体的机制。
  3. 工具 (Tools):智能体可以调用以执行外部操作的函数,甚至是其他智能体。

当我们把一个智能体当作工具时,我们实际上是在创建一个递归结构。经理智能体将专家智能体视为一个接收输入并返回输出的函数,即使这个“函数”实际上是另一个具有自身内部逻辑的、由 LLM 驱动的实体。

实现指南:创建专家智能体

让我们从定义一个专家智能体开始。假设我们正在为一家金融服务公司构建一个系统。我们需要一个能够分析市场趋势的专家。为了确保性能稳定,我们建议使用 n1n.ai 提供的稳定 API 端点。

from openai import OpenAI
from agents_sdk import Agent

# 定义市场分析专家
market_analyst = Agent(
    name="市场分析师",
    instructions="""
    你是一位资深的金融分析师。
    你的任务是分析股市趋势并提供简洁的总结。
    重点关注技术指标和情绪分析。
    """,
    model="gpt-4o"
)

实现指南:作为编排者的经理智能体

现在,我们定义经理智能体。这里的关键是 handofftool 的定义。在 OpenAI Agents SDK 中,经理可以像调用标准函数一样调用专家。

def call_market_analyst(query: str):
    """将与市场相关的问题委托给市场分析专家。"""
    return market_analyst.run(query)

manager_agent = Agent(
    name="金融经理",
    instructions="""
    你是用户的主要联系点。
    分析用户的请求并确定是否需要专家介入。
    如果用户询问市场趋势,请使用 'call_market_analyst' 工具。
    """,
    tools=[call_market_analyst]
)

为什么要将智能体作为工具使用?

将智能体视为工具为企业级软件提供了几个明显的优势:

  • 细粒度测试:您可以独立对 市场分析师 专家进行单元测试,而不涉及经理的逻辑。
  • 状态管理:每个专家可以维护自己的内部状态或访问经理无需知晓的特定数据库(RAG)。
  • 并行性:当经理处理一个用户时,它可以并行启动多个专家来处理复杂查询的不同部分。
  • 模型多样性:您可以为经理使用高推理模型(如通过 n1n.ai 获取的 o1-preview),而为简单的专家使用更快、更便宜的模型(如 GPT-4o-mini)。

高级模式:递归移交 (Recursive Handoffs)

更高级的实现是使用 handoff 模式而不是简单的工具调用。在移交过程中,专家会完全接管对话,直到它决定将其交还给经理。这对于长时间运行的多轮任务非常有用,否则经理的上下文会被专家的具体细节所充斥。

# 移交逻辑示例
from agents_sdk import Handoff

def transfer_to_analyst():
    return Handoff(agent=market_analyst)

# 经理现在移交整个会话控制权
manager_agent.add_tool(transfer_to_analyst)

性能和延迟注意事项

在构建多智能体系统时,延迟可能会叠加。如果经理需要 2 秒做出决定,而专家需要 5 秒做出响应,用户就会感受到 7 秒的延迟。为了缓解这种情况:

  1. 流式传输 (Streaming):利用 SDK 的流式传输功能,在智能体处理时向用户提供即时反馈。
  2. 优化路由:对初始路由逻辑使用较小的模型。
  3. 可靠的基础设施:使用像 n1n.ai 这样的高速聚合器,确保您的 API 调用通过最快的可用路径路由,从而减少多模型编排的开销。

专业技巧:“系统 1 与系统 2” 架构

对于复杂的推理任务,可以实现一个“系统 1”经理(快速、直觉,使用廉价模型)进行路由和基本响应,以及一个“系统 2”专家(慢速、分析型,使用高推理模型)进行深度工作。这模拟了人类的认知过程,并在不牺牲质量的情况下显著降低了运营成本。

总结

在 OpenAI Agents SDK 中将智能体作为工具使用的能力标志着 AI 工程的一个重要里程碑。它允许开发者从脆弱的提示词转向健壮的、模块化的软件架构。通过将这些模式与 n1n.ai 提供的高性能 API 访问相结合,团队可以构建出随业务需求扩展的生产级 AI 系统。

n1n.ai 获取免费 API 密钥。