MimiClaw:运行在 $5 芯片上的口袋 AI 助手

MimiClaw 是世界上第一个运行在 $5 芯片上的 AI 助手,无需 Linux,无需 Node.js,纯 C 语言实现。它将一个微小的 ESP32-S3 开发板变成个人 AI 助手,只需插入 USB 电源,连接 WiFi,通过 Telegram 与之对话,它就能处理你交给它的任何任务,并通过本地记忆随时间进化 — 所有这些都在一个拇指大小的芯片上完成。

MimiClaw 特点

🐣 小巧玲珑

无需 Linux,无需 Node.js,无臃肿代码 — 纯 C 语言实现

🤌 方便实用

通过 Telegram 发送消息,它处理其余所有事情

🤝 忠诚可靠

从记忆中学习,重启后仍能记住

⚡ 精力充沛

USB 供电,0.5 W,24/7 运行

❤️ 可爱亲民

只需一个 ESP32-S3 开发板,$5,无需其他设备

工作原理

你在 Telegram 上发送消息。ESP32-S3 通过 WiFi 接收消息,将其送入代理循环 — LLM 思考、调用工具、读取记忆 — 然后发送回复。支持 Anthropic (Claude) 和 OpenAI (GPT) 作为提供商,可在运行时切换。所有操作都在单个 $5 芯片上运行,所有数据都存储在本地闪存中。

快速开始

所需物品

  • 一个带有 16 MB 闪存和 8 MB PSRAM 的 ESP32-S3 开发板(例如小芝 AI 板,约 $10)
  • 一根 USB Type-C 电缆
  • 一个 Telegram 机器人令牌 — 在 Telegram 上与 @BotFather 交谈以创建一个
  • 一个 Anthropic API 密钥 — 来自 console.anthropic.com,或一个 OpenAI API 密钥 — 来自 platform.openai.com

安装

首先需要安装 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

Ubuntu 安装

推荐基准:

  • Ubuntu 22.04/24.04
  • Python >= 3.10
  • CMake >= 3.16
  • Ninja >= 1.10
  • Git >= 2.34
  • flex >= 2.6
  • bison >= 3.8
  • gperf >= 3.1
  • dfu-util >= 0.11
  • libusb-1.0-0, libffi-dev, libssl-dev

在 Ubuntu 上安装和构建:

sudo apt-get update

sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv \ cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

./scripts/setup_idf_ubuntu.sh

./scripts/build_ubuntu.sh

macOS 安装

推荐基准:

  • macOS 12/13/14
  • Xcode 命令行工具
  • Homebrew
  • Python >= 3.10
  • CMake >= 3.16
  • Ninja >= 1.10
  • Git >= 2.34
  • flex >= 2.6
  • bison >= 3.8
  • gperf >= 3.1
  • dfu-util >= 0.11
  • libusb, libffi, openssl

在 macOS 上安装和构建:

xcode-select --install

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

./scripts/setup_idf_macos.sh

./scripts/build_macos.sh

配置

MimiClaw 使用两层配置系统:mimi_secrets.h 中的构建时默认值,以及通过串行 CLI 的运行时覆盖。CLI 值存储在 NVS 闪存中,优先级高于构建时值。

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

编辑 main/mimi_secrets.h:

#define MIMI_SECRET_WIFI_SSID "YourWiFiName"

#define MIMI_SECRET_WIFI_PASS "YourWiFiPassword"

#define MIMI_SECRET_TG_TOKEN "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"

#define MIMI_SECRET_API_KEY "sk-ant-api03-xxxxx"

#define MIMI_SECRET_MODEL_PROVIDER "anthropic" // "anthropic" or "openai"

#define MIMI_SECRET_SEARCH_KEY "" // optional: Brave Search API key

#define MIMI_SECRET_TAVILY_KEY "" // optional: Tavily API key (preferred)

#define MIMI_SECRET_PROXY_HOST "" // optional: e.g. "10.0.0.1"

#define MIMI_SECRET_PROXY_PORT "" // optional: e.g. "7897"

然后构建并烧录:

# 清理构建(修改 mimi_secrets.h 后必需)

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

重要:插入正确的 USB 端口!大多数 ESP32-S3 开发板有两个 USB-C 端口。你必须使用标记为 USB(原生 USB Serial/JTAG)的端口,而不是标记为 COM(外部 UART 桥)的端口。插入错误的端口会导致烧录/监控失败。

CLI 命令(通过 UART/COM 端口)

通过串行连接进行配置或调试。配置命令允许你更改设置而无需重新编译 — 只需在任何地方插入 USB 电缆。

运行时配置(保存到 NVS,覆盖构建时默认值):

mimi> wifi_set MySSID MyPassword # 更改 WiFi 网络

mimi> set_tg_token 123456:ABC... # 更改 Telegram 机器人令牌

mimi> set_api_key sk-ant-api03-... # 更改 API 密钥(Anthropic 或 OpenAI)

mimi> set_model_provider openai # 切换提供商 (anthropic|openai)

mimi> set_model gpt-4o # 更改 LLM 模型

mimi> set_proxy 127.0.0.1 7897 # 设置 HTTP 代理

mimi> clear_proxy # 移除代理

mimi> set_search_key BSA... # 设置 Brave Search API 密钥

mimi> set_tavily_key tvly-... # 设置 Tavily API 密钥(首选)

mimi> config_show # 显示所有配置(掩码)

mimi> config_reset # 清除 NVS,恢复为构建时默认值

调试和维护:

mimi> wifi_status # 我是否已连接?

mimi> memory_read # 查看机器人记得什么

项目链接

GitHub 仓库:https://github.com/memovai/mimiclaw

MimiClaw 是一个开源项目,欢迎贡献和反馈!