你是不是也想要一个桌面机器人?
不用很复杂,就放在桌上。心情不好的时候能哄哄你,无聊了能陪你聊两句,有事的时候还能帮你干点活。
以前做这种东西,门槛是硬件和代码:要会焊板子、装开发环境、查串口、记一堆烧录命令。现在这两道门槛都低了很多。开源项目小智 AI 已经把“会听会说”的部分做好了,Claude Code、Codex 这类 AI 编程工具又能替你敲命令。你要做的,是把需求说清楚,然后在关键步骤看一眼。
这两天我就用一块立创实战派 ESP32-S3 开发板,从拆包到对它喊出“你好 Claude”,完整走了一遍。下面是成品:

视频由 X 托管,播放需要能够访问 X。
| 成品 | 情况 |
|---|---|
| 硬件 | 立创实战派 ESP32-S3 开发板,官网 148 元,新用户 128 元 |
| 唤醒词 | “你好 Claude” |
| 形象 | 自己做的像素小怪,21 种表情 |
| 名字和性格 | 自称 Claude,说话温柔,会接情绪 |
| 背后的大模型 | 小智后台提供的 Qwen、DeepSeek 等,绑定 GitHub 免费用 |
| 能帮你干活 | 通过 MCP 调用电脑上的工具,我跑通了官方的计算器示例 |
如果你只记一句话,先记这个:小智负责让板子会听会说,后台的大模型负责想怎么回答,Claude Code 负责替你动手。 三样各管一段,你哪一段都不用从零写。
这篇文章按真实操作顺序写。先让 AI 把小智固件刷进开发板,再连 WiFi、绑定后台、调性格和模型,让它开口聊天;然后用 MCP 让它调用电脑上的工具;最后把唤醒词和形象换成你自己的。
标题写了手把手,这里的手把手也有一个实际范围。你不需要会写代码,但要会用 Claude Code 或 Codex 发一段话、看懂它准备执行什么。整套流程我是在 Mac 上做的。Windows 没有实测,串口名不一样,其他步骤应该类似。
本文用的是 2026 年 10 月 13 日的小智固件 v2.5.2 和 xiaozhi.me 控制台,界面以后可能会变,菜单名以你看到的为准。
备注:这里的“Claude”是我给它起的名字和唤醒词,背后回答问题的是小智后台的大模型,不是 Anthropic 的 Claude。
本文导读
01|先搞懂,再备料
第一章讲清小智到底在做什么,把固件、串口、烧录这些词翻译成人话。第二章准备开发板、数据线、WiFi 和练习文件夹,最后在文件夹里打开 AI 工具。
02|让 AI 刷固件
第三章是全文最核心的一章。分五步把识别设备、备份、下载、烧录、看日志交给 AI,每一步都告诉你看到什么才算成功。
03|联网、绑定、调性格
第四、五章完成配网和后台绑定,第六章改名字、音色和性格,绑定 GitHub 解锁更好的模型,第七章开口聊天。只想要一个能聊天的小助手,看到这里就够了。
04|进阶:让它干活,变成你的样子(可选)
第八章用 MCP 让它调用电脑上的工具,第九章换唤醒词和形象。这两章技术味重一些,想做成开头视频里那样再看。只想要同款效果,第九章开头有我开源的资源包,写一次就行。
05|翻车速查和升级路线
第十章汇总常见问题、三种恢复办法和一条小白升级路线。遇到问题,可以直接从最后一章开始查。
一、先搞懂这套方案在做什么
1. 小智:把会听会说装进一块小板子
小智是 GitHub 上的一个开源项目,专门用 ESP32 做 AI 语音聊天机器人。
- 项目地址:https://github.com/78/xiaozhi-esp32
- 开源协议:MIT,固件代码可以随便改
- 官方后台:https://xiaozhi.me
你对它说一句话,背后大致走了这么一圈:
你说话 → 开发板录音 → 服务器把声音识别成文字 → 大模型想好回答 → 合成语音 → 开发板播放,屏幕显示字幕和表情
开发板自己只负责“听”和“说”,真正动脑子的部分在服务器上。小智官方提供了一个现成的后台 xiaozhi.me,设备连上以后,识别、大模型、合成都不用你操心。
这也是这套方案对小白最友好的地方:不用自己搭服务器,不用买 API,后台注册就能用。
2. 为什么选立创实战派
我用的是立创的「实战派 ESP32-S3」开发板。
| 项目 | 参数 |
|---|---|
| 芯片 | ESP32-S3 |
| 存储 | 16MB Flash + 8MB PSRAM |
| 屏幕 | 320×240 彩屏 |
| 音频 | 喇叭输出 + 四麦克风输入 |
| 其他 | 摄像头、BOOT 键 |
选它有两个原因。
第一,屏幕、喇叭、麦克风都是板载的,到手是带外壳的整机,不用自己接线、不用焊。
第二,它是小智已经适配好的板子。小智的发布页里有它对应的现成固件,文件名带 lichuang-dev,下载下来直接刷,不用自己编译。
小智支持的板子很多,不一定非要用这块。但第一次玩,建议直接买已经适配好的板子,能省掉很多折腾。
3. 几个名词,我给你翻译成人话
后面会反复出现几个词,先认一下,不用背:
- 固件:板子里跑的程序。刷固件,就是把小智这套程序装进板子,替换掉出厂的演示系统。
- 串口:电脑和板子说话的通道。USB 线插上以后,电脑上会多出一个串口,Mac 上叫 /dev/cu.usbmodem 加一串数字,Windows 上叫 COM 加数字。
- 烧录:把固件文件写进板子的存储里。也有人叫刷机、写入。
- Flash 和分区:Flash 是板子的存储,16MB。它被切成好几块,有的放程序,有的放 WiFi 设置,有的放表情图片,每一块叫一个分区。
- assets:其中一块分区,放表情、字体和唤醒词模型。第九章换形象、换唤醒词,改的就是它。
- 配网:告诉板子你家 WiFi 叫什么、密码是多少。
- 唤醒词:叫醒它的那句话,默认是“你好小智”。
- MCP:让 AI 调用外部工具的一种标准接口。第八章会用它让小智调用你电脑上的程序。
4. 读完以后的完成标准
必做:第二到七章。 跟着走完,你应该可以:
- 让 Claude Code 或 Codex 识别开发板,备份出厂固件,再刷入小智
- 用手机给开发板配网,在 xiaozhi.me 后台绑定设备
- 改它的名字、音色和性格,绑定 GitHub 免费换上更好的模型
- 用唤醒词或 BOOT 键叫醒它,正常聊天
- 改坏了知道怎么恢复,想回到出厂状态也能回去
进阶:第八、九章,可选。 有兴趣再做:
- 跑通一个 MCP 工具,让它调用电脑上的程序
- 把唤醒词改成“你好 Claude”,把表情换成自己的形象
二、开工前,先把这几样准备好
1. 买一块开发板
官网 148 元,新用户 128 元。购买地址:立创商城 · 实战派 ESP32-S3

