OpenAI Agents SDK
用 Python 构建可调用工具、协作分工并可观测的多智能体工作流。
按维度查看评分与理由
证据显示:框架提供沙箱代理、人类介入机制、输入/输出验证(guardrails)、会话管理,以及可配置的权限(如沙箱路径授权)。依赖项有版本范围限制,且使用锁文件(uv.lock)和依赖组。外部效果方面,沙箱代理限制文件系统访问,但未提供明确的回滚机制。扣分:回滚机制未明确,依赖安全审计未在静态文件中体现。
证据显示:代码库有严格的类型检查(mypy strict)、linting(ruff)和测试配置(pytest),且测试文件存在。依赖项有版本范围,但未提供可用性保证。失败消息方面,测试和代码中提供了错误消息,但未系统化。扣分:依赖可用性未明确保证,失败消息的完整性未全面评估。
证据显示:README 描述了多种使用场景(文本、沙箱、实时、语音代理),并提供了示例。能力边界通过工具、guardrails 和沙箱机制定义。触发精度方面,代理的指令和工具定义明确。环境适配方面,支持多种 Python 版本和操作系统,并有可选依赖。扣分:已知限制未明确列出。
证据显示:README 提供了清晰的信息架构,安装说明详细,命名稳定(版本号明确),示例丰富,许可证为 MIT,版本控制通过 pyproject.toml 和 CHANGELOG(未提供)管理,维护责任由 OpenAI 承担。扣分:已知限制未明确列出,CHANGELOG 未提供。
证据显示:输出可用性高,提供了多种运行方式(同步、异步、流式),边际价值高(多代理工作流、沙箱、实时等),成本效益合理(开源、MIT 许可)。扣分:无。
证据显示:README 中的声明与代码和文档一致,有测试和示例支持,事实与推断分离清晰。扣分:无。
- 静态审查无法验证实际运行行为,所有评分基于源代码和文档。
- 依赖安全审计未在静态文件中体现,建议检查依赖漏洞。
- 回滚机制未明确,建议查看文档或代码中的恢复策略。
- 已知限制未在 README 中列出,可能影响用户预期。
这个 Agent 能做什么,适合哪些场景?
OpenAI Agents SDK 是一个用于构建多智能体工作流的 Python 框架,而不是一个现成的终端用户助手。开发者可通过 Agent、SandboxAgent 或 RealtimeAgent 定义指令、工具、护栏和交接关系,并由 Runner 执行任务。它支持 OpenAI Responses API、Chat Completions API,以及超过 100 种其他 LLM。框架提供函数、MCP 和托管工具,支持输入与输出护栏、人工介入、会话历史和追踪。SandboxAgent 可在容器或本地沙箱中检查文件、运行命令、应用补丁并保存较长任务的工作区状态;RealtimeAgent 面向基于 WebSocket 的低延迟语音和多模态体验。
开发者创建 Agent、SandboxAgent 或 RealtimeAgent,并配置 name、instructions 以及可选的工具、guardrails 和 handoffs。Runner.run_sync 可执行文本或沙箱任务并返回 result.final_output;示例中 SandboxAgent 通过 Manifest 和 GitRepo 指定仓库,Runner 使用 SandboxRunConfig 与 UnixLocalSandboxClient 运行,代理可检查工作区、执行命令和应用补丁。RealtimeRunner 运行 RealtimeAgent 后返回会话,应用可调用 session.send_message,并遍历 audio、history_added 和 agent_end 等事件。框架还管理跨运行会话历史,并记录运行数据以供查看、调试和优化。
- Python 后端团队需要把一个任务拆分给多个专职代理,并通过 handoffs 或 agents as tools 协作完成时。
- 需要让代理检查 Git 仓库工作区、运行命令并应用补丁的 macOS 或 Linux 开发自动化任务。
- 需要为代理函数、MCP 或托管工具接入业务动作,同时对输入和输出配置验证护栏的应用。
- 需要在多次代理运行间保留对话历史,并通过 tracing 排查或优化工作流的产品团队。
- 正在构建低延迟语音或多模态交互,并希望使用 RealtimeAgent 与 RealtimeRunner 处理 WebSocket 会话的开发者。
这个 Agent 有哪些优点和局限?
- 同一 Python 框架覆盖文本、沙箱和实时代理三种执行模式。
- 除 OpenAI 的 Responses 与 Chat Completions API 外,还明确支持超过 100 种其他 LLM。
- 内置 handoffs、agents as tools、函数/MCP/托管工具、护栏、人工介入、会话和追踪等工作流组件。
- SandboxAgent 可通过清单和沙箱客户端处理工作区检查、命令执行与补丁应用等长时任务。
- 运行示例要求配置 OPENAI_API_KEY,即使框架声明支持其他 LLM,其他提供商的具体配置方式未在给出的内容中说明。
- UnixLocalSandboxClient 仅支持 macOS 和 Linux;Windows 需要 DockerSandboxClient、docker extra 或托管沙箱客户端。
- 语音、Redis 会话和 Docker 沙箱分别需要安装对应可选依赖组。
- README 未提供定价、生产部署拓扑、其他 LLM 的适配步骤或服务可用性承诺。
如何安装或部署这个 Agent?
需要 Python 3.10 或更高版本。创建环境并安装:
python -m venv .venv
source .venv/bin/activate
pip install openai-agents也可使用 uv:
uv init
uv add openai-agents语音支持使用 pip install 'openai-agents[voice]';Redis 会话支持使用 pip install 'openai-agents[redis]'。运行示例前设置 OPENAI_API_KEY。
如何使用这个 Agent?
最小文本代理:
from agents import Agent, Runneragent = 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)如需语音功能,使用 agents.realtime 中的 RealtimeAgent 和 RealtimeRunner,并在会话中调用 await session.send_message(...)。如需工作区操作,使用 SandboxAgent;README 示例中的 UnixLocalSandboxClient 支持 macOS 和 Linux。Windows 应改用 DockerSandboxClient,并安装 openai-agents[docker],或使用托管沙箱客户端。
这个 Agent 与同类方案有什么区别?
若项目使用 JavaScript 或 TypeScript,仓库明确指向独立的 Agents SDK JS/TS;本仓库是 Python 版本。