我如何构建 Swarm DJ:一个进行现场电子音乐表演的多代理 AI 系统 🎧
Source: Dev.to

概览
当你把本地大型语言模型(LLMs)的钥匙交给 DJ 台时会发生什么?
这就是 Swarm DJ 的灵感来源。我想探索自主 AI 代理是否能够实时协作生成音乐、就创意方向展开争论,并真正让观众起舞——而无需任何人为干预。
其结果是一个由 Ollama、MQTT 和实时 DSP 音频生成驱动的分布式多代理 AI 系统,将 AI 代理转变为一个集体的、自治的 DJ。
演示
系统架构
构建一个自主 DJ 需要弥合慢速、逐标记文本生成与严格实时音频约束之间的差距(一次缓冲区错失就会导致可闻的噼啪声)。
为实现此目标,架构将“思考”与“演奏”分离,并使用 MQTT broker 作为中枢神经系统。

核心组件
- 音频引擎 – 使用纯 NumPy 实现 DSP 合成(生成踢鼓、酸性循环和垫音),并使用 Spotify 的
pedalboard进行实时效果处理(混响、延迟、滤波)。它在独立的高优先级线程中运行,以防止音频掉帧。 - MIDI 时钟 – 发出严格同步于 BPM 的
clock/bar_complete事件,使 LLM 投票周期与音乐完美匹配。 - AI 代理 – 由本地 Llama 3.2 模型驱动的三种不同角色:
- 架构师 – 专注于结构,操控 BPM 和掉点阶段。
- 幽灵 – 情绪化、氛围化的代理,控制混响和低通滤波。
- 恶作剧者 – 天生用于制造混乱的代理,添加延迟和字面意义上的 vinyl‑tape‑stop 混沌。
- 议会 – 运行投票逻辑的 Python 编排器。
“独裁式信心”协议
最初,我构建了一个完全民主的投票系统:每 8 小节,代理们会进行讨论,提出参数更改,并对彼此的想法进行 Yes/No/Abstain 投票。
结果: 民主僵局。恶作剧者会提出混乱的方案,而建筑师会将其否决。
为了让音乐能够动态演进(并将循环时间从 15 秒缩短到 5 秒),我用 “独裁式信心” 取代了民主。
每 4 小节,每个代理会生成一个带有自我分配的 confidence 分数(0.0 – 1.0)的提案。指挥者监听后,信心最高的提案会立即获胜,从而确保快速且有主见的音乐转变。
🤯 紧急否决权
每个代理在每个会话中获得一次 紧急否决。如果代理觉得自己的愿景被完全忽视,它可以直接跳过投票循环:
- Architect – Tempo Lock:将 BPM 冻结 32 小节。
- Ghost – Ambient Wash:用混响淹没整个轨道并静音低音。
- Prankster – Glitch Storm:随机化音频参数,产生混乱的 8 小节掉落。

🚀 使用这种范式可以构建什么?
Swarm DJ 架构(实时引擎 + MQTT + 自主代理)极具适应性。使用此代码库,你可以构建:
- AI 视频游戏导演 – 将合成器替换为 Unreal/Unity 集成;代理根据玩家血量控制敌人生成速率、天气和光照。
- 自主灯光技术员 – 将 MQTT 输出连接到 DMX 灯具;大语言模型“监听” Spotify 流媒体并争论舞台灯光颜色和频闪速度。
- AI 股票交易团队 – 用市场数据流替换 MIDI 时钟;保守、激进和逆向代理实时辩论并分配投资组合比例。
- 交互式叙事者 – 让代理控制智能家居物联网设备(Hue 灯光、扬声器、门锁),同时在鬼屋景点中运行实时 D&D 风格的音频流。
构建仅存在于聊天界面的 LLM 工具已经是过去式。Swarm DJ 证明我们可以让代理走出聊天框,实时在现实世界中进行物理编排。
想要举办自己的 AI 疯狂派对吗?查看 repo 并自行构建代理吧!