来源:OpenAI Agents SDK 文档 · OpenAI Agents SDK(Python)仓库 · OpenAI Developers Agents 指南 · OpenAI Agents SDK(JS/TS)仓库 | 整理时间:2026-04-15
概述
OpenAI Agents SDK 是面向生产环境的 Agent 开发框架,核心目标是:
- 用尽量少的抽象,快速搭建可运行的 Agent
- 支持从单 Agent 平滑演进到多 Agent 编排
- 把可观测性(Tracing)和安全控制(Guardrails)前置到开发流程
如果你已经在用 OpenAI API,Agents SDK 是把“函数调用 + 工作流编排 + 运行状态管理”统一起来的自然升级路径。
为什么 2026 年值得优先学习
| 维度 | 价值 | 说明 |
|---|---|---|
| 工程效率 | 高 | 快速从原型迁移到生产,不需要先造框架 |
| 可观测性 | 高 | 内置 tracing,便于调试多步执行和工具调用 |
| 编排能力 | 高 | 支持 handoffs、agents as tools、多 Agent 协作 |
| 安全性 | 中高 | guardrails + human-in-the-loop,适合有审核要求的流程 |
| 生态匹配 | 高 | 与 OpenAI 工具体系、MCP/连接器路线衔接紧密 |
核心概念
| 概念 | 作用 | 典型场景 |
|---|---|---|
| Agent | 定义一个“有职责边界”的智能体 | 写作助手、报表助手、代码助手 |
| Tools | 让 Agent 调用函数、MCP 服务或托管工具 | 数据查询、检索、执行操作 |
| Runner / run | 管理一次运行的生命周期 | 单轮执行、流式输出、中断恢复 |
| Handoffs | 在多 Agent 间交接任务 | 研究 Agent 交给写作 Agent 收尾 |
| Guardrails | 对输入/输出进行约束与校验 | 合规审查、敏感操作拦截 |
| Sessions | 保留会话状态与上下文 | 连续多轮业务处理 |
| Tracing | 可视化排障与性能分析 | 定位错误工具调用和延迟瓶颈 |
架构视角:从单 Agent 到多 Agent
用户请求
|
v
协调 Agent (Router)
|-- 工具调用:Function Tools / MCP Tools
|-- Handoff --> 研究 Agent
|-- Handoff --> 执行 Agent
v
结果汇总 + Guardrails 校验
|
v
最终输出
这个结构的关键点是“先分责,再协作”。避免把所有能力堆进一个超大 Agent,后期更容易维护和扩展。
最小可运行示例(Python)
from agents import Agent, Runner
assistant = Agent(
name="Assistant",
instructions="你是一个技术助手,优先给出可执行步骤。",
)
result = Runner.run_sync(assistant, "给我一个 Python 项目接入 MCP 的最小步骤")
print(result.final_output)
安装方式:
pip install openai-agents
export OPENAI_API_KEY=sk-...
带工具调用的实战示例(Python)
from agents import Agent, Runner, function_tool
@function_tool
def query_kb(keyword: str) -> str:
"""查询知识库并返回摘要。"""
fake_db = {
"mcp": "MCP 用于让模型调用外部工具和资源。",
"a2a": "A2A 用于 Agent 间互操作。",
}
return fake_db.get(keyword.lower(), "未找到相关内容")
research_agent = Agent(
name="ResearchAgent",
instructions="先调用 query_kb,再给出 3 条实践建议。",
tools=[query_kb],
)
result = Runner.run_sync(research_agent, "请解释 MCP")
print(result.final_output)
实践建议:
- 工具函数签名尽量稳定,避免频繁改参数导致提示词与调用失配。
- 为每个工具定义失败返回格式,便于 Agent 做重试或降级。
- 在关键工具调用前后打 trace 标记,后续排障成本会显著降低。
JS/TS 快速起步(Node.js)
import { Agent, run } from '@openai/agents';
const agent = new Agent({
name: 'Assistant',
instructions: 'You are a practical software architect.',
});
const result = await run(agent, 'Design a small multi-agent workflow for bug triage.');
console.log(result.finalOutput);
安装:
npm install @openai/agents zod
如果你的团队主要是 TypeScript 技术栈,建议从 JS/TS SDK 起步,后续再将 Python 版本用于数据密集型后端任务。
与其他主流方案的选择建议
| 方案 | 强项 | 适合你在什么情况下选择 |
|---|---|---|
| OpenAI Agents SDK | 轻量、可观测性、多 Agent 编排 | 已有 OpenAI 生态、追求快速落地 |
| Claude Agent SDK | 工具与安全策略结合紧密 | 需要更细粒度的权限与工作流控制 |
| Google ADK | 多模型和云生态整合 | 业务在 GCP,且需要强部署与评估能力 |
常见坑位与规避
| 坑位 | 现象 | 规避方式 |
|---|---|---|
| 角色边界不清 | 多 Agent 互相“抢答” | 每个 Agent 只负责单一职责 |
| 工具定义过宽 | 模型反复尝试错误调用 | 缩小工具输入范围并增加参数约束 |
| 缺少追踪 | 出问题后难定位链路 | 默认开启 tracing,按 run_id 追踪 |
| 会话策略混乱 | 上下文污染、结果漂移 | 明确 session 生命周期和清理策略 |
上线路线图(建议)
- 第 1 周:用单 Agent + 2 个工具完成闭环。
- 第 2 周:拆分为 Router + Specialist(handoffs)。
- 第 3 周:补齐 guardrails、人工审批、失败重试。
- 第 4 周:引入 tracing 指标,做延迟与成功率优化。
这样能在一个月内把“可演示原型”推进到“可控生产流程”。
相关链接
- 主流 Agent SDK 对比:Claude / OpenAI / Google
- AI Agent 核心模式详解
- MCP 协议入门
- MCP Server 开发教程
- OpenAI Agents SDK 文档:https://openai.github.io/openai-agents-python/
- OpenAI Agents SDK(Python):https://github.com/openai/openai-agents-python
- OpenAI Agents SDK(JS/TS):https://github.com/openai/openai-agents-js