到手是带外壳的整机,配一袋连接线和收纳盒。插上电就是立创自带的演示系统,屏幕上写着“欢迎使用立创实战派开发板”。我们要做的,就是把这套演示系统换成小智。
2. 一根能传数据的 USB 线
这一项最容易被忽略。有些线只能充电,不能传数据,插上电脑根本认不出设备。 第三章如果 AI 说找不到串口,先换根线试试,比查别的都快。
3. 一个 2.4G WiFi 和一部手机
手机用来给开发板配网,也用来登录小智后台。
WiFi 一定要是 2.4G 的。ESP32 连不上 5G WiFi,第四章配网页面上也写得很清楚。很多路由器的 2.4G 和 5G 名字只差一个“-5G”后缀,现在就可以先看一眼你家的 WiFi 叫什么。
4. 新建一个练习文件夹
动手前,在电脑上新建一个空文件夹,比如在桌面建一个 xiaozhi。后面打开 Claude Code 或 Codex,都在这个文件夹里打开。
这样做有两个好处:备份文件、下载的固件、AI 写的小工具都集中放在这里,不会散落到别处;你也能随时打开文件夹,看它到底生成了什么。
5. 装好 Claude Code 或 Codex,并在练习文件夹里打开它
电脑上装好其中一个就行,两个用哪个都可以。后面所有命令都是它来敲,你负责发需求、看它准备执行什么、点确认。
第一次用,照着下面在练习文件夹里打开它:
- 打开终端。Mac 在启动台里搜“终端”,Windows 打开 PowerShell;
- 输入 cd,后面加一个空格,然后把练习文件夹直接拖进终端窗口,按回车;
- 用 Claude Code 就输入 claude,用 Codex 就输入 codex,按回车。
看到它的对话界面,就可以开始发提示词了。以后每次关掉再打开,都按这三步来。
费用要提前说清楚:这两个工具一般要用付费订阅或者 API 额度,具体价格以官方页面为准。文中说的 128 元,只算开发板。 已经在用其中一个的话,不用额外花钱。
准备好这五样,剩下的就是跟着步骤走。
三、让 AI 帮你刷固件
这一章是全文最核心的部分。听着最吓人,但其实你什么命令都不用记。
我把它拆成五步,每一步单独发一段提示词。熟练以后,也可以用本章最后那段合并版,一次说完。
每段提示词我都写了四样东西:做什么、不许做什么、做完给我看什么、怎么算成功。 这样它不容易自作主张,你也知道该检查什么。
1. 插上 USB,让 AI 认出这块板子
用 USB 线把开发板接到电脑上,在练习文件夹里打开 Claude Code 或 Codex,发这段:
我用 USB 接了一块立创实战派 ESP32-S3 开发板,准备刷小智 AI 固件。
项目地址:https://github.com/78/xiaozhi-esp32
这一步只做识别,不要写入任何东西:
1. 找到开发板对应的串口;
2. 在当前文件夹建一个 Python 虚拟环境,装好 esptool;
3. 读出芯片型号、PSRAM 和 Flash 大小。
每一步执行前,先告诉我要运行什么命令。
验收:告诉我串口名、芯片型号、Flash 大小,以及它和小智的实战派固件是否匹配。
我这块板子的结果是这样的:
| 项目 | 读出来的结果 |
|---|---|
| 串口 | /dev/cu.usbmodem111301 |
| 芯片 | ESP32-S3 |
| PSRAM | 8MB |
| Flash | 16MB |
看到芯片是 ESP32-S3、Flash 是 16MB,这一步才算跑通。 这两项和小智实战派固件的要求一致,后面才能放心刷。
如果它说找不到串口,先换数据线,再换个 USB 口。
2. 先备份原厂固件,这是你的后悔药
刷机之前,先把板子里现在的东西整片读出来存好:
把开发板 Flash 整片 16MB 备份到当前文件夹的 backup 目录,文件名带上 factory。
备份完算一个 sha256,存成同名的 .sha256 文件。
这一步只读不写,不要擦除或写入开发板。
验收:告诉我备份文件大小,并检查文件开头是不是正常的固件格式。
整片 16MB 读一遍,我实测大约 3 分半,是整个刷机过程里最慢的一步,耐心等它跑完。
这份备份就是你的后悔药。 以后想回到出厂的演示系统,把它整片写回去就行。别删,也别放进要分享给别人的素材包里。
3. 下载实战派对应的固件
去 https://github.com/78/xiaozhi-esp32 的 Releases 页面,
下载最新版里实战派对应的固件,文件名带 lichuang-dev。
解压到当前文件夹,找到 merged-binary.bin。
先不要烧录。
验收:告诉我固件版本号、文件名和 merged-binary.bin 的大小。
我下载的是 v2.5.2_lckfb-lichuang-dev.zip,解压出来的 merged-binary.bin 大约 10MB。你看到的版本号可能更新,认准 lichuang-dev 就行,别下成其他板子的固件。
merged-binary.bin 是一个合并好的完整镜像,程序、表情、字体、唤醒词模型都在里面,从地址 0x0 开始整片写进去就行。
4. 烧录:真正写进板子
确认前面三步都没问题,再发这段:
把 merged-binary.bin 从 0x0 地址整片烧录到开发板。
只烧这一个文件,不要改动 backup 目录里的备份。
烧完自动重启,读几秒开机日志。
验收:烧录结果里要有 Hash of data verified,开机日志里要能看到版本号和板型。
这一步我实测 40 秒左右。看到 Hash of data verified.,说明写进去的数据和文件逐字节对得上,烧录成功。
5. 看开机日志,确认它进了配网模式
烧录完,AI 会读一段开机日志。不用每行都看懂,只找这几行:
| 日志里的关键内容 | 说明 |
|---|---|
App version: 2.5.2 |
固件版本 |
SKU=lichuang-dev |
板型是实战派 |
配网模式: 手机连接热点 Xiaozhi-B541,浏览器访问 http://192.168.4.1 |
设备开了热点,等你配网 |
热点名后四位每台设备不一样,记下你自己的。
同时看一眼开发板,屏幕顶部显示“配网模式”,底下滚动提示热点名和网址:

