开发与工程 ✓ OpenAI · 官方 multi-agent-orchestrationhandoffsfunction-callingchat-completionspython

Swarm(实验性教学框架)

一个轻量级、符合人体工程学的多智能体编排框架,专注于智能体间的协调与灵活交接。

FollowAgents 评估 · FARS-2.1
不推荐
51/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全7 / 29 · 1.2/5

证据显示:仓库由OpenAI官方组织发布,MIT许可证,有SECURITY.md提供安全政策链接。代码中Swarm客户端接受可注入的OpenAI客户端,允许模拟,但默认使用真实API密钥,未提供最小权限或用户确认机制。数据流透明度有限,文档说明context_variables和消息传递,但未明确敏感数据处理。依赖安全方面,pyproject.toml仅列出setuptools,未锁定版本,存在供应链风险。外部影响方面,工具函数可执行任意Python代码,但文档未强调风险。回滚机制未提及。来源归属清晰,贡献者列出。扣分原因:缺乏用户确认、敏感数据处理、回滚机制,依赖未锁定。

2可靠稳定8 / 14 · 2.9/5

证据显示:代码结构一致,README与代码示例匹配。依赖OpenAI Python SDK,但未指定版本,可能影响可用性。错误处理方面,文档说明函数调用错误会追加错误消息,但未提供详细错误消息格式。扣分原因:依赖版本未固定,错误消息细节不足。

3适用触发12 / 18 · 3.3/5

证据显示:README明确目标受众为开发者,提供多个示例场景(basic、triage_agent、weather_agent等)。能力边界清晰,说明Swarm是教育性框架,不适用于生产。触发精度方面,函数调用和handoff机制明确。环境适配方面,要求Python 3.10+,支持流式。扣分原因:无重大缺陷,但未提供详细的环境配置指南。

4规范维护11 / 18 · 3.1/5

证据显示:README结构清晰,包含安装、使用、文档、示例等。安装说明提供pip安装命令。命名稳定,Agent和Swarm类命名一致。示例丰富,包含多个场景。已知限制明确,指出Swarm已被Agents SDK取代。许可证为MIT。版本控制方面,无CHANGELOG,但README提及取代。维护责任明确,由OpenAI团队维护。扣分原因:缺少版本变更日志。

5有效结果9 / 13 · 3.5/5

证据显示:输出可用性高,返回Response对象包含消息、代理和上下文变量。边际价值高,提供轻量级多代理编排。成本效益方面,免费开源,但需要OpenAI API密钥。扣分原因:无重大缺陷。

6证据核验4 / 8 · 2.5/5

证据显示:README中的声明与代码示例一致,可追溯。跨来源验证有限,仅依赖单一仓库。事实与推断分离,文档明确区分实验性和生产就绪。扣分原因:缺乏外部验证。

证据充分度: 评估于 2026年8月9日 审查版本 6af0b4caf37d
源码中未见的安全控制:执行前用户确认、敏感信息处理、回滚或恢复路径
使用前请注意
  • 该框架为实验性,不适用于生产环境,官方已建议迁移至Agents SDK。
  • 工具函数可执行任意代码,需谨慎设计权限和输入验证。
  • 依赖未锁定版本,存在供应链风险。
  • 未提供用户确认机制,敏感操作需自行实现。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Swarm 是 OpenAI 解决方案团队维护的一个实验性教学框架,旨在演示如何构建轻量级且高度可控的多智能体编排系统。该框架基于两个核心抽象:Agent 和 handoffs,Agent 封装了指令和工具,并可在任何时刻将对话转交给另一个 Agent。Swarm 完全由 Chat Completions API 驱动,调用之间无状态。它提供 client.run() 方法执行工具调用、处理智能体交接和上下文变量,并支持流式响应。安装简单,但官方建议生产环境迁移到新的 OpenAI Agents SDK。

