OpenAI Agents SDK Python:轻量级多智能体工作流框架完全指南
OpenAI Agents SDK Python是一个轻量级但功能强大的多智能体工作流框架,专为构建复杂的AI应用而设计。这个开源框架支持OpenAI Responses和Chat Completions API,以及100+其他LLM提供商,是开发者构建智能代理系统的终极工具。## 🚀 快速入门指南### 环境配置与安装首先确保你的Python环境是3.9或更新版本,然后安装Ope
OpenAI Agents SDK Python:轻量级多智能体工作流框架完全指南
OpenAI Agents SDK Python是一个轻量级但功能强大的多智能体工作流框架,专为构建复杂的AI应用而设计。这个开源框架支持OpenAI Responses和Chat Completions API,以及100+其他LLM提供商,是开发者构建智能代理系统的终极工具。
🚀 快速入门指南
环境配置与安装
首先确保你的Python环境是3.9或更新版本,然后安装OpenAI Agents SDK包:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install openai-agents
对于语音支持,安装可选voice组:pip install 'openai-agents[voice]'。对于Redis会话支持,安装可选redis组:pip install 'openai-agents[redis]'。
第一个Hello World示例
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. 智能体(Agents)
智能体是配置了指令、工具、护栏和交接的LLM。每个智能体都可以独立执行特定任务,并通过协作完成复杂工作流。
2. 交接(Handoffs)
交接是一种专门的工具调用,用于在智能体之间转移控制权。这使得智能体能够将任务委托给专门的子智能体。
3. 护栏(Guardrails)
可配置的安全检查,用于输入和输出验证,确保智能体的行为符合预期和安全标准。
4. 会话(Sessions)
自动跨智能体运行管理对话历史,消除手动处理.to_input_list()的需求。
5. 追踪(Tracing)
内置的智能体运行跟踪功能,允许你查看、调试和优化工作流。
🔧 多智能体工作流实践
智能体交接示例
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(
name="Spanish agent",
instructions="You only speak Spanish.",
)
english_agent = Agent(
name="English agent",
instructions="You only speak English",
)
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
# ¡Hola! Estoy bien, gracias por preguntar. ¿Y tú, cómo estás?
if __name__ == "__main__":
asyncio.run(main())
函数工具集成
import asyncio
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather Assistant",
instructions="You are a helpful weather assistant.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
# The weather in Tokyo is sunny.
if __name__ == "__main__":
asyncio.run(main())
📊 会话管理功能
SQLite会话示例
from agents import Agent, Runner, SQLiteSession
# 创建智能体
agent = Agent(
name="Assistant",
instructions="Reply very concisely.",
)
# 创建会话实例
session = SQLiteSession("conversation_123")
# 第一轮对话
result = await Runner.run(
agent,
"What city is the Golden Gate Bridge in?",
session=session
)
print(result.final_output) # "San Francisco"
# 第二轮对话 - 智能体自动记住之前的上下文
result = await Runner.run(
agent,
"What state is it in?",
session=session
)
print(result.final_output) # "California"
🎪 高级功能特性
智能体循环机制
当调用Runner.run()时,框架会运行一个循环直到获得最终输出:
- 调用LLM,使用智能体上的模型和设置,以及消息历史
- LLM返回响应,可能包含工具调用
- 如果响应有最终输出,返回并结束循环
- 如果响应有交接,将智能体设置为新智能体并回到步骤1
- 处理工具调用(如果有)并附加工具响应消息,然后回到步骤1
结构化输出支持
框架支持结构化输出,允许智能体生成格式良好的数据,你可以在代码中检查这些数据。这对于分类任务和基于代码的编排特别有用。
🔍 调试与优化
追踪功能
OpenAI Agents SDK自动追踪你的智能体运行,使跟踪和调试智能体行为变得容易。追踪是可扩展的设计,支持自定义跨度和各种外部目的地,包括Logfire、AgentOps、Braintrust、Scorecard和Keywords AI。
💡 最佳实践建议
- 投资于好的提示:明确说明可用的工具、如何使用它们以及必须操作的参数
- 监控应用并迭代:查看问题所在,并迭代你的提示
- 允许智能体内省和改进:例如,在循环中运行它,让它自我批评
- 使用专门化的智能体:让每个智能体擅长一项任务,而不是期望一个通用智能体什么都擅长
- 投资评估:训练你的智能体改进并更好地完成任务
🚀 部署与扩展
框架支持多种部署选项:
- Redis会话:用于可扩展的分布式部署
- 自定义会话实现:你可以实现自己的会话内存
- Temporal集成:运行持久的长运行工作流,包括人在环任务
OpenAI Agents SDK Python框架为开发者提供了一个强大而灵活的工具集,用于构建下一代AI应用。无论你是构建简单的对话助手还是复杂的多智能体系统,这个框架都能提供所需的工具和功能。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)