屏幕显示配网模式,刷固件这一章就全部完成了。
6. 熟练以后,一段话说完
上面五步跑通过一次以后,下次换板子或重刷,可以直接发合并版:
我用 USB 接了一块立创实战派 ESP32-S3 开发板,想刷小智 AI 固件。
项目地址:https://github.com/78/xiaozhi-esp32
请你帮我:
1. 找到开发板的串口,确认芯片型号和 Flash 大小;
2. 先把原厂固件整片备份到 backup 文件夹,并算一下 sha256;
3. 去 Releases 下载最新版里实战派对应的固件(文件名带 lichuang-dev),解压出 merged-binary.bin;
4. 从 0x0 地址整片烧录,烧完读一下开机日志,告诉我设备有没有进入配网模式。
每一步执行前,先告诉我要运行什么命令。
7. 它背后到底敲了什么
不想看可以跳过。想知道 AI 替你做了什么,核心就是这两条命令:
# 备份原厂固件
esptool.py --port /dev/cu.usbmodem111301 --baud 921600 read_flash 0 0x1000000 backup/factory_16MB.bin
# 烧录小智固件
esptool.py --chip esp32s3 --port /dev/cu.usbmodem111301 --baud 921600 write_flash -z 0x0 merged-binary.bin
esptool 是乐鑫官方的烧录工具,read_flash 是读,write_flash 是写,0x0 是从哪个地址开始,921600 是传输速度。串口名 AI 会换成你自己的。
备份加烧录,一共 4 分钟出头,大头是备份。
四、给开发板连上 WiFi
固件刷好了,接下来让它联网。这一章全在手机上完成。
1. 手机连上设备的热点
打开手机的 WiFi 设置,能看到一个叫 Xiaozhi-XXXX 的热点,后四位就是开机日志里那四位。我的是 Xiaozhi-B541,直接连上,不用密码。

