OpenAI Agents SDK 解析:快速构建多智能体系统

OpenAI Agents SDK 解析:快速构建多智能体系统

🤖 近年来,大型语言模型(LLM)的应用越来越广泛,但在构建多智能体(multi-agent)系统时,开发者通常需要手动管理智能体之间的交互、任务分配和数据流转。为了解决这些问题,OpenAI 推出了 OpenAI Agents SDK,一个轻量级但功能强大的 Python 框架,旨在简化 LLM 智能体的开发与管理。

1. OpenAI Agents SDK 简介

OpenAI Agents SDK 旨在提供一个简洁而强大的方式,让开发者能够快速构建和管理智能体(Agents)。智能体可以执行特定任务,并能相互协作,提高自动化任务的完成效率。该 SDK 主要具备以下核心功能:

  • 智能体(Agents): 通过 LLM 驱动的智能体,可以理解指令并执行相应的任务。
  • 任务交接(Handoffs): 允许智能体将任务委托给其他智能体,实现模块化处理。
  • 安全防护(Guardrails): 通过输入输出的验证机制,提高任务执行的安全性。
  • 追踪(Tracing): 内置跟踪系统,帮助开发者分析智能体行为,提高可视化和调试能力。

2. 安装和环境准备

要使用 OpenAI Agents SDK,首先需要安装它。可以通过 pip 进行安装:

1
pip install openai-agents

安装完成后,需要设置 OpenAI API Key 以便 SDK 能够调用 OpenAI 的 LLM 服务:

1
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"

3. 创建你的第一个智能体

让我们来创建一个简单的智能体,任务是生成关于递归的俳句。

1
2
3
4
5
6
7
8
9
10
from agents import Agent, Runner

# 创建智能体
agent = Agent(name="Assistant", instructions="You are a helpful assistant")

# 运行任务
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")

# 输出结果
print(result.final_output)

这段代码中,我们:

  1. 创建了一个智能体,并为其指定了基本的指令。
  2. 使用 Runner.run_sync 方法运行任务,并传递一个文本输入。
  3. 打印智能体的最终输出,它将返回一个关于递归的俳句。

4. 任务交接(Handoffs)

在现实应用中,一个智能体可能无法完成所有任务。这时可以使用 OpenAI Agents SDK 提供的 handoffs 机制,把任务交给其他智能体。

1
2
3
4
5
6
7
8
9
10
11
12
13
from agents import Agent, Runner

# 创建两个智能体
assistant = Agent(name="Assistant", instructions="You are a helpful assistant")
coder = Agent(name="Coder", instructions="You write Python code based on descriptions.")

# Assistant 负责任务分配
assistant.set_handoff("code_generation", coder)

# 运行任务
result = Runner.run_sync(assistant, "Write a Python function to calculate Fibonacci numbers.")

print(result.final_output)

在这个例子中:

  1. 创建了两个智能体,一个是助手(Assistant),一个是代码生成器(Coder)。
  2. 助手可以将 code_generation 任务委托给代码生成器,实现任务分工。
  3. 最终结果由代码生成器提供,返回 Fibonacci 函数的 Python 代码。

5. 安全防护(Guardrails)

在 AI 任务执行过程中,我们需要确保输入和输出的安全性。OpenAI Agents SDK 提供了 Guardrails 机制,开发者可以定义规则来验证输入和输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from agents import Agent, Guardrails, Runner

def validate_output(output):
return "malicious" not in output.lower()

# 创建智能体
agent = Agent(name="SecurityBot", instructions="You generate safe responses only.")

# 设置 Guardrails
guardrails = Guardrails(output_validation=validate_output)

# 运行任务
result = Runner.run_sync(agent, "Tell me a fun fact about AI.", guardrails=guardrails)
print(result.final_output)

在这个示例中:

  1. 定义了一个 validate_output 方法,确保输出中不包含 “malicious” 关键词。
  2. 将 Guardrails 应用于智能体,防止其生成有害内容。
  3. 运行任务并获取安全的 AI 生成文本

6. 追踪(Tracing)

为了更好地分析和调试智能体的行为,OpenAI Agents SDK 提供了内置的追踪工具,允许开发者跟踪任务执行的每一步。

1
2
3
4
5
6
7
8
9
10
11
12
13
from agents import Agent, Runner, Tracing

# 开启追踪
tracing = Tracing()

# 创建智能体
agent = Agent(name="Debugger", instructions="Explain errors in Python code.")

# 运行任务
result = Runner.run_sync(agent, "Why does this code fail? print('Hello' + 123)", tracing=tracing)

# 显示追踪信息
print(tracing.get_logs())

在这个示例中:

  1. 启用了 Tracing 机制,记录任务的每个步骤。
  2. 智能体分析 Python 代码错误,提供调试建议。
  3. 调用 tracing.get_logs() 获取详细的追踪日志,方便后续优化。

7. 应用场景

OpenAI Agents SDK 适用于多种 AI 任务,以下是几个典型应用场景:

  • AI 助手:构建企业 AI 助理,处理邮件、文档总结等任务。
  • 代码生成:开发智能编程助手,提高代码编写效率。
  • 自动化客服:创建自动化客户支持机器人,提高响应速度。
  • AI 研究:在多智能体环境下研究 LLM 的协作能力。

8. 总结

OpenAI Agents SDK 通过智能体、任务交接、安全防护和追踪等功能,简化了 AI 智能体的开发,使其更易于扩展和维护。无论是构建 AI 助手、代码生成器,还是自动化系统,该 SDK 都能提供极大的便利。

如果你想探索更高级的应用,可以结合 OpenAI 的 GPT-4 Turbo、工具调用(Function Calling)以及 LangChain 框架,实现更复杂的多智能体协作。

💡 现在就试试吧! 安装 OpenAI Agents SDK,体验多智能体 AI 系统的强大能力!

OpenAI Agents SDK 解析:快速构建多智能体系统

https://blog.ailln.com/v2ai/2025/03/12/ai/1-openai-agents/

作者

Ailln

发布于

2025-03-12

更新于

2025-03-15

许可协议

评论