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

发布: (2026年2月26日 GMT+8 20:30)
6 分钟阅读
原文: Dev.to

Source: Dev.to

《我如何构建 Swarm DJ:一个执行现场电子音乐的多代理 AI 系统》封面图 🎧

概览

当你把本地大型语言模型(LLMs)的钥匙交给 DJ 台时会发生什么?

这就是 Swarm DJ 的灵感来源。我想探索自主 AI 代理是否能够实时协作生成音乐、就创意方向展开争论,并真正让观众起舞——而无需任何人为干预。

其结果是一个由 OllamaMQTT 和实时 DSP 音频生成驱动的分布式多代理 AI 系统,将 AI 代理转变为一个集体的、自治的 DJ。

演示

在此观看演示

系统架构

构建一个自主 DJ 需要弥合慢速、逐标记文本生成与严格实时音频约束之间的差距(一次缓冲区错失就会导致可闻的噼啪声)。
为实现此目标,架构将“思考”与“演奏”分离,并使用 MQTT broker 作为中枢神经系统。

System Architecture

核心组件

  • 音频引擎 – 使用纯 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)的提案。指挥者监听后,信心最高的提案会立即获胜,从而确保快速且有主见的音乐转变。

🤯 紧急否决权

每个代理在每个会话中获得一次 紧急否决。如果代理觉得自己的愿景被完全忽视,它可以直接跳过投票循环:

  • ArchitectTempo Lock:将 BPM 冻结 32 小节。
  • GhostAmbient Wash:用混响淹没整个轨道并静音低音。
  • PranksterGlitch Storm:随机化音频参数,产生混乱的 8 小节掉落。

Swarm DJ Output

🚀 使用这种范式可以构建什么?

Swarm DJ 架构(实时引擎 + MQTT + 自主代理)极具适应性。使用此代码库,你可以构建:

  • AI 视频游戏导演 – 将合成器替换为 Unreal/Unity 集成;代理根据玩家血量控制敌人生成速率、天气和光照。
  • 自主灯光技术员 – 将 MQTT 输出连接到 DMX 灯具;大语言模型“监听” Spotify 流媒体并争论舞台灯光颜色和频闪速度。
  • AI 股票交易团队 – 用市场数据流替换 MIDI 时钟;保守、激进和逆向代理实时辩论并分配投资组合比例。
  • 交互式叙事者 – 让代理控制智能家居物联网设备(Hue 灯光、扬声器、门锁),同时在鬼屋景点中运行实时 D&D 风格的音频流。

构建仅存在于聊天界面的 LLM 工具已经是过去式。Swarm DJ 证明我们可以让代理走出聊天框,实时在现实世界中进行物理编排。

想要举办自己的 AI 疯狂派对吗?查看 repo 并自行构建代理吧!

0 浏览
Back to Blog

相关文章

阅读更多 »