连上以后,手机可能会提示“此网络无法上网”,这是正常的。这个热点只是开发板临时开的,用来让你把 WiFi 信息填进去。
2. 在配网页面填家里的 WiFi
连上热点后,手机一般会自动弹出配网页面。没弹的话,打开浏览器访问 http://192.168.4.1。
操作顺序照着下面做:
- 在“从下面列表选择 2.4G Wi-Fi”里,点你家的 WiFi;
- 在“密码”一栏输入 WiFi 密码;
- 点“连接”。

旁边的“高级选项”不用动。那里是改设备连接的服务器地址用的,用官方后台不需要碰。
注意,页面上写得很清楚,只能选 2.4G WiFi。 列表里一般只会显示 2.4G 的网络,如果你家 WiFi 不在列表里,多半是路由器只开了 5G,要去路由器后台把 2.4G 打开。
3. 联网以后,屏幕会显示验证码
连接成功后,开发板会连上你家的 WiFi。屏幕顶部变成“激活设备”,下面显示 xiaozhi.me 和一个 6 位数字验证码,同时会语音播报出来。

看到这 6 位数字,说明开发板已经连上网,也找到了小智的服务器。 记下来,下一章要用。
五、绑定小智后台
这一章要在小智后台“认领”这台设备。认领以后,它才知道该用谁的配置跟你聊天。
1. 注册登录 xiaozhi.me
用手机或电脑打开 https://xiaozhi.me ,注册登录。电脑上操作会更舒服,后面改配置要看的东西比较多。
2. 输入 6 位验证码,添加设备
第一次用,点右上角的“添加设备”,输入屏幕上的 6 位验证码,点“添加”。

弹窗里也写了:没绑定账号的设备,每次开机或重启都会播报验证码。错过了也不要紧,重启一下再听一遍。
如果后台已经有智能体,比如重刷固件后再绑一次,也可以在智能体卡片里直接绑。弹窗标题会变成“绑定设备到 xxx”,一样是填 6 位验证码。

3. 确认接入协议:自己刷的板子只能选开源版
填完验证码,会弹出“设备接入协议”。自己买板子刷的开源固件,只能选“开源版”,“正式版”是锁着的。确认选中开源版,点“开始使用”。

开源版免费接入,但协议里写了几条限制,心里要有个数:
| 条款 | 内容 |
|---|---|
| 免费接入 | 核心功能,免费接入使用 |
| 仅限学习 | 不得用于商业、生产或盈利场景 |
| 基础性能 | 高峰时段可能延迟或降速 |
| 功能限制 | 部分高级功能需要商业授权 |
这里要分清两件事。固件代码是 MIT 协议,可以随便改;但官方后台 xiaozhi.me 对开源设备只给学习用途。 自己桌上玩没问题,想拿去卖或者做成产品,要另外找官方授权,或者自己搭服务端。
4. 确认设备在线
添加成功后,控制台里会多出一个“未命名智能体”。