Swarm 的核心是 Swarm 客户端和 Agent 类。客户端通过 run() 方法接收初始 Agent 和消息列表,并循环执行:获取当前智能体的补全、执行工具调用、必要时切换智能体、更新上下文变量。Agent 可以定义为包含指令和函数列表,函数可以是普通的 Python 函数,返回 Agent 则触发交接。Swarm 自动将函数转换为 JSON Schema 供 Chat Completions 使用。它还支持通过 Result 对象更新上下文变量、流式响应和 REPL 演示循环。

  1. 开发者学习如何使用函数调用和 handoffs 构建多智能体编排系统。
  2. 需要在单个对话中处理多个独立能力或指令集的场景。
  3. 构建客服机器人,如示例中的航空公司支持、用户界面代理和帮助中心代理。
  4. 需要轻量级且可测试的智能体协调逻辑,而不想引入全托管线程的开发者。
  5. 用于教学或原型设计,演示如何实现智能体间的转移和工具调用。

这个 Agent 有哪些优点和局限?

优点
  • 轻量级设计,仅依赖 Chat Completions API,无状态,易于集成和测试。
  • 使用简单的 Agent 和 handoff 抽象,可以灵活构建复杂的工作流和智能体网络。
  • 提供流式响应和 REPL 演示,便于快速测试和调试。
  • 由 OpenAI 团队维护,作为教学资源,示例丰富,包括航空公司客服、天气代理和购物助手。
局限
  • 实验性项目,官方已宣布被 Agents SDK 取代,生产环境不建议使用。
  • 完全依赖 OpenAI 的 API,无法用于其他模型提供商,存在厂商锁定。
  • 文档有限,且没有内置的状态管理或托管线程,需要自行处理会话状态。
  • 安装需要 git 和 Python 3.10+,对非开发者有一定门槛。
  • 部分函数 schema 生成可能不完整,例如不支持逐参数描述。

如何安装或部署这个 Agent?

需要使用 Python 3.10 或更高版本。通过以下命令安装:

pip install git+ssh://[email protected]/openai/swarm.git

或者使用 HTTPS:

pip install git+https://github.com/openai/swarm.git

如何使用这个 Agent?

首先设置 OpenAI API 密钥。然后,导入并创建 Swarm 客户端,定义 Agent 及其指令和函数。使用 client.run() 传入初始 Agent 和消息列表,它返回一个 Response 对象,包含消息、最后执行的 Agent 和上下文变量。示例代码:

from swarm import Swarm, Agent

client = Swarm()

def transfer_to_agent_b():
    return agent_b

agent_a = Agent(
    name="Agent A",
    instructions="You are a helpful agent.",
    functions=[transfer_to_agent_b],
)

agent_b = Agent(
    name="Agent B",
    instructions="Only speak in Haikus.",
)

response = client.run(
    agent=agent_a,
    messages=[{"role": "user", "content": "I want to talk to agent B."}],
)
print(response.messages[-1]["content"])

这个 Agent 与同类方案有什么区别?

Swarm 的设计与 OpenAI 的 Assistants API 不同,后者提供全托管的线程和内置记忆管理。Swarm 则完全在客户端运行,无状态,类似于 Chat Completions API。官方建议生产环境迁移到新的 OpenAI Agents SDK 以获得更好的支持。

常见问题

Swarm 是生产级框架吗?
不是。Swarm 是实验性教学资源,已被 OpenAI Agents SDK 取代,官方建议生产环境使用 Agents SDK。
我需要付费或申请权限吗?
Swarm 本身是 MIT 许可的开源项目,但使用它需要 OpenAI API 密钥,并且会产生 API 调用费用。
Swarm 支持流式输出吗?
是的,client.run() 接受 stream=True 参数,并返回与 Chat Completions API 流式事件兼容的迭代器,还添加了 delim 和 response 事件。
如果函数调用出错会发生什么?
错误信息会被追加到对话中,让智能体能够优雅地恢复。
我能否在其他模型提供商上使用 Swarm?
不行,Swarm 完全基于 OpenAI 的 Chat Completions API,目前不支持其他提供商。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents