逆天了!把OpenClaw装入ESP32-S3上是一种什么体验

描述

 

1、前言

最近小龙虾OpenClaw 实在是太火了,相信你或多或少都刷到过。AI

如果一句话解释什么是 OpenClaw:

一款可以运行在任何系统上的 AI 智能体。

而就在前几天,我看到一个更“离谱”的项目——

居然在一块 ESP32-S3 上运行 OpenClaw 的思路,实现了一个真正可用的 MCU 级 AI Agent。

它叫:Mimiclaw

项目地址: https://github.com/memovai/mimiclaw

作为一个长期关注 AI + ESP32 的玩家,这种组合我当然忍不住要试试。

实际体验

下面是我实测的一些截图:

国内 deepseek 版本 mimiClaw

AI国内deepseek版本

Telegram 对话体验

AI实际体验-TG

WebSocket 本地访问

AIWebsocket

温馨提示:
后台私信:mimiClaw可获取我编译好的固件; 
 

我准备了两个版本:官方版本deepseek版本

  • 官方版本:适合有ClaudeAPI key 的用户(海外用户);
  • deepseek版本:适合有deepSeekAPI key 的用户(适合中国宝宝)

2、什么是MimiClaw

MimiClaw 把一块小小的 ESP32-S3 开发板变成你的私人 AI 助理。插上 USB 供电,连上 WiFi,通过 Telegram 跟它对话 — 它能处理你丢给它的任何任务,还会随时间积累本地记忆不断进化 — 全部跑在一颗拇指大小的芯片上。

3、认识 MimiClaw

  • 小巧 — 没有 Linux,没有 Node.js,没有臃肿依赖 — 纯 C
  • 好用 — 在 Telegram 发消息,剩下的它来搞定
  • 忠诚 — 从记忆中学习,跨重启也不会忘
  • 能干 — USB 供电,0.5W,24/7 运行
  • 可爱 — 一块 ESP32-S3 开发板,$5,没了

4、核心流程

AI工作原理

重点: Agent Loop 是常驻的,不是一次性调用

5、几个重要的特性

  • Agent 的状态、人格、记忆在设备本地
  • 推理能力通过云端 LLM(Claude)完成
  •  使用 Anthropic 的 tool use 协议-在Claude 在对话中可以调用工具,循环执行直到任务完成(ReAct 模式)。
  • 用 C + FreeRTOS 写成,而不是 Python

6、专门针对ESP32-S3的优化

1、CPU 和任务分配

ESP32-S3 是双核,Mimiclaw 对它的使用方式非常克制,也非常工程化。

任务CPU Core作用
Telegram 轮询Core 0网络 IO
WebSocket ServerCore 0网络 IO
串口 CLICore 0运维

Agent Loop

Core 1

AI 推理与决策
消息发送Core 0输出

 Core 1 完全留给 Agent
网络、Wi-Fi、TLS 全部丢到 Core 0

2、内存的处理

官方文档里直接给出了内存预算:

  • TLS 连接(Telegram + Claude):≈120 KB PSRAM
  • JSON 解析缓冲:≈32 KB
  • 会话缓存:≈32 KB
  • System Prompt Buffer:≈16 KB
  • 剩余 PSRAM:≈7.7 MB

所有大块内存都明确放在 PSRAM, 没有“malloc 之后祈祷不崩”。

这在 MCU 项目里,非常加分。

7、记忆系统:AI 变得“可见”

Mimiclaw 的记忆是纯文本文件:

文件说明
SOUL.md人设
USER.md用户信息
MEMORY.md长期记忆
2026-02-05.md每日笔记
tg_12345.jsonl会话记录

你可以直接串口查看。

AI 的记忆第一次变得可编辑、可理解、可管理。

8、工具系统(ReAct)

Mimiclaw 支持 Claude Tool Use 协议。

当前内置工具:

工具功能
web_searchBrave Search 实时搜索
get_current_time获取当前时间

模型会自动:

  1. 请求调用工具
  2. 执行
  3. 把结果喂回模型
  4. 继续推理

这就是标准的 ReAct Agent。

8、上手体验流程

官方文档已经写得很详细,能上Github的可以直接看这里:https://github.com/memovai/mimiclaw/blob/main/README_CN.md

或者直接往下看

