LESSON 23 · 阶段 F · 迁移与扩展 · LEARN NOTES

收进学习手册 · 2026-09-11 · duck.whatled.com

第 23 课 · 语音大脑:小智 ESP32 与 MCP

这一课解决什么问题:阶段 E 你用手柄发目标,这一课把"目标入口"再往上一层——用一句自然语言让鸭子听懂并执行;同时弄清语音指令为什么不能绕过安全检查。

前置:第 21 课;记得第 01 课的"你发目标,策略管过程"。


1. 回到第 01 课那张图:语音是更上层的目标入口

第 01 课画过这个分层:上层发目标 → 策略算出 14 个关节角度 → 关节转动 → 传感器回传。手柄已经是一层"目标入口":你推摇杆,只改速度指令。语音做的是同一件事,入口更高:

你说话 ──▶ 语音大脑(听懂 + 决策) ──▶ 动作指令 ──▶ 策略 ──▶ 关节

变的不是鸭子,是目标的表达方式。入口越往上越聪明,但听错的风险也越大,越需要下层保护(第 5 节)。

所以呢:看到任何"智能产品",先问:它的目标入口在哪一层?

2. 小智 ESP32 是什么

xiaozhi-esp32/ 是工作区里的开源项目:一套跑在 ESP32 开发板上的 AI 语音聊天固件——接上麦克风和扬声器、联网后就能跟 AI 对话。小智负责"听懂",听到之后做什么,由设备注册的能力决定。docs/microduck-30day/README.md 把它定位为"第 30 天的语音/MCP 扩展,不属于 PPO 训练核心"——训练与交互解耦。

3. MCP:给 AI 的标准插线板

MCP(Model Context Protocol)一句话:让 AI 能发现并调用外部工具的标准接口——像一块标准插线板:设备把能做的事做成标准插头,模型来了即插即用。

xiaozhi-esp32/docs/mcp-usage.md 给出的完整流程只有四步:

  1. 设备启动,经 WebSocket 或 MQTT 连上后端;
  2. 后端发 initialize,开始 MCP 会话(底层是 JSON-RPC 2.0);
  3. 后端发 tools/list,发现设备注册了哪些工具;
  4. 后端用 tools/call 调用某个工具。

设备端用 McpServer::AddTool 注册工具:名字、自然语言描述、参数、实现。文档例子 self.dog.forward("Move the robot forward"),无参数,回调直接发前进指令;命名建议 模块.动作 风格。

"让鸭子走过来"在系统里就变成一次 tools/call:调用 self.duck.come_here(示意工具名,真实示例见 mcp-usage 文档),参数为空。

模型不需要被逐条教过这句话——读工具的描述就知道什么时候该调。"插线板"的含义:能力是插上去的,不是焊死的。

另一类 AddUserOnlyTool(仅用户可调):默认不在 tools/list 里,后端要带 withUserTools=true 才能看到。文档用它放 self.reboot(重启)、self.upgrade_firmware(固件升级)这类不该让 AI 自主触发的操作——这本身就是安全原则。

4. 给鸭子加语音的三层结构

调研报告 docs/research/physical-ai-robot-startup-research-2026-09-04.md 第 6 节建议的分层,正好和鸭子对上:

耳朵  麦克风         采集声音
大脑  ESP32 语音前端 + 后端大模型  听懂并决策(高阶 AI 可放电脑/手机/树莓派)
身体  策略 + 安全层   50 Hz 控制环、动作限幅、急停

报告的关键原则:即使高阶 AI 断网,机器人也应能完成基础动作、停止、静音和隐私关闭——云端可以增强体验,但不能成为硬件安全的单点故障。

5. 安全边界:语音不绕过安全检查

语音指令到达身体前,必须穿过和手柄相同的安全层(第 20 课的清单、限幅、急停)——语音只是换了入口,不享受特权。三条:

  1. 运动类工具的回调先过限幅和检查,再下发;
  2. 重启、升级等特权操作一律用 AddUserOnlyTool,模型碰不到;
  3. 断网降级:听不懂、连不上时,鸭子保持站立,而不是乱动。

所以呢:给任何系统加更聪明的入口,先问:它绕过了哪些老检查?

动手练习(15 分钟)

仿照 self.dog.forward(见 xiaozhi-esp32/docs/mcp-usage.md),在纸上设计 5 个给鸭子的语音工具:工具名 + 一句英文描述 + 参数 + 对应行为;至少 1 个用 AddUserOnlyTool(哪个动作不该让 AI 自主触发?)。这就是选题日历第 29 天的素材(见 docs/microduck-30day/articles/editorial-calendar.md)。

自查清单

下一课预告

第 24 课是全课程的方法论总结:这只鸭子教会你的五件事,如何迁移到游戏 AI、IoT、原型、运营实验和数字孪生。

延伸资源

什么鸭 WHATDUCK · 复刻学习笔记 ← 全部手册 · 首页