Swarm:探索轻量级、高可控性的多智能体编排框架
你是否曾为构建复杂的多智能体系统而感到头疼,担心架构臃肿、学习曲线陡峭?OpenAI推出的Swarm(实验性、教育性项目)正是为了探索这一问题的优雅解法。它是一个基于Python的轻量级框架,旨在让开发者能够轻松地协调和执行多个AI智能体,构建可扩展的解决方案。本文将带你深入了解这个来自OpenAI的智能体编排思想实验。
重要提示:Swarm现已被OpenAI Agents SDK取代,后者是Swarm的生产就绪演进版本,具有关键改进并将由OpenAI团队积极维护。我们建议所有生产用例迁移至Agents SDK。
截至收录:
Swarm项目stars数:20792
Swarm项目forks数:2217
Swarm项目目录截图

Swarm项目核心亮点
- 🤝 智能体与交接(Handoffs):Swarm的核心是两个基础抽象:智能体(Agents)和交接(handoffs)。智能体封装了指令和工具,并可以在任何时候选择将会话“交接”给另一个智能体。这种设计使得智能体间的协作动态丰富而可控。
- ⚙️ 高度可控与轻量:框架设计极简,几乎完全在客户端运行,且与Chat Completions API一样,在调用之间不存储状态。这赋予了开发者对流程的精细控制,并避免了复杂的状态管理。
- 🧪 易于测试与评估:Swarm鼓励开发者建立自己的评估套件来测试智能体群(Swarm)的性能。项目本身提供了在航空客服、天气代理等场景下的评估示例,便于进行系统性的效果验证。
- 🔌 无缝函数调用:智能体可以直接调用Python函数。函数可以返回值、更新上下文变量,甚至通过返回另一个智能体来实现工作流的动态切换,将业务逻辑与智能体编排自然融合。
Swarm项目快速开始
只需几步,你就能体验Swarm的基本工作流程:
1. 安装:
bash
# 要求 Python 3.10+
$ pip install git+https://github.com/openai/swarm.git
- 创建智能体并运行:
“`python
from swarm import Swarm, Agentclient = Swarm()
定义一个交接函数
def transfer_to_agent_b():
return agent_b创建智能体A,它能将对话交接给B
agent_a = Agent(
name=”Agent A”,
instructions=”You are a helpful agent.”,
functions=[transfer_to_agent_b],
)创建智能体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”])
输出可能是一首俳句,例如:
Hope glimmers brightly,
New paths converge gracefully,
What can I assist?
“`
Swarm项目应用场景
- 复杂客服流程:如示例中的航空客服系统,可创建订票、改签、行李查询等多个专属智能体,通过一个总调度(Triage Agent)根据用户意图将对话交接给对应专家。
- 多步骤任务处理:例如“个人购物助理”场景,一个智能体负责商品推荐,当用户决定购买时,通过函数调用和交接,将任务移交给处理支付和订单的智能体。
- 模块化工作流构建:将每个业务步骤(如数据检索、转换、分析)封装成独立的智能体,通过清晰的交接逻辑组合成完整的数据处理管道,易于调试和迭代。
- 教育与研究:作为理解多智能体系统(MAS)编排原理的绝佳教育工具,开发者可以基于此探索智能体协作、通信和决策的新模式。
Swarm项目链接
openai / swarm项目地址:https://github.com/openai/swarm
本文地址:https://www.tgoos.com/41078
