OpenAI Agents SDK 快速指南:5 分钟搭出你的第一个多智能体系统
【免费下载链接】openai-agents-pythonA lightweight, powerful framework for multi-agent workflows项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-python
OpenAI Agents SDK 是一个 Python 多智能体框架与 Agent 编排库,兼容 OpenAI Responses 与 Chat Completions API,也支持 100+ 第三方 LLM,把 Agent 定义、Handoffs、Guardrails、Sessions 和运行追踪装进一个 pip 包。下面讲清它的最小可用路径与生产化要点,读完你能写出一个 10 行的 PoC。
🗺️ 能力与场景对照表:引入前先看一眼
框架值不值得引入,用场景判断最快。下表把核心能力对应到它解决的问题,对照你的业务先打个勾:
| 能力 | 你什么时候需要它 |
|---|---|
| 单 Agent + 函数工具 | 想让 LLM 调你自己的接口、数据库或业务函数 |
| Handoffs | 对话需要在翻译、财务、售后等专业 Agent 之间转接 |
| Guardrails | 输入输出要做安全检查,防提示注入和越界回答 |
| Sessions | 对话历史要跨轮次、跨服务记住 |
| Tracing | 上线后工作流出错,要看到底哪一步、哪个工具、哪次模型调用慢 |
| Sandbox / Redis / Temporal | 长任务、多实例分布式部署、人在环审批 |
这些能力都不需要额外搭架子:它们要么是传给 Agent 的参数,要么是一个可选安装组。
🐍 三步跑通你的第一个 Agent
环境要求只有 Python 3.10+,三步就能跑起来:
- 安装:
pip install openai-agents(用 uv 的话是uv add openai-agents) - 设置环境变量
OPENAI_API_KEY - 定义一个带指令的 Agent,交给 Runner 执行
这段代码建了一个只有一句指令的 Agent,让它写一首俳句:
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)你会看到:终端打印出一首英文俳句。整个过程就是一次 LLM 调用,没有工具、没有历史,这就是这个多智能体框架的最小执行循环。
不想用 OpenAI 模型也行,通过官方 litellm provider 接入第三方 LLM,Agent 代码不用改。
🤝 让多个 Agent 互相交接:Handoffs 的正确姿势
Handoffs 解决的是 Agent 之间的控制权转移。它像客服转接:前台坐席判断这个问题不归自己管,点一下转接,整段对话就交给专员。技术上 Handoffs 是一个特殊的工具调用:LLM 决定转接时,Runner 把控制权交给新 Agent,然后在新 Agent 身上继续同一个循环。
比如下面这个分诊 Agent 处理中西语用户,它自己不翻译,而是把对话交给对应的语言 Agent:
from agents import Agent, Runner spanish = Agent(name="Spanish agent", instructions="You only speak Spanish.") english = Agent(name="English agent", instructions="You only speak English.") triage = Agent( name="Triage agent", instructions="Hand off to the agent matching the user's language.", handoffs=[spanish, english], ) print(Runner.run_sync(triage, "Hola, ¿cómo estás?").final_output)这段代码定义了一个分诊 Agent 和两个语言 Agent,由 LLM 决定转给谁。你会看到:西班牙语问候由 Spanish agent 回答,全程没有任何硬编码路由,转接由模型的工具调用完成。
Handoffs 还有个反向玩法:agents as tools——父 Agent 把子 Agent 当工具调用,拿回结果后继续执行。哪种更适合你的场景,可以直接看 Handoffs 示例。
💾 智能体会话持久化:对话历史往哪存
Sessions 解决一件事:不用你手动把历史拼给模型。创建会话后每次运行都传进去,SDK 会在运行开始时自动加载历史、结束时写回新消息,你不用手写消息列表的拼接逻辑。
本地开发和单机部署用内置的 SQLiteSession 就够:
from agents import Agent, Runner, SQLiteSession agent = Agent(name="Assistant", instructions="Reply very concisely.") session = SQLiteSession("conversation_123") r1 = Runner.run_sync(agent, "What city is the Golden Gate Bridge in?", session=session) r2 = Runner.run_sync(agent, "What state is it in?", session=session) print(r2.final_output)这段代码用同一个会话连问两轮,让 Agent 记住上下文。你会看到:第二轮直接回答 California,它知道“it”指金门大桥。
多实例部署换 Redis 会话即可,安装openai-agents[redis]可选组;也可以按会话接口自己实现一套,把历史写进任意存储。
🔍 多 Agent 工作流调试:直接读 Tracing 轨迹
工作流里 Agent 一多、工具一多,“错了但不知道为什么”就成了日常。Tracing 默认开启:每次运行里的每个 LLM 调用、工具执行、Handoffs 转接都会记成一个 span,带耗时、token 用量和输入输出快照。
在追踪界面里,一次运行能展开成完整时间线:谁转交给了谁、哪个工具慢、每次模型调用烧了多少 token。这是多 Agent 工作流调试的第一站——先看轨迹,再判断是提示词、工具还是模型的问题。Tracing 是可插拔设计,span 也可以发到 Logfire、AgentOps、Braintrust 等外部目的地。
生产化部署:Sessions、Guardrails 与 Sandbox
上生产要盯四条防线:
| 关注点 | 做法 |
|---|---|
| 多实例、多服务共享会话 | 换 Redis 会话,会话层与存储层解耦 |
| 输入输出安全 | 在 Agent 前后挂 Guardrails,拦截或标记违规输入输出 |
| 长任务与人在环审批 | Temporal 集成,跑持久化工作流 |
| 代码执行与文件操作 | 放进 Sandbox agent,隔离网络与文件系统 |
Sandbox 把 Agent 圈进容器里:Agent 循环、工具、文件系统都在沙箱内,出站请求由网关统一拦截,模型产生越权调用也碰不到内部真实系统。
想动手的话,先跑 examples/basic 里的 hello world 感受执行循环;评估生产化就先看 官方文档 里 sessions 和 tracing 两章,确认状态和可观测性落在哪。更完整的模式(人在环、护栏、并行)都在 examples 目录里,照着抄最快。
【免费下载链接】openai-agents-pythonA lightweight, powerful framework for multi-agent workflows项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-python
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考