OpenAI 今天悄悄地发布了一个名为 Swarm 的实验性框架,专门用于构建、编排和部署多智能体(Agent )系统!
Swarm 是什么?
Swarm 是一个轻量级的多 Agent 编排框架,它可以让 Agent 之间的协调和执行变得更轻量级、更容易控制,也更容易测试
Swarm 的两大核心抽象概念:
Agent:包含指令和工具,可以随时将对话移交给另一个 Agent
Handoff(移交):Agent 之间互相传递对话和执行任务的机制
Swarm 的优势:
轻量级:代码简洁,易于上手
可扩展:可以轻松扩展到大量 Agent
高度可定制:可以根据不同的需求进行定制
完全透明,控制粒度更细:开发者可以完全控制上下文、步骤和工具调用
几乎完全在客户端运行,并且像 Chat Completions API 一样,在调用之间不保存状态
Swarm 的适用场景:
Swarm 最适合处理大量独立的功能和指令,这些功能和指令难以编码到单个提示中。
与 Assistants API 的区别:
Swarm Agent 与 Assistants API 中的助手无关,只是命名相似
Swarm 完全由 Chat Completions API 驱动,因此在调用之间是无状态的
Assistants API 更适合需要托管线程和内置内存管理和检索的开发者,而 Swarm 更适合希望对上下文、步骤和工具调用进行完全透明和细粒度控制的开发者
Swarm 的例子:
OpenAI 提供了一些示例代码,可以帮助你更好地理解 Swarm 的用法:
•basic:基本的 Swarm 用法,例如设置、函数调用、移交和上下文变量
•triage_agent:设置基本 triage 步骤的简单示例,以移交给正确的 agent
•weather_agent:函数调用的简单示例
•airline:一个多 agent 设置,用于处理航空公司环境中的不同客户服务请求
•support_bot:一个客户服务机器人,包括一个用户界面 agent 和一个带有几个工具的帮助中心 agent
•personal_shopper:一个个人购物 agent,可以帮助进行销售和退款
运行 Swarm:
使用 Swarm 非常简单,只需实例化一个 Swarm 客户端即可:
from swarm import Swarm
client = Swarm()
Agent:
Agent 封装了一组指令和一组函数,并能够将执行移交给另一个 Agent。Agent 的指令可以直接转换为对话的系统提示。
函数:
Swarm Agent 可以直接调用 Python 函数。函数通常应该返回一个字符串。如果函数返回一个 Agent,则执行将转移到该 Agent。如果一个 Agent 函数调用出错(缺少函数、参数错误、错误),一个错误响应将被添加到聊天中,以便 Agent 可以正常恢复。如果 Agent 调用了多个函数,它们将按顺序执行
移交和更新上下文变量:
Agent 可以通过在函数中返回另一个 Agent 来将控制权移交给它。它还可以通过返回一个更完整的 Result 对象来更新上下文变量。
函数模式:
Swarm 会自动将函数转换为 JSON 模式,并将其传递给 Chat Completions 工具。函数的文档字符串会被转换为函数描述。没有默认值的参数会被设置为必需参数。类型提示会被映射到参数的类型(默认为字符串)。
流式传输:
Swarm 使用与 Chat Completions API 流式传输相同的事件。
评估:
评估对于任何项目都至关重要,OpenAI 鼓励开发者使用他们自己的评估套件来测试 Swarm 的性能
实用程序:
使用run_demo_loop来测试你的 Swarm!它将在你的命令行上运行一个 REPL。支持流式传输。
看来,Swarm 框架虽然还处于实验阶段,但其轻量级、可扩展和高度可定制的特性,使其成为构建多 Agent 系统的利器!OpenAI 的这波“骚操作”,可能会彻底改变 AI 应用的开发方式!
⭐星标AI寒武纪,好内容不错过⭐
用你的赞和在看告诉我~
领取专属 10元无门槛券
私享最新 技术干货