你是不是也想要一个桌面机器人?

不用很复杂,就放在桌上。心情不好的时候能哄哄你,无聊了能陪你聊两句,有事的时候还能帮你干点活。

以前做这种东西,门槛是硬件和代码:要会焊板子、装开发环境、查串口、记一堆烧录命令。现在这两道门槛都低了很多。开源项目小智 AI 已经把“会听会说”的部分做好了,Claude Code、Codex 这类 AI 编程工具又能替你敲命令。你要做的,是把需求说清楚,然后在关键步骤看一眼。

这两天我就用一块立创实战派 ESP32-S3 开发板,从拆包到对它喊出“你好 Claude”,完整走了一遍。下面是成品:

Video hosted on X. Playback requires access to 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 语音聊天机器人。

你对它说一句话,背后大致走了这么一圈:

你说话 → 开发板录音 → 服务器把声音识别成文字 → 大模型想好回答 → 合成语音 → 开发板播放,屏幕显示字幕和表情

开发板自己只负责“听”和“说”,真正动脑子的部分在服务器上。小智官方提供了一个现成的后台 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,并在练习文件夹里打开它

电脑上装好其中一个就行,两个用哪个都可以。后面所有命令都是它来敲,你负责发需求、看它准备执行什么、点确认。

第一次用,照着下面在练习文件夹里打开它:

  1. 打开终端。Mac 在启动台里搜“终端”,Windows 打开 PowerShell;
  2. 输入 cd,后面加一个空格,然后把练习文件夹直接拖进终端窗口,按回车;
  3. 用 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。

操作顺序照着下面做:

  1. 在“从下面列表选择 2.4G Wi-Fi”里,点你家的 WiFi;
  2. 在“密码”一栏输入 WiFi 密码;
  3. 点“连接”。

旁边的“高级选项”不用动。那里是改设备连接的服务器地址用的,用官方后台不需要碰。

注意,页面上写得很清楚,只能选 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. 改名字:打开自定义,改角色介绍

它默认自我介绍叫“小智”,这个名字也来自角色介绍,不在固件里。所以改名字不用重刷,后台改完保存就生效。

操作顺序:

  1. 打开角色介绍右边的“自定义”开关;
  2. 在角色介绍里把名字和身份改掉;
  3. 点右下角“保存”。

我那台改成了 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. 两种唤醒方式

  1. 直接喊默认唤醒词“你好小智”;
  2. 短按开发板上的 BOOT 键。

刷完就是这张黄色小圆脸,待机时顶部显示时间:

2. 第一次对话

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

Video hosted on X. Playback requires access to 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. 小白升级路线

不要第一天就把所有东西都改一遍。按下面五级来,哪里出错都容易找:

  1. 刷好固件,配网绑定,用默认设置聊几句;
  2. 改名字、音色和角色介绍,绑定 GitHub 换个模型;
  3. 跑通 MCP 计算器,理解它是怎么调用电脑上的工具的;
  4. 换一套自己的表情形象,或者直接用我开源的资源包;
  5. 最后再换唤醒词。

你今天只需要完成前两级。

板子插上线,在练习文件夹里打开 Claude Code,发出第一条:

我用 USB 接了一块立创实战派 ESP32-S3 开发板,准备刷小智 AI 固件。
这一步只做识别,不要写入任何东西。
帮我找到串口,读出芯片型号和 Flash 大小。
每一步执行前,先告诉我要运行什么命令。

128 块钱,换一个会哄人、能陪聊、能帮你干活,名字和长相都由你定的桌面小助手。

剩下的习惯只有一句话:

先备份,再让 AI 动手,每一步看完结果再往下走。

写在最后

如果这篇文章对你有帮助,希望你可以转发给身边想玩 AI 硬件的朋友,也可以关注我 @xiaomovps。我会持续分享 AI 工具、Agent 和硬件的实操教程,每一篇都是自己亲手跑通的。

参考资料