卡片上能看到三样东西:
- 名字后面的绿色“在线”:设备连着服务器;
- 角色和模型:默认是“湾湾小何”和“小智 Lite”;
- 下方的“设备 (1)”:这个智能体下面挂了一台设备。
看到“在线”,同时屏幕上不再显示验证码,绑定才算完成。 到这里,你的 AI 小助手已经能聊天了。下一章让它更像“你的”小助手。
六、给它换名字、声音和性格
在智能体卡片上点“配置”,能看到四个页签:角色、模型与记忆、声纹识别、扩展能力。新手先调前两个就够了。声纹识别我这次没用到,扩展能力第八章会用到。
1. 角色页:名字、音色和性格都在这里
“角色”这一页可以改三样东西:
- 角色音色:先选语言,再选声音。我这台默认就是普通话“湾湾小何”。
- 角色介绍:它叫什么、说话什么风格、怎么回应你的情绪,都写在这里。
- 语音设置:识别速度、回复速度、回复音调,三根滑杆。

默认的角色介绍已经写得挺细了。比如情绪反应这一条:“用户开心时会跟着雀跃、一起放大快乐;用户低落时会先温柔接住情绪,再轻轻安慰,不急着讲大道理。”它会哄人,就是从这里来的。
2. 改名字:打开自定义,改角色介绍
它默认自我介绍叫“小智”,这个名字也来自角色介绍,不在固件里。所以改名字不用重刷,后台改完保存就生效。
操作顺序:
- 打开角色介绍右边的“自定义”开关;
- 在角色介绍里把名字和身份改掉;
- 点右下角“保存”。
我那台改成了 Claude。下面是一段角色介绍的写法示例,你可以照着改成自己想要的:
你叫【名字】,是我放在桌上的 AI 小助手。
说话口语化、简短,一次只说两三句,适合语音对话。
我开心时跟着开心;我低落时先接住情绪,再轻轻安慰,不讲大道理。
不知道的事情直接说不知道,不要编。
备注:语音聊天和打字不一样,回答太长听着会很累。角色介绍里写一句“简短”,体验会好很多。
3. 绑定 GitHub,免费解锁更好的模型
切到“模型与记忆”这一页。默认只能用“小智 Lite”,下面几个是灰的,中间一行提示“GitHub 认证 以下模型免费用”。

点那行蓝字,进入 GitHub 认证页面,点“绑定 GitHub”,跳到 GitHub 授权一下就行。还没有 GitHub 账号的话,先去 github.com 注册一个,免费的。

页面下方列了认证前后的区别,我整理成表:
| 能力 | 普通用户 | GitHub 认证用户 |
|---|---|---|
| 基础模型(小智 Lite) | 有 | 有 |
| 高级模型(Qwen 3.6、DeepSeek V4、DouBao Pro) | 无 | 有 |
| 视觉模型(内测) | 无 | 有 |
| 记忆功能 | 有 | 有 |
| 内测音色 | 无 | 有 |
| 官方 MCP 服务 | 有 | 有 |
| MCP 接入点(内测) | 无 | 有 |
| 知识库数量(内测) | 无 | 10 |
| 绑定开源设备数 | 10 | 100 |
认证不花钱,多出来的是高级模型、视觉模型和 MCP 接入点,没理由不绑。 第八章用 MCP 让它干活,就要用到这里的 MCP 接入点。
4. 选模型,记得保存
认证完再回到配置页,模型就都能选了:

后台给每个模型都标了特点,照着选就行:
- Qwen 3.6:后台标的是“响应快速”。语音聊天最怕等,想反应快就选它。
- DeepSeek V4:后台标的是“性格丰富”。想聊天更有意思,选它。
- 豆包 Seed 2.0:后台自己标了“延迟较大”,语音聊天不太推荐。
改完记得点右下角的“保存”。没保存就关掉弹窗,前面白改。
七、开口聊天
终于到了最开心的一步。
1. 两种唤醒方式
- 直接喊默认唤醒词“你好小智”;
- 短按开发板上的 BOOT 键。
刷完就是这张黄色小圆脸,待机时顶部显示时间:

