MimiClaw 将一块小小的 ESP32-S3 开发板变成你的私人 AI 助理。插上 USB 供电,连上 WiFi,通过 Telegram 跟它对话 — 它能处理你丢给它的任何任务,还会随时间积累本地记忆不断进化 — 全部跑在一颗拇指大小的芯片上。(由于 Telegram 未在中国大陆备案,且其端到端加密特性不符合国内互联网监管要求,该应用长期处于'无法直连'状态。)所以这次实践就只进行到安装固件,连上 wifi 就结束了。
整个硬件只需要成本 30 元的一块 ESP32S3 单片机。ESP32S3 的基本使用见 ESP 官方网站。
GitHub 仓库:https://github.com/memovai/mimiclaw
安装 MimiClaw
首先需要在一台 PC 机上编译 MiMiClaw 成可以写入 ESP32S3 的固件。
先下载 MimiClaw 源代码
git clone https://github.com/memovai/mimiclaw
进入目录:
cd mimiclaw
设置单片机为 esp32s3
idf.py set-target esp32s3
设置完成,输出示例:
-- Configuring done (45.1s)
-- Generating done (4.6s)
-- Build files have been written to: ./build
编译固件
idf.py fullclean && idf.py build
编译完成提示:
Project build complete. To flash, run:
idf.py flash
查看 esp32s3 的端口,比如可能是 COM4(可通过 Arduino 软件或设备管理器查看)。
将固件写入 Flash
接了 USB 口,因此是 COM4(注意 Windows 下通常为大写 COM)。
# 错误写法,用 com4
# idf.py -p com4 flash
# 注意,要用大写的 COM
idf.py -p COM4 flash
烧录日志示例:
Writing at 0x00133d26... (95 %)
Wrote 1199872 bytes (752099 compressed) at 0x00020000 in 9.0 seconds...
Hash of data verified.
Leaving...
Hard resetting via RTS pin... Done
监控和配置
监控和配置需要连 ESP32S3 的串口,波特率是 115200。
可以直接用 idf.py monitor 接入
idf.py monitor
连接成功后会显示启动信息,例如:
--- esp-idf-monitor 1.8.0 on \\.\\COM4 115200 ---
I (497) mimi: MimiClaw - ESP32-S3 AI Agent
I (1307) tools: Tools JSON built (9 tools)
mimi>
显示 help
串口连上后,输入 help,显示可用命令列表:
set_wifi <ssid> <password> # Set WiFi SSID and password
wifi_status # Show WiFi connection status
set_tg_token <token> # Set Telegram bot token
config_reset # Clear all NVS overrides
restart # Restart the device
配置 WiFi
set_wifi showmemoney "password"
重启 ESP32S3,重启后,可以发现已经连上 WIFI。
配置命令列表
运行时配置(存入 NVS,覆盖编译时默认值):
mimi> wifi_set MySSID MyPassword # 换 WiFi
mimi> set_tg_token 123456:ABC... # 换 Telegram Bot Token
mimi> set_api_key sk-ant-api03-... # 换 API Key(Anthropic 或 OpenAI)
mimi> set_model_provider openai # 切换提供商(anthropic|openai)
mimi> set_model gpt-4o # 换模型
mimi> set_proxy 192.168.1.83 7897 # 设置代理
mimi> clear_proxy # 清除代理
mimi> set_search_key BSA... # 设置 Brave Search API Key
mimi> config_show # 查看所有配置(脱敏显示)
mimi> config_reset # 清除 NVS,恢复编译时默认值
调试与运维:
mimi> wifi_status # 连上了吗?
mimi> memory_read # 看看它记住了什么
mimi> memory_write "内容" # 写入 MEMORY.md
mimi> heap_info # 还剩多少内存?
mimi> session_list # 列出所有会话
mimi> session_clear 12345 # 删除一个会话
mimi> heartbeat_trigger # 手动触发一次心跳检查
mimi> cron_start # 立即启动 cron 调度器
mimi> restart # 重启

