XiaoAI Agent:让小爱音箱真正跑起自己的语音 Agent

过去几年里,大模型把语音助手的想象空间重新打开了。我们已经习惯了在手机、网页和电脑上和 AI 对话,但家里的智能音箱却常常还停留在比较固定的指令式体验里:问天气、放音乐、控制设备可以,但想要更自然的连续对话、更灵活的工具调用,或者接入自己选择的大模型服务,就没那么顺手了。

xiaoai-agent 想解决的正是这个问题:让小爱音箱不只是一个云端语音入口,而是变成一台可以常驻运行的端侧语音 Agent 设备。

项目地址:github.com/stevenjoezhang/xiaoai-agent

背景:小爱音箱还有很多潜力

小爱音箱本身是一类很适合承载语音 Agent 的设备。它有麦克风阵列,有扬声器,有唤醒能力,也有成熟的音频播放和 TTS 链路。换句话说,它的硬件形态已经非常接近「家里的 AI 入口」。

但现实使用中会遇到几个限制:

  • 原生小爱同学的对话能力和可扩展性有限,很难按自己的偏好接入新的大模型、ASR 或工具。
  • 一些改造方案需要额外部署服务器或桥接服务,链路变长,维护成本也会变高。
  • 原生小爱同学仍然可能监听麦克风,出现抢麦、抢答,甚至触发小米云端控制的情况。
  • 音频体验很难做好,比如唤醒、录音、回声消除、连续对话、中途打断等细节,任何一个环节不稳都会影响日常可用性。

xiaoai-agent 的方向,是尽量把这些能力收回到音箱端侧,让音箱自己完成唤醒、录音、识别、思考、工具调用和回复。

现有方案与不足

xiaoai-agent 之前,已经有不少项目尝试把小爱音箱和大模型连接起来。这些探索证明了小爱音箱的可玩性,也把很多底层路径跑通了。

比如原生小爱同学提供了稳定的唤醒、TTS、设备控制和生态接入能力,适合普通用户日常使用。但它的对话能力、模型选择和工具扩展都比较固定,用户很难把自己的 ASR、大模型或智能家居工作流接进去。

Open-XiaoAI 这类项目则打开了更底层的设备改造路径,让音箱具备 SSH、启动脚本和自定义部署的可能。它解决的是「能不能进入设备、能不能运行自己的东西」的问题,为后续折腾提供了基础。

MiGPT 等桥接类方案则更进一步,把大模型对话接入到小爱音箱体验里,让用户可以用自然语言和 AI 聊天。这类方案的优势是思路清晰、上手相对友好,但通常需要额外服务端或桥接层来承载 Agent 逻辑,音箱本身更像前端入口。

这些方案各有价值,但也留下了一些共同痛点:语音链路复杂、部署组件偏多、原生小爱可能抢麦或抢答、云端控制可能被误触发,音频细节也容易受多层转发影响。xiaoai-agent 正是在这些探索之上,尝试把 Agent 主流程进一步收回到音箱端侧。

它解决了什么痛点

xiaoai-agent 最核心的价值,是把小爱音箱改造成一个更开放、更可控的语音 Agent 载体。

首先,它避免了「两个助手同时工作」的混乱。项目会让原生小爱同学的麦克风输入静音,由 xiaoai-agent 接管真实麦克风音频。这样可以减少抢麦、抢答,以及误触发小米云端控制的问题。

其次,它降低了长期运行的复杂度。传统方案常常需要在局域网里额外跑一个服务,音箱和服务之间再做消息转发。xiaoai-agent 选择直接在音箱端侧运行 Agent,部署链路更短,也更像一台独立设备。

第三,它复用了音箱原本已经做好的音频能力。唤醒、VPM 音频回调、TTS 播报、播放控制等能力都来自设备原生系统,日常交互会更接近「真正的音箱体验」,而不是把音箱当作一个简单的外设。

最后,它给用户留下了足够多的选择空间。ASR 可以使用兼容 OpenAI POST /v1/audio/transcriptions 的服务,大模型也可以接入 OpenAI-compatible API。你可以按自己的预算、延迟和隐私偏好选择服务,而不是被固定在单一路径里。