2. 第一次对话
唤醒之后正常说话就行。我问它“你好,小智,你在干嘛?”,它回“嘿嘿,随时都在等你呢!”:

视频由 X 托管,播放需要能够访问 X。
3. 屏幕上的状态怎么看
| 屏幕顶部 | 意思 |
|---|---|
| 时间 | 待机,等你叫它 |
| 聆听中 | 正在听你说话 |
| 说话中 | 正在回答 |
回答的时候,下面滚动字幕,中间的表情会跟着回答的情绪变:开心、思考、难过,各有一张图。
4. 想换 WiFi,对它说“重新配网”
搬家或者换了路由器,不用重刷。对它说“重新配网”,它会重新开热点,按第四章再走一遍就行。
到这一步,一个能聊天、会哄人的 AI 小助手就做好了。 下面两章是进阶内容,一章让它帮你干活,一章把它改成你自己的样子,按兴趣选着看。
八、进阶:让它帮你干活,用 MCP 接上电脑里的工具(可选)
光会聊天还不够。开头说的“帮你干活”,靠的是 MCP。
1. MCP 是什么
MCP 可以理解成给 AI 用的“插座”。你在电脑上跑一个小程序,把它的功能通过 MCP 暴露出去;大模型聊天时觉得需要,就会调用它。
小智后台给每个智能体提供了一个 MCP 接入点。电脑上的程序通过 WebSocket 连到这个接入点,小智就能用上它。这个接入点需要 GitHub 认证,第六章已经绑过了。
2. 跑通官方的计算器示例
小智作者提供了一个最简单的示例:计算器。跑通它,你就理解了整个流程。
第一步:复制 MCP 接入点地址
在智能体卡片上点“配置”,切到“扩展能力”,往下拉到“自定义服务”,展开“MCP接入点”,点地址右边的复制按钮。

地址形如 wss://api.xiaozhi.me/mcp/?token=...。页面上写着每次打开都会生成新地址,旧地址仍然有效。这个地址里带着令牌,等同于密码,不要发到公开的地方,也不要直接贴给 AI。
第二步:让 Claude Code 帮你装
帮我在当前文件夹跑通小智的 MCP 计算器示例:https://github.com/78/mcp-calculator
1. 克隆仓库,用 uv 建一个 Python 3.12 的虚拟环境并安装依赖;
2. 在仓库里建一个 .env 文件,只写一行 MCP_ENDPOINT=,等号后面留空,我自己填,你不要读取或打印它;
3. 先检查 calculator.py 有没有安全问题,有的话先告诉我;
4. 等我说填好了,再运行 mcp_pipe.py calculator.py。
验收:日志里出现连接成功的提示。
依赖要求 Python 3.10 以上,Mac 自带的 Python 3.9 不够,所以用 uv 单独装一个 3.12。.env 这个文件已经在仓库的忽略列表里,不会被提交到 Git。
第三步:自己把地址填进 .env
令牌由你自己填,就不会出现在和 AI 的对话里。另开一个终端窗口,按第二章的方法进入练习文件夹,输入下面这行:
open -e mcp-calculator/.env
Mac 会用“文本编辑”打开它,Windows 换成 notepad mcp-calculator\.env。把刚复制的地址粘在 MCP_ENDPOINT= 后面,保存关闭,回去告诉 AI“填好了”。
第四步:运行,看到在线就算跑通
它背后执行的大致是这几条:
git clone https://github.com/78/mcp-calculator.git && cd mcp-calculator
uv venv --python 3.12 .venv
uv pip install --python .venv/bin/python -r requirements.txt
# .env 里的 MCP_ENDPOINT 由你自己填写
.venv/bin/python mcp_pipe.py calculator.py
日志出现 Successfully connected to WebSocket server,回到“MCP接入点”看到状态是“在线”,启用的服务里出现 calculator,就算跑通了。
然后对设备说:“123 乘 456 再开根号。”它会调用你电脑上的计算器,回答正确。
3. 安全提醒:官方示例直接执行 AI 传来的代码
这里有个坑,必须单独说。
官方示例 calculator.py 用 Python 的 eval(),直接执行 AI 传过来的表达式,而且没有禁用内置函数。如果 AI 被诱导,它传过来的就不一定是算式,而可能是一段在你电脑上执行的任意代码。
我让 AI 改成了下面这样:
if "__" in python_expression:
return {"success": False, "error": "expression not allowed"}
result = eval(python_expression, {"__builtins__": {}, "math": math, "random": random})
这只是基本防护。以后你自己写 MCP 工具,原则只有一条:不要直接执行 AI 传进来的代码或命令。
4. 电脑关机,它就断了
MCP 程序跑在你的电脑上。电脑重启或者关掉这个程序,小智就用不了这个工具了,需要重新运行 mcp_pipe.py。
计算器只是个开头。理解了这套机制,你可以让 AI 写别的工具:查天气、控制家里的智能设备、读你的待办清单。每个工具都按上面的安全原则来。
九、进阶:换成你自己的唤醒词和形象(可选)
刚刷完的小智,形象是一张黄色小圆脸,唤醒词是“你好小智”。这两样都能换,改完就是开头那个“你好 Claude”加像素小怪的样子。