环境要求

  • 一块 ESP32-S3 开发板,16MB Flash + 8MB PSRAM(如小智 AI 开发板,~¥30)
  • 一根 USB Type-C 数据线
  • 一个 Telegram Bot Token — 在 Telegram 找 @BotFather 创建
  • 一个 Anthropic API Key — 从 console.anthropic.com 获取 (如果是deepseek版本可以直接换成deepSeek的api key)

安装

# 需要先安装 ESP-IDF v5.5+:
# https://docs.espressif.com/projects/esp-idf/en/v5.5.2/esp32s3/get-started/
git clone https://github.com/memovai/mimiclaw.git
cd mimiclaw
idf.py set-target esp32s3
 

配置

MimiClaw 使用两层配置:mimi_secrets.h 提供编译时默认值,串口 CLI 可在运行时覆盖。CLI 设置的值存在 NVS Flash 中,优先级高于编译时值。

cp main/mimi_secrets.h.example main/mimi_secrets.h
 

编辑 main/mimi_secrets.h:

#define MIMI_SECRET_WIFI_SSID       "你的WiFi名"
#define MIMI_SECRET_WIFI_PASS       "你的WiFi密码"
#define MIMI_SECRET_TG_TOKEN        "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
#define MIMI_SECRET_API_KEY         "sk-ant-api03-xxxxx"
#define MIMI_SECRET_SEARCH_KEY      ""              // 可选:Brave Search API key
#define MIMI_SECRET_PROXY_HOST      "10.0.0.1"      // 可选:代理地址
#define MIMI_SECRET_PROXY_PORT      "7897"           // 可选:代理端口
 

然后编译烧录:

# 完整编译(修改 mimi_secrets.h 后必须 fullclean)
idf.py fullclean && idf.py build

# 查找串口
ls /dev/cu.usb*          # macOS
ls /dev/ttyACM*          # Linux

# 烧录并监控(将 PORT 替换为你的串口)
# USB 转接器:大概率是 /dev/cu.usbmodem11401(macOS)或 /dev/ttyACM0(Linux)
idf.py -p PORT flash monitor
 

代理配置(国内用户)

在国内需要代理才能访问 Telegram 和 Anthropic API。MimiClaw 内置 HTTP CONNECT 隧道支持。

前提:局域网内有一个支持 HTTP CONNECT 的代理(Clash Verge、V2Ray 等),并开启了「允许局域网连接」。

可以在 mimi_secrets.h 中编译时设置,也可以通过串口 CLI 随时修改:

mimi> set_proxy 192.168.1.83 7897   # 设置代理
mimi> clear_proxy                    # 清除代理
 

提示:确保 ESP32-S3 和代理机器在同一局域网。Clash Verge 在「设置 → 允许局域网」中开启。

CLI 命令

通过串口连接即可配置和调试。配置命令让你无需重新编译就能修改设置 — 随时随地插上 USB 线就能改。

运行时配置(存入 NVS,覆盖编译时默认值):

mimi> wifi_set MySSID MyPassword   # 换 WiFi
mimi> set_tg_token 123456:ABC...   # 换 Telegram Bot Token
mimi> set_api_key sk-ant-api03-... # 换 Anthropic API Key
mimi> set_model claude-sonnet-4-5-20250929  # 换模型
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> restart                  # 重启
 

其他功能

  • WebSocket 网关 — 端口 18789,局域网内用任意 WebSocket 客户端连接
  • OTA 更新 — WiFi 远程刷固件,无需 USB
  • 双核 — 网络 I/O 和 AI 处理分别跑在不同 CPU 核心
  • HTTP 代理 — CONNECT 隧道,适配受限网络
  • 工具调用 — ReAct Agent 循环,Anthropic tool use 协议

9、一些未来畅想

这才是最让我兴奋的部分。

如果把 Tool 接到:

  • GPIO
  • Matter
  • Home Assistant 那么:

ESP32 就不再是“执行单元”,
而是“本地 AI 控制中枢”。

手机只是入口, 真正的大脑在设备上。


再次提醒:
后台私信 mimiClaw 可获取我编译好的固件。

  • 官方 Claude 版本
  • deepseek 国内版本

如果你也在折腾 Home Assistant / Matter / AI / 智能家居 / ESP32

那我们大概是在同一条路上。 这里更多是我自己的实践记录和过程复盘,

不一定最优,但都是跑过一遍的结果。 

愿意的话,可以关注一下,

路上彼此有个伴。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分