使用Swarm来写多智能体的代码,非常简洁高效。
什么是Swarm?
Swarm是由OpenAI开发的一个实验性多代理系统框架,旨在探索多代理系统的高效接口。该框架注重轻量级、可控性高且易于测试,主要用于展示代理之间的交接与例行操作模式。Swarm适用于需要处理大量独立功能和指令的场景,并提供了比Assistants API更高的透明度和精细的控制。Swarm通过Python实现,并使用Chat Completions API来处理代理之间的无状态通信。
官方的示例:
代理转移
examples/basic/agent_handoff.py
介绍了如何将说西班牙语的用户从一个英语代理转移到一个西班牙语代理。具体实现是:创建两个代理,一个只能说英语,另一个只能说西班牙语。当用户用西班牙语发送消息时,english_agent 会调用 transfer_to_spanish_agent 函数,将用户转移到 spanish_agent。最终,客户端会处理这个请求并返回响应。
理解了原理之后,我们开始修改。我先改造成了设计师和程序员的代理切换,针对不同的问题,自动切换合适的角色来回答。
有了第一步的尝试,我把这个代理切换的DEMO升级成了一个播客生成器。
1 首先创建一个主持人代理,用来根据话题创建若干问题。
2 把创建好的问题,一个个输入给Swarm
3 自动选择角色来回答问题
4 最后合并成一个播客的稿件
更进一步,我制作了一个ComfyUI的节点:
SimulateDevDesignDiscussions ♾️Mixlab Podcast
输入新的话题:数字艺术好看吗?
我是用的是gpt-4o,用了自定义的API URL(由Azure提供的)。
主持人的音色采用之前生成好的Opus的音色:
多人播客语音的生成,也很简单使用由ChatTTS提供支持的Multi Person Podcast节点,直接把生成好的配音稿,输入即可:
整体的 ComfyUI 工作流设计,如下:
第一期播客生产中:
最后的制作效果:
欢迎加入AI编程社区交流
Cursor AI编程#Mix线下训练营@上海N1
实现原理
欢迎加入AI编程社群交流