1. 最短路径:直接用我开源的资源包
如果你就想要开头视频里的同款,不用自己做。我把像素小怪表情、深色主题和“你好 Claude”唤醒词打包开源了:
github.com/xiaomoBoy/xiaozhi-claude-pixel
在 Claude Code 里让它把仓库克隆到练习文件夹,然后发这段:
开发板是立创实战派 ESP32-S3,已经刷好小智 v2.5.2 固件。
请先把开发板 0x800000 开始的 8MB 读出来备份到 backup 目录。
然后核对 xiaozhi-claude-pixel/bin/SHA256SUMS,确认无误后把 bin/assets_claude_mn7.bin 写到 0x800000。
不要动 0x800000 以外的任何区域。写完读开机日志确认。
每一步执行前,先告诉我要运行什么命令。
写完喊一声“你好 Claude”,它就醒了。名字要叫 Claude,还得按第六章在后台改角色介绍。
这个资源包只适用于小智 v2.5.2 的实战派固件,其他版本先核对分区表。想自己设计形象、换别的唤醒词,再往下看。下面比前面多一点技术细节,但命令还是 AI 在敲。
2. 先搞懂改的是哪里
第一章说过,Flash 被分成好几块。表情、字体、唤醒词模型都放在 assets 这一块,从 0x800000 开始,8MB。固件本体不在这里。
所以自定义只要做一件事:把 assets 这块重新打包,再单独写回去。 固件不用重新编译,也不用整片重刷,WiFi 设置和后台绑定也都不受影响。
| 想改什么 | 在哪改 | 要不要动开发板 |
|---|---|---|
| 名字、性格 | 小智后台“角色介绍” | 不用 |
| 说话的声音 | 小智后台“角色音色” | 不用 |
| 表情形象 | assets 里的 21 张表情图 | 要,写 assets 区域 |
| 唤醒词 | assets 里的唤醒词模型 | 要,写 assets 区域 |
3. 表情是怎么显示的
小智的表情是固定图片,不是实时画出来的。服务器判断这句话是开心还是难过,下发一个情绪名,比如 happy,设备就去 assets 里找同名图片显示。找不到图片,就退回用内置的 emoji 字体。
一共 21 种情绪,就是 21 张图:
neutral、happy、laughing、funny、sad、angry、crying、loving、embarrassed、surprised、shocked、thinking、winking、cool、relaxed、delicious、kissy、confident、sleepy、silly、confused
支持 PNG 静态图和 GIF 动图。
4. 准备 21 张表情图
图怎么来都行,自己画、AI 生成、找素材都可以。
我是先让 Claude Code 出了 4 套风格方案:小火花、像素小怪、陶土团子、机器人眼睛。挑中像素小怪后,再让它用代码生成全部 21 张透明背景的 PNG,每张只有几百字节。

