OpenAI终于开放了一次,罕见地开源了多功能协同AI Agent——Swarm。
与普通AI Agent不同的是,Swarm可以同时创建多个智能体互相协同工作来完成特定任务,包括客户服务、销售支持和售后服务等,同时每个智能体都配备了一套专属工具集以更高效的完成任务。
例如,在电商领域,当用户反馈商品问题时,智能体能够按照设定的步骤,先深入了解问题,然后尝试提出解决方案。如果用户不满意,可以进一步提供退款等操作,可极大提升客服效率和质量。
Swarm简单介绍
开发人员可以在Swarm中定义Python函数作为智能体可调用的工具,这些函数被转换成符合OpenAI API要求的格式,可以在对话过程中由模型自动调用以执行实际任务,例如,查找商品信息或处理退款。
Swarm的强大不仅体现在工具的调用上,还能根据用户的输入动态地决定哪个智能体最适合当前情境,并将对话转移给该智能体。
这种高效方法确保了每次交互都是由最合适的专家来处理。当智能体需要使用某个工具时,Swarm提供了一个执行循环来处理这些工具调用,包括获取来自用户的输入、调用适当的工具、接收结果并基于此生成新的响应,直到没有更多的工具调用为止。
此外,Swarm采用了模块化设计使其具有极高的灵活性和扩展性,可以快速添加新的代理、修改现有用例或引入额外的功能,可以轻松随时更改其变化适应不同的环境。
值得一提的是,Swarm通过自然语言就能构建的智能体,包括询问问题、提供解决方案或执行特定操作。这也就是说,用户没有任何编程经验也能使用整体性能非常强。
Swarm示例
下面是Swarm作为客户服务的智能体简单示例:让智能体对用户问题进行分类,然后要么提出解决方案,要么提供退款。
先定义两个函数execute_refund和look_up_item。我们可以把它称为客户服务常规操作、智能体、助手等。
为了执行常规操作,我们先实现一个简单的循环:
1)获取用户输入。
2)将用户消息添加到messages列表。
3)调用模型,这里使用的是GPT-4o-mini。
4)将模型响应添加到messages列表。
但目前这个循环忽略了函数调用,所以我们需要添加一下。模型要求函数被格式化为函数模式。为了方便,我们可以定义一个辅助函数,将 Python 函数转换为相应的函数模式。
现在,可以在调用模型时使用这个函数来传递工具了。
最后,当大模型调用一个工具时,我们需要执行相应的函数并将结果返回给模型。可以通过将工具名称映射到Python函数的tool_map来实现这一点,然后在execute_tool_call中查找并调用,再将结果添加到对话中。
如果在实际应用场景中,我们还希望让大模型使用结果来产生另一个响应可以在一个循环中不断执行该流程,直到没有更多的工具调用。
OpenAI才刚开源Swarm,但在Github上非常火爆已经突破6000颗星还在快速增长中,有兴趣的小伙伴赶紧试试去吧。
开源地址:https://github.com/openai/swarm