主要特性

xiaoai-agent 是一个非官方技术研究项目,核心 Agent 使用 Rust 编写,运行在小爱音箱端侧。目前项目已经在 Xiaomi 智能音箱 Pro(OH2P)固件 1.62.2 上测试成功。

它目前已经具备一套完整的语音 Agent 闭环:

  • 端侧常驻运行:Agent 直接运行在音箱上,不需要额外部署专门服务端。
  • 完整语音流程:支持唤醒、录音、ASR、大模型对话、工具调用和 TTS 回复。
  • 更自然的交互:支持连续对话、VAD、中途打断、回声消除和播放时录音。
  • 开放模型接入:ASR 和 LLM 均可配置为兼容 OpenAI API 的服务。
  • 工具与设备控制:内置时间、天气、音乐播放等工具,并可通过 Home Assistant MCP 控制智能家居。
  • 保留部分系统能力:语音对话由 Agent 接管,但蓝牙网关等非语音服务不应受到影响。
  • 可自定义体验:可以调整唤醒响应、LED 状态、音乐服务和运行参数。

项目仓库中也包含补丁固件制作、刷机辅助、示例配置和部署说明,方便用户从设备准备一路走到 Agent 常驻运行。需要特别说明的是,它不是官方项目,也不是面向所有型号的一键通用方案;现阶段更适合愿意折腾、理解刷机风险,并且手上有对应设备的用户尝试。

这套能力组合起来,小爱音箱就不再只是一个固定功能的智能音箱,而更像是家里可以听、可以说、可以调用工具的 AI 节点。

简单部署思路

完整部署请以 GitHub 仓库文档为准,这里只概括大致流程:

  1. 克隆仓库:

    1
    2
    git clone https://github.com/stevenjoezhang/xiaoai-agent.git
    cd xiaoai-agent
  2. 根据仓库里的 deploy/README.md 重新打包补丁固件,并刷入支持 SSH、启动钩子和音频路径调整的系统。

  3. 获取音箱端 xiaoai-agent 程序。可以使用 Releases 中的构建产物,也可以按文档自行交叉编译 ARMv7 Linux 版本。

  4. 复制并编辑配置文件:

    1
    cp xiaoai-agent/agent.example.yaml xiaoai-agent/agent.yaml

    主要需要填写 ASR 服务、大模型服务,以及可选的天气、音乐、Home Assistant 等配置。

  5. 通过 SSH 将二进制程序和配置文件上传到音箱,再手动运行测试。确认唤醒、识别、回复和 TTS 都正常后,可以写入 /data/init.sh 实现开机自启。

刷机和系统修改都有风险,尤其是目前主要验证设备为 Xiaomi 智能音箱 Pro(OH2P)固件 1.62.2。尝试前请仔细阅读仓库中的免责声明、部署文档和恢复方式,确认自己能承担可能的设备、系统和合规风险。

适合谁尝试

如果你想要一个开箱即用的智能音箱增强方案,xiaoai-agent 可能是最轻量的选择。

但如果你符合下面几类情况,它会很有吸引力:

  • 手上有 Xiaomi 智能音箱 Pro(OH2P),并愿意折腾固件和 SSH。
  • 想把小爱音箱接入自己选择的大模型、ASR 或本地服务。
  • 希望智能音箱可以调用 Home Assistant、音乐服务和更多工具。
  • 受够了语音助手抢答、误触发、扩展性弱的问题。
  • 想要一个真正常驻在家里的语音 Agent 入口。

结语

xiaoai-agent 的有趣之处,不只是「让小爱音箱接上大模型」,而是把一个原本封闭、固定的智能音箱,重新变成可编排、可扩展、可持续演进的端侧 Agent 设备。

它还处在技术研究和早期适配阶段,但方向已经很清晰:复用音箱已有的优秀硬件和音频能力,把对话智能、工具调用和智能家居控制交给用户自己选择的模型与服务。

感兴趣的朋友可以打开 GitHub 仓库查看最新文档、部署步骤和注意事项:

https://github.com/stevenjoezhang/xiaoai-agent