如果你也想让 AI 生成,可以这样说:
帮我设计一套小智的表情形象,风格是【你想要的风格】。
先出 2 到 4 套方案,每套画 neutral、happy、thinking、sleepy 四个表情给我挑。
我选定以后,再生成完整的 21 张透明背景 PNG,文件名用情绪名,放进 emoji 文件夹。
5. 让 AI 打包,并只写 assets 区域
图准备好,把下面这段发给它:
我想把小智的表情换成自己的形象,表情图放在 emoji 文件夹里,共 21 张 PNG,文件名就是情绪名。
请你帮我:
1. 从官方固件 merged-binary.bin 的 0x800000 处解出原来的 assets,先单独备份一份;
2. 写一个打包工具,先把官方 assets 解包再原样打回去,确认和原件逐字节一致,再用它打包新资源;
3. 只替换 21 张表情图,字体、唤醒词模型这些原样保留,背景改成深色;
4. 只把新的 assets 写到 0x800000,不要动固件本体,写完读开机日志确认。
每一步执行前,先告诉我要运行什么命令。
第 2 步是保险。打包工具先拿官方原件验证过,打出来一模一样,才能放心拿去打包自己的东西。 打包格式错一个字节,设备就可能读不出来。
写完以后,开机日志里出现 Refreshing display theme...,新表情就生效了。
备注:表情图在屏幕上是居中显示的,字一多会被底部字幕挡住。画的时候把角色画小一点、放偏上,图片下半截留透明;烧之前让 AI 按屏幕布局画张模拟图确认。
6. 换唤醒词:喊“你好 Claude”
唤醒词也写在 assets 的配置里,中文要写成拼音。“你好 Claude”我写的是 ni hao ke lao de,五个音都得在唤醒词模型的词表里能找到。
我想把小智的唤醒词改成“你好 Claude”,拼音写 ni hao ke lao de。
模型文件用 78/xiaozhi-assets-generator 仓库里的 multinet_model,请用 mn7_cn,不要用 mn6_cn。
请你帮我:
1. 先核对这几个拼音在模型词表里都有;
2. 在当前 assets 的基础上换上 mn7_cn 模型和新唤醒词,表情保留;
3. 打包后只写 0x800000,写完读开机日志,我喊一声唤醒词,你帮我看日志里有没有识别到。
每一步执行前,先告诉我要运行什么命令。
成功的话,日志里会出现 Custom wake word detected 和 >> 你好Claude。我实测连续聊了 4 轮、跑了 2 分钟,没有重启。
备注:一定要用 mn7_cn。我第一次用 mn6_cn,模型太大占满了芯片内部内存,开机就反复重启,换成 mn7_cn 才稳。换完以后,原来的“你好小智”就喊不醒了。
改坏了也不用慌,开机反复重启时电脑照样能连上开发板,按下一章的恢复办法写回上一版 assets 就行。
十、翻车速查和升级路线
1. 常见问题速查
| 问题 | 怎么办 |
|---|---|
| 电脑认不出设备 | 换一根能传数据的 USB 线,再换个 USB 口 |
| 配网列表里没有我家 WiFi | 路由器只开了 5G,去路由器后台打开 2.4G |
| 没听清验证码 | 重启设备,会再播报一次 |
| 后台模型是灰的 | 还没做 GitHub 认证 |
| MCP 一直连不上 | 检查 .env 里的接入点地址是否完整,电脑上的程序是否还在运行 |
| 改完 assets 反复重启 | 写回上一版 assets,唤醒词模型换 mn7_cn |
2. 三种恢复办法
| 想恢复到 | 怎么做 |
|---|---|
| 上一版能用的表情和唤醒词 | 把上一版 assets 写回 0x800000 |
| 小智默认的小圆脸和“你好小智” | 把官方 assets 写回 0x800000 |
| 出厂的立创演示系统 | 把第三章备份的整片文件从 0x0 写回去 |
三种都可以直接让 AI 去做,告诉它文件名和要写的地址就行。
3. 小白升级路线
不要第一天就把所有东西都改一遍。按下面五级来,哪里出错都容易找:
- 刷好固件,配网绑定,用默认设置聊几句;
- 改名字、音色和角色介绍,绑定 GitHub 换个模型;
- 跑通 MCP 计算器,理解它是怎么调用电脑上的工具的;
- 换一套自己的表情形象,或者直接用我开源的资源包;
- 最后再换唤醒词。
你今天只需要完成前两级。
板子插上线,在练习文件夹里打开 Claude Code,发出第一条:
我用 USB 接了一块立创实战派 ESP32-S3 开发板,准备刷小智 AI 固件。
这一步只做识别,不要写入任何东西。
帮我找到串口,读出芯片型号和 Flash 大小。
每一步执行前,先告诉我要运行什么命令。
128 块钱,换一个会哄人、能陪聊、能帮你干活,名字和长相都由你定的桌面小助手。
剩下的习惯只有一句话:
先备份,再让 AI 动手,每一步看完结果再往下走。
写在最后
如果这篇文章对你有帮助,希望你可以转发给身边想玩 AI 硬件的朋友,也可以关注我 @xiaomovps。我会持续分享 AI 工具、Agent 和硬件的实操教程,每一篇都是自己亲手跑通的。
