10浏览
查看: 10|回复: 6

[讨论] 【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

[复制链接]
本帖最后由 驴友花雕 于 2026-4-1 11:42 编辑

原标题:
《【花雕学编程】裸机跑 AI!MimiClaw 架构深度拆解:让 ESP32 化身“智能龙虾”》
-----全球首款 MCU 级 AI Agent 系统,从消息总线到技能热加载,5美元硬件跑通完整智能体闭环

导语:当行业还在为 AI Agent 的高能耗、联网依赖和数据安全焦虑时,迷你小龙虾 MimiClaw 已经用纯 C 语言在 ESP32-S3 这块 240MHz 的微控制器上,跑通了一套完全本地部署、无需联网、数据不离设备的智能体系统。没有 Linux,不依赖 GPU,仅凭一颗 5 美元的 MCU,就实现了对话理解、工具调用、技能热加载、多端接入的全链路能力。这是 AI 智能体从“云端巨兽”走向“端侧活体”的一次工程化突围,更是对数据主权与隐私安全的一次技术回应。


【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图1


从可穿戴设备到 AI:MimiClaw 如何用一颗 5 美元芯片,让智能体真正“长”在你身上

你的 Oura 环日夜收集心率、体温、睡眠数据,你的 Whoop 默默追踪恢复与压力,Apple Watch 记录着你的每一次运动与呼吸……这些设备每时每刻都在生成关于你身体最真实的数字镜像,但这些数据却被困在各自独立的 App 里,像一座座孤岛。DeepSeek、豆包、ChatGPT、Claude、Siri 很聪明,但它们对你的身体状态一无所知——没有数据,再强大的 AI 也是“聋的”。

直到 MimiClaw 的出现。

MimiClaw 是全球首款在微控制器上实现的、完全本地部署的 AI 智能体系统。它用纯 C 语言在 ESP32-S3(一颗主频 240MHz、售价仅 5 美元的 MCU)上跑通了对话理解、工具调用、技能热加载、多端接入的全链路能力,彻底摆脱了对云端算力、Linux 甚至互联网的依赖。

它是连接可穿戴设备与人工智能的第一座桥梁。
一键即可将 Oura、Whoop、Apple Watch 乃至智能家居设备统一接入,构建出真正理解你生活方式的全上下文人类模型。当你的 HRV 突然下降,它会主动提醒:“今天跳过 HIIT”;当连续几天精力不足,它能在你的生活轨迹中找出隐藏模式——而这些洞察,全部在本地完成,原始数据从不存储,你的生物信息始终只属于你自己。

MimiClaw 解决了 AI 落地的三大核心痛点:高能耗、联网依赖、数据安全。
它不需要云端巨兽般的算力,不依赖 Linux 或 GPU,仅凭一颗 5 美元的 MCU 就实现了完整的智能体闭环。开源、隐私至上、一键连接——这是 AI 智能体从“云端对话机”走向“端侧活体”的一次工程化突围。

本文将从下面这张手绘架构图入手,逐层拆解 MimiClaw 的分层设计、核心模块、数据流转与底层实现,带你解剖这只“智能虾”的技术骨架,看懂在 C 语言加持下,AI 智能体如何以可穿戴设备的形态,在你身边稳稳运行、离线服务、主动响应。

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图2





驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:42 编辑

这张手绘架构图所展示的,不仅是一个嵌入式 AI Agent 的模块划分,更是对“如何在资源极度受限的 MCU 上实现完整智能体”这一命题的系统性解答。MimiClaw 通过双核分离、本地存储优先、消息驱动、技能可扩展等设计,将云端智能体的核心能力压缩到 5 美元硬件中,为可穿戴设备、智能家居、边缘机器人等场景提供了真正可落地的“本地智能”方案。


一、MimiClaw 系统架构八个模块分别是:
1、硬件与系统抽象层
2、通信与接入模块
3、消息总线与事件处理
4、智能体核心
5、工具与技能模块
6、持久化与记忆模块
7、系统服务与后台
8、用户交互与配置

MimiClaw 架构模块一览表

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图1

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图3

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图2

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图4

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:43 编辑

二、MimiClaw 架构模块的职责、关键组件与设计亮点

模块一:硬件与系统抽象层
职责
为上层提供统一的硬件驱动、内存管理、网络栈和任务调度接口,屏蔽底层硬件差异。
关键组件
ESP32-S3 双核处理器:主频 240MHz,两个 Xtensa LX7 核心。
存储系统:16MB SPI Flash(存放固件、SPIFFS 分区、NVS 分区)+ 8MB PSRAM(用于 LLM 缓冲、动态内存)。
无线网络:内置 Wi-Fi 802.11 b/g/n,支持 STA 和 SoftAP 模式。
外设接口:USB-JTAG(烧录调试)、UART(串口 CLI)、GPIO(外设控制)。
实时操作系统:基于 FreeRTOS 进行多核任务分配,但应用层逻辑几乎无 OS 依赖。
设计亮点
双核分工:Core 0 运行网络栈、USB、串口驱动,Core 1 运行 Agent Loop、LLM 推理和工具执行,避免网络中断影响推理响应。
内存分层优化:代码段及常量数据置于 Flash,动态内存优先使用 PSRAM,将珍贵的内部 SRAM 留给 DMA、中断等关键操作。
低功耗:通过轻量级睡眠(Wi-Fi 保持连接)实现平均功耗约 0.5W,适合长时间运行。

模块二:通信与接入模块
职责
提供多种用户交互通道,将外部输入转换为统一的内部事件。
关键组件
Telegram Bot 客户端:通过 HTTPS 轮询或 webhook 接收消息,经 WebSocket 或 HTTP API 推送到设备内部。
WebSocket 服务器:监听端口 18789,支持 JSON 格式消息,用于本地 Web 应用或自定义客户端接入。
HTTP 配置门户:在 SoftAP 模式下启动 HTTP 服务器(端口 80),提供网页配置 Wi-Fi 和 API 密钥。
串口 CLI:通过 UART(COM 口)提供 REPL 环境,支持命令历史、Tab 补全(需终端支持)。
设计亮点
统一事件格式:所有接入模块将用户输入转换为统一结构 { type, source, data },放入消息队列,解耦输入与处理。
并发安全:各接入模块独立运行于 Core 0,通过队列与 Core 1 的 Agent Loop 通信,避免竞态。
SoftAP 与 STA 共存:在已连接 Wi-Fi 的同时仍可开启 SoftAP 用于本地配置,实现“管理平面”与“数据平面”分离。

模块三:消息总线与事件处理
职责
解耦接入模块与智能体核心,提供可靠的事件传递机制。
关键组件
事件队列:基于 FreeRTOS 队列实现,深度可配置(默认 16)。
事件分发器:单一消费者(Agent Loop)从队列中取事件并处理。
设计亮点
发布-订阅简化模式:所有接入模块是生产者,Agent Loop 是唯一消费者,避免多消费者竞争。
阻塞与非阻塞结合:生产者写入队列可选非阻塞(队列满时丢弃,但极少发生),消费者阻塞等待,避免轮询浪费 CPU。
优先级支持:系统服务(如心跳触发)可注入高优先级事件,确保按时执行。

模块四:智能体核心
职责
实现 ReAct 推理‑行动循环,协调 LLM 调用、工具执行、记忆存取。
关键组件
Agent Loop:主循环,从事件队列获取消息,执行 Prompt 构造、LLM 调用、响应解析、工具调度。
Prompt Builder:动态构建系统提示词(含 SOUL、USER、MEMORY 相关片段)、历史对话(最近 N 条)、当前用户输入。
LLM Client:封装 HTTP 请求、认证、重试、流式处理,支持 Anthropic Claude 和 OpenAI GPT。
Tool Dispatcher:根据 LLM 返回的工具名称查找注册的 C 函数或技能脚本,执行并将结果回填。
设计亮点
ReAct 模式:循环调用 LLM 直至无工具请求,支持工具链式调用,循环深度限制(默认 5 次)防止死循环。
上下文管理:系统提示词拼接 SOUL.md + USER.md + 从 MEMORY.md 中提取的相关记忆(关键词匹配);对话历史以 JSONL 格式存储,每次加载最近 10 条。
容错性:LLM 调用失败时返回友好错误提示;工具执行异常时将错误信息回传 LLM 让其尝试其他方式。

模块五:工具与技能模块
职责
提供可被 LLM 调用的原子能力,以及支持热加载的复杂技能。
关键组件
工具注册表:C 函数数组,每个条目包含工具名、描述、参数 Schema、函数指针。
内置工具:web_search(Tavily/Brave)、get_current_time、文件操作(read/write/edit/list)、GPIO 控制、Cron 管理。
技能热加载系统:启动时扫描 /spiffs/skills/ 下所有 .md 或 .json 文件,解析为技能定义(触发条件、工具调用序列),注册到技能表。
设计亮点
工具与技能分离:工具是原子能力(C 实现),技能是复合行为(文本描述),LLM 可自动组合工具实现技能。
安全性:工具调用前检查参数合法性,文件操作限定在 /spiffs 目录内,防止越权。
扩展性:添加新工具只需编写 C 函数并注册;添加新技能只需在 SPIFFS 中放入描述文件,无需重新编译。

模块六:持久化与记忆模块
职责
管理所有本地存储的数据,包括配置、记忆、会话、任务。
关键组件
SPIFFS 文件系统:挂载于 /spiffs,存储:
MEMORY.md(长期记忆)、SOUL.md(人设)、USER.md(用户信息)
HEARTBEAT.md(待办任务清单)、cron.json(定时任务)
sessions/ 目录下的对话历史文件(tg_<chat_id>.jsonl 等)
skills/ 目录下的技能定义文件
NVS(Non-Volatile Storage):存储动态配置(Wi-Fi、API 密钥、模型选择等),通过 CLI 修改后立即生效。
设计亮点
记忆机制:MEMORY.md 采用自然语言存储,Agent 通过指令“将重要信息写入 MEMORY.md”来持久化长期记忆;构造 Prompt 时动态注入相关内容。
会话管理:每个对话独立文件,避免单文件过大,支持按聊天 ID 删除。
数据安全:所有敏感数据(API Key)存储于 NVS,不会写入普通文件,设备本地物理隔离。

模块七:系统服务与后台
职责
提供定时、主动、维护性功能,增强系统的自治性。
关键组件
心跳服务:每隔 30 分钟(可配置)触发一次,读取 HEARTBEAT.md,解析未完成的任务(行首非 - [x] 的条目),将任务作为特殊消息注入 Agent Loop;Agent 执行后标记完成。
Cron 调度器:从 cron.json 加载任务列表,按时间触发;支持周期性任务和一次性任务;任务可由 LLM 通过 cron_add 工具动态创建。
OTA 升级:通过 WebSocket 或 HTTP 接收新固件,写入 OTA 分区并重启;支持回滚。
配置管理:运行时配置优先使用 NVS 中的值,若未设置则回退到编译时默认值;CLI 命令 config_show、config_reset 用于查看和重置。
设计亮点
主动智能:心跳和 Cron 使系统无需用户干预即可执行周期性任务,实现“主动代理”。
可靠性:Cron 任务持久化在 Flash,重启不丢失;心跳文件修改由 Agent 完成,确保任务状态同步。
资源控制:Cron 调度器使用软件定时器,开销极小;心跳服务仅在触发时唤醒 Agent Loop,其余时间系统可睡眠。

模块八:用户交互与配置
职责
提供直观的配置界面和状态监控入口。
关键组件
HTTP 配置门户:在 SoftAP 模式下提供网页,允许用户扫描 Wi-Fi、输入密码、设置 API 密钥等。
CLI 命令集:支持 wifi_set、set_api_key、set_model_provider 等配置命令,以及 heap_info、session_list 等诊断命令。
状态反馈:通过 Telegram 或 WebSocket 返回设备状态(如内存使用、连接状态)。
设计亮点
易用性:首次启动无配置时,自动进入 SoftAP 模式,手机扫码即可配置,降低入门门槛。
CLI 交互:支持 Tab 补全(若终端支持),方便调试。
安全性:配置门户仅开放于本地 AP,不暴露公网;API 密钥在网页中加密传输(HTTPS 可选,通常仅内网)。

以上八个模块共同构成了 MimiClaw 的完整系统架构,从硬件抽象到用户交互,从智能体核心到主动服务,每一层都体现了高内聚、低耦合的设计原则,最终在 5 美元的 MCU 上实现了完整的 AI 智能体能力。

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:44 编辑

三、整体架构总览:边缘侧 AI Agent 的完整闭环系统

MimiClaw 的核心设计理念在于:在 ESP32‑S3 这类资源极度受限的微控制器(MCU)平台上,完整构建一个可运行、可扩展、具备自主决策能力的 AI Agent 系统,而非仅仅实现一个轻量级的 AI 推理端。

与传统嵌入式 AI 项目相比,MimiClaw 并不是「跑一个模型」,而是「运行一个完整智能体框架」。

它将 PC 级与云端级的 Agent 架构整体下沉到边缘设备,使 ESP32‑S3 具备自主感知、推理、规划、执行与反馈的智能体属性。
整个架构由五大核心层级构成,形成严格闭环的 输入 → 理解 → 决策 → 执行 → 输出 智能体循环:

  1. [外部输入渠道] → [Agent 核心推理循环] → [上下文与技能系统] → [硬件/存储底层] → [输出反馈]
复制代码

1、 架构本质:从 “云端 Agent” 到 “边缘 Agent” 的完整移植
MimiClaw 的架构本质是:
把云端 AI Agent 的全栈体系(消息总线、推理调度、工具调用、记忆系统、技能模块)完整移植到 ESP32‑S3 边缘设备。
依托 ESP32‑S3 提供的硬件资源(240MHz 双核处理器、8MB PSRAM、16MB Flash),MimiClaw 真正实现了:
(1)完整的 Agent 运行时(而非简单 API 调用)
(2)可扩展的模块化系统(技能生态)
(3)边缘侧自主决策(而非仅云端推理)
(4)长期记忆与用户画像(区别于无状态嵌入式 AI)
(5)多渠道统一交互接口(WebSocket/Telegram/ 串口 / 网页)

2、关键突破:在 MCU 上运行真正的 AI Agent 闭环
传统嵌入式 AI 通常局限于:
传感器数据采集
轻量级推理
预设规则控制
但 MimiClaw 实现了 ESP32‑S3 上的 Agent 级智能体,具备以下革命性能力:
(1)异步消息处理(Message Queue)
(2)大模型驱动的推理与规划(LLM Proxy)
(3)工具自动调用与硬件控制(Tools System)
(4)长期记忆与上下文管理(Context System)
(5)动态技能扩展(Skills Framework)

3、硬件基础:8MB PSRAM + 16MB Flash 的 Agent 级需求
在 ESP32‑S3 上运行 Agent 框架,对内存与存储有实质性需求:
8MB PSRAM:承载 Agent 消息队列、LLM 上下文缓存、大任务栈、文件系统缓冲
16MB Flash:存储固件、SPIFFS 文件系统、技能、记忆文件、会话历史
正是这组硬件资源,使得 MimiClaw 能够支撑:
(1)12+ 系统工具
(2)多渠道消息接入
(3)长期记忆管理
(4)动态技能加载
(5)完整的 ReAct 推理循环

4、本质总结:边缘侧 “自主智能体” 而非 “推理工具”
MimiClaw 的核心价值可以概括为:
它不是一个运行在 ESP32‑S3 上的 AI 聊天工具,而是一个具备自主决策、记忆、规划、工具调用能力的边缘智能体系统。
这意味着 MimiClaw 可以成为:
(1)AI 机器人的大脑
(2)智能家居的本地中枢
(3)嵌入式自动化控制平台
(4)边缘 AI 计算节点
(5)可扩展的 DIY 智能硬件框架



回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:44 编辑

四、核心模块逐层级深度解析

1、 输入层:Channels(多渠道消息接入)
这是 MimiClaw 的用户交互入口,负责接收所有外部指令,对应你实际使用的串口、网页、WebSocket 等功能:
Telegram:远程消息渠道,通过 Telegram Bot API 实现远程控制、消息交互(对应你日志里的telegram_bot模块,未配置时会打印警告)
WebSocket:本地实时通信渠道,对应你日志里的ws_server(端口 18789),用于网页控制台、APP 等本地客户端的实时交互
扩展能力:(图中未画出但在固件中存在的)
(1)串口 CLI(Serial CLI):当前使用的命令行入口
(2)网页配网 / 管理门户(Onboard Portal):http://192.168.4.1
(3)飞书(Feishu):企业级消息渠道(对应feishu_bot模块)
核心作用:将不同渠道的用户消息统一标准化,送入 Agent 的消息队列,实现「一次开发,多渠道复用」的 Agent 能力。

2、核心层:Agent Loop(AI 智能体主循环)
这是 MimiClaw 的大脑中枢,是整个系统的灵魂,对应你固件中的agent_loop任务(运行在 Core 1 核心):
(1)核心子模块
Message Queue(消息队列):
作用:缓存所有渠道的用户消息,实现异步处理,避免高并发下消息丢失
对应你固件中的message_bus模块,队列深度 16,是所有组件的通信枢纽
Claude LLM(大语言模型代理):
核心:Agent 的推理核心,负责理解用户意图、生成回复、规划工具调用
对应你固件中的llm_proxy模块,支持 OpenAI/Anthropic/DeepSeek 等多模型,通过 API Key 配置(set_api_key命令)
关键设计:云端大模型 + 边缘端 Agent 框架,在 ESP32-S3 上实现 Agent 调度,模型推理由云端完成,完美适配嵌入式资源限制
Tools(工具集):
作用:LLM 的「手脚」,让 AI 能实际操作硬件、执行任务,而非仅生成文本
对应你固件中注册的 12 + 工具:web_search、gpio_write、read_file、cron_add等
核心逻辑:LLM 根据用户需求,自动选择并调用工具,执行后将结果返回 LLM,生成最终回复,形成完整的「思考 - 行动」闭环
(2) Agent Loop 完整工作流(对应你实际运行逻辑)

  1. 用户消息(串口/网页/Telegram)→ Message Queue → Claude LLM
  2.   ↓(理解意图,判断是否需要工具)
  3.   ├─ 直接回复 → 原路返回给用户
  4.   └─ 调用Tools → 执行工具(如GPIO点灯、文件读写、联网搜索)→ 结果返回LLM
  5.   ↓(生成最终回复)
  6.   → 原路返回给用户(串口/网页/Telegram)
复制代码

这就是标准的ReAct Agent(思考 - 行动)架构,完整实现了 AI 智能体的核心能力,在 ESP32-S3 上实现了云端 Agent 的完整逻辑。

3、上下文层:Context(记忆与身份系统)
这是 MimiClaw 的长期记忆与身份核心,让 AI 拥有「自我意识」和「用户记忆」,对应你固件中的memory_store、session_mgr模块:
SOUL.md:AI 的「灵魂 / 身份设定」,定义 AI 的角色、性格、行为准则,相当于 Agent 的系统提示词(System Prompt)
USER.md:用户画像与偏好,存储用户的习惯、需求、个性化信息,实现个性化交互
MEMORY.md:长期记忆库,存储对话历史、重要信息、用户指令,让 AI 记住上下文,实现连续对话
核心作用:
(1)解决大模型「无状态」问题,让 AI 在每次交互时都能加载完整上下文
(2)实现「个性化 AI 助手」,而非通用聊天机器人
(3)对应你固件中的memory_read/memory_write命令,可直接读写记忆文件

4、扩展层:Skills(技能系统)
这是 MimiClaw 的功能扩展生态,让系统具备无限扩展能力,对应你固件中的skill_loader模块:
核心设计:模块化技能架构,每个技能是独立的功能单元,可动态加载、卸载
图中示例技能:
OTA:远程升级功能,实现固件在线更新
CLI:串口命令行系统,就是你当前使用的mimi>控制台
...:预留扩展位,支持自定义技能(如传感器、电机控制、智能家居等)
对应固件的能力:
(1)skill_list:列出所有已安装技能
(2)skill_show:查看技能内容
(3)skill_search:按关键词搜索技能
核心价值:让 MimiClaw 从「AI 聊天工具」变成「可定制的边缘 AI 平台」,适配机器人、智能家居、工业控制等不同场景。

5、硬件与存储层:底层支撑系统
这是 MimiClaw 的物理基础,对应你实际使用的 ESP32-S3 硬件:
(1)存储系统
ESP32-S3 Flash:16MB 板载 Flash,存储固件、SPIFFS 文件系统(对应你日志里的spiffs分区,总容量 11.3MB)
TF Card(扩展存储):可选外接 TF 卡,扩展存储容量,用于更大的模型、更多的记忆 / 技能文件
对应你固件的存储:/spiffs分区存储MEMORY.md、技能文件、会话记录等,完全贴合架构设计
(2)硬件能力
Lvgl:图形界面系统,可外接屏幕实现可视化交互
WIFI:无线通信模块,对应你日志里的wifi_manager,实现联网、配网、远程访问
核心适配:完美适配 ESP32-S3 的双核(Core 0 运行主任务,Core 1 运行 Agent Loop)、8MB PSRAM(用于大模型上下文缓存、任务栈分配)、16MB Flash 等硬件资源。


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:46 编辑

五、MimiClaw 完整数据流闭环(结合实际运行日志)

为了更直观、深入地理解 MimiClaw 架构各模块的协同逻辑,结合实际操作的串口日志(如 WiFi 状态查询、命令执行反馈等),这里完整拆解一次用户交互的全数据流闭环,从输入到输出、从软件模块到硬件存储,每一步都对应你实际看到的运行过程,清晰呈现各模块的核心作用与数据流转路径,彻底打通“架构设计”与“实际运行”的关联。

本次数据流闭环以实际执行的 wifi_status 命令为例(对应日志中 mimi> wifi_status 及后续反馈),该操作覆盖了“输入-推理-执行-输出-记忆”的全链路,是 MimiClaw 最典型的交互场景,也最能体现 Agent 智能体的闭环特性。整个数据流严格遵循架构分层逻辑,各模块各司其职、协同联动,具体拆解如下:

1、输入环节:用户指令接入与标准化(对应 Skills 模块 + Message Bus 模块)

数据流的起点是用户交互指令,核心是将“非标准化的用户操作”转化为“系统可识别的标准化消息”,确保后续模块能统一处理。结合实际操作和日志细节:

(1)用户操作输入:你在串口 CLI 控制台(mimi> 提示符后)输入命令 wifi_status,并按下回车提交指令。此时串口 CLI 作为交互入口,对应架构中的 Skills 模块(CLI 技能是系统内置核心技能之一,对应固件中 serial_cli 模块)。

(2)指令合法性校验:CLI 技能模块首先对输入的 wifi_status 命令进行校验,确认该命令是系统注册的合法指令(区别于你之前输入的无效指令 s,日志中会提示 Unrecognized command),校验通过后,将指令封装为标准化的 mimi_msg_t 消息结构体(对应固件中 message_bus 模块的消息格式)。

(3)消息送入消息队列:CLI 技能模块将封装好的标准化消息,通过消息总线接口送入 Message Queue(消息队列),完成输入环节的闭环。结合日志中 I (2618) cli: Serial CLI started 可知,串口 CLI 已正常启动,具备消息接收与转发能力,消息队列(队列深度 16)会缓存该指令,等待 Agent 核心推理模块读取处理,避免指令丢失。

2、Agent 推理环节:意图识别与工具调用决策(对应 Agent Loop + LLM Proxy 模块)

这是数据流的核心中枢,负责“理解用户意图、规划执行路径”,也是 AI Agent 区别于普通嵌入式程序的关键环节,结合固件日志中 I (1218) llm: LLM proxy initialized (provider: openai, model: deepseek-chat) 可知,LLM 代理模块已正常初始化,具备推理能力:

(1) 消息读取与解析:Agent 核心推理循环(对应固件中 agent_loop 任务,运行在 Core 1 核心,日志中 I (6148) agent: Agent loop started on core 1 可佐证)从 Message Queue 中阻塞读取标准化消息,解析出用户核心需求——查询当前 WiFi 连接状态。

(2) LLM 意图识别与推理:Agent 循环将解析后的用户需求,传递给 LLM Proxy(大语言模型代理),由 LLM(当前配置为 deepseek-chat)对用户意图进行深度理解。LLM 通过内置的系统提示词(关联 Context 模块的 SOUL.md 身份设定),识别出wifi_status 是“系统状态查询类指令”,且无需复杂的多轮推理,直接匹配对应的系统工具即可完成需求。

(3)工具调用决策与指令下发:LLM 推理完成后,生成工具调用指令,指定调用 wifi_status 工具(对应固件中 tool_registry 模块注册的系统工具),并将该调用指令通过消息总线,下发至 Tools 模块,完成推理环节的决策与调度。整个过程无需用户额外操作,完全由 Agent 自主完成,体现了 AI 智能体的自主决策能力。

3、工具执行环节:指令落地与数据采集(对应 Tools 模块 + WiFi Manager 模块)

这是数据流从“软件推理”到“硬件交互”的落地环节,核心是通过 Tools 模块调用底层硬件接口,获取实际的系统状态数据,对应日志中 WiFi 连接相关的打印信息:

(1)工具调用与参数解析:Tools 模块(日志中 I (1218) tools: Tools JSON built (12 tools) 表明工具集已正常初始化)接收 Agent 下发的 wifi_status 工具调用指令,解析指令参数(该命令无额外参数,直接执行查询操作)。

(2)底层硬件接口调用:wifi_status 工具通过固件中的 wifi_manager 模块(WiFi 管理模块),调用 ESP32-S3 的 WiFi 驱动接口,查询当前 WiFi 连接状态,包括:是否连接、SSID(zhz3)、IP 地址(192.168.28.161)、网关、子网掩码等核心信息。结合日志中 I (6128) mimi: WiFi connected: 192.168.28.161 可知,WiFi 模块已正常连接,能成功获取到相关状态数据。

(3)执行结果封装:Tools 模块将查询到的 WiFi 状态数据(如“WiFi connected: yes”“IP: 192.168.28.161”)封装为标准化的工具执行结果消息,确保数据格式统一,便于 LLM 后续处理和用户理解。

4、结果返回环节:推理格式化与消息回传(对应 LLM Proxy + Message Bus 模块)

该环节负责将工具执行的原始数据,转化为用户易懂的自然语言回复,再通过消息总线回传至输入渠道,完成“执行-反馈”的链路闭环:

(1)执行结果接收与格式化:Tools 模块将封装好的执行结果消息,通过消息总线回传给 LLM Proxy,LLM 接收原始数据后,根据用户交互场景(串口 CLI),将原始状态数据格式化为简洁、易懂的自然语言回复,例如“WiFi connected: yes\nIP: 192.168.28.161”,确保用户能快速获取关键信息。

(2) 回复消息封装与转发:LLM 将格式化后的回复消息,再次封装为 mimi_msg_t 结构体,并指定消息的目标渠道为“串口 CLI”,通过 Message Queue 转发至 Skills 模块的 CLI 技能单元,完成结果的回传调度。

5、输出环节:结果展示与用户交互反馈(对应 Skills 模块 + 串口 CLI)

这是数据流的终点,核心是将 LLM 生成的回复消息,通过用户交互渠道(串口 CLI)展示给用户,形成完整的交互反馈,对应你实际看到的串口输出:

(1)回复消息接收与解析:Skills 模块的 CLI 技能单元从 Message Queue 中读取目标为串口的回复消息,解析出回复内容(WiFi 状态信息)。

(2)串口输出展示:CLI 技能单元调用串口驱动接口,将回复内容打印到串口控制台,即你看到的 WiFi connected: yes\nIP: 192.168.28.161,完成用户指令的最终反馈。此时串口控制台重新显示 mimi> 提示符,等待用户下一次指令输入,形成交互闭环。

6、记忆存储环节:交互记录持久化(对应 Context 模块 + SPIFFS 存储)

这是 MimiClaw 作为 AI Agent 具备“长期记忆”能力的关键环节,将本次交互记录持久化存储,为后续用户交互提供上下文支撑,对应固件中 memory_store 模块和 SPIFFS 文件系统:

(1)交互记录封装:在输出环节完成后,Context 模块(记忆与上下文系统)自动采集本次交互的关键信息,包括:用户指令(wifi_status)、执行时间、执行结果(WiFi 连接状态、IP 地址),将这些信息封装为记忆条目。

(2) 持久化写入存储:Context 模块通过 memory_store 接口,将封装好的记忆条目写入 MEMORY.md 文件(该文件存储在 ESP32-S3 的 SPIFFS 文件系统中,日志中 I (858) mimi: SPIFFS: total=11378081, used=7530 可佐证 SPIFFS 已正常挂载)。

(3)记忆作用:本次存储的交互记录,会在后续用户交互中被 LLM 读取(可通过 memory_read 命令查看),例如用户后续输入“我刚才查的 WiFi IP 是多少”,LLM 可通过读取 MEMORY.md 中的记录,直接回复用户,实现“连续上下文记忆”,体现 AI Agent 的记忆能力。

7、数据流闭环总结(结合日志全景回顾)

结合实际的串口日志,本次 wifi_status 命令的数据流闭环,完整覆盖了 MimiClaw 五大核心层级,各模块协同联动,每一步都有日志可追溯,最终形成“输入-推理-执行-输出-记忆”的完整智能体闭环,用流程图可直观表示为:

用户输入(串口 CLI: wifi_status)

Skills 模块(CLI 技能)→ 指令校验 + 标准化封装

Message Queue(消息队列)→ 缓存消息,等待处理

Agent Loop(核心推理)→ 读取消息,传递给 LLM Proxy

LLM Proxy → 意图识别,调用 wifi_status 工具

Tools 模块 → 调用 wifi_manager,查询 WiFi 状态

Tools 模块 → 封装执行结果,回传 LLM Proxy

LLM Proxy → 格式化回复消息,回传 Message Queue

Skills 模块(CLI 技能)→ 读取回复,串口输出

Context 模块 → 记录交互信息,写入 MEMORY.md(SPIFFS 存储)

串口显示回复,等待用户下一次输入(闭环完成)

该闭环的核心价值的在于:所有操作均由系统自主完成,用户仅需输入指令,无需关注底层模块交互和硬件调用细节,这正是 AI Agent 与传统嵌入式程序的本质区别——MimiClaw 不是“被动执行指令”,而是“主动理解需求、执行需求、反馈结果、记忆上下文”,真正实现了边缘侧微控制器上的完整智能体能力。


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 22 分钟前

【花雕】裸机跑AI!MimiClaw拆解:让ESP32化身“智能龙虾”

本帖最后由 驴友花雕 于 2026-4-1 11:47 编辑

六、MimiClaw 架构核心技术亮点(嵌入式AI Agent的突破)

MimiClaw的核心技术价值,在于打破了“AI Agent只能运行在PC或云端”的固有认知,在ESP32-S3这种资源受限的微控制器平台上,实现了具备自主决策、记忆、工具调用能力的完整AI Agent系统。其技术亮点围绕“嵌入式资源适配、系统可扩展性、智能体核心能力、硬件协同优化”四大维度展开,每一项突破都针对性解决了嵌入式AI Agent开发中的核心痛点,同时完美适配你实际部署的固件逻辑与硬件环境,具体解析如下:

1、资源受限环境下的完整Agent实现(核心突破)

传统嵌入式AI项目多局限于“轻量级模型推理”,无法实现完整的AI Agent架构——核心原因在于微控制器的资源瓶颈(算力、内存、存储有限)。而MimiClaw针对ESP32-S3(双核240MHz处理器、8MB PSRAM、16MB Flash)的硬件规格,实现了ReAct Agent架构的完整落地,这是嵌入式领域AI Agent开发的关键突破,具体亮点体现在:

(1)ReAct Agent架构的嵌入式适配:首次在ESP32-S3这类低算力微控制器上,完整实现了ReAct(思考-行动)Agent核心架构,涵盖“消息接收-意图识别-工具调用-结果反馈-记忆存储”的全链路逻辑,而非简单的API调用或模型推理。结合你实际运行的固件日志,Agent Loop任务(agent_loop)运行在Core 1核心(日志中I (6148) agent: Agent loop started on core 1),独立于主任务,确保Agent推理逻辑的稳定运行,这正是ReAct架构在嵌入式平台的高效落地体现。

(2)“边缘框架+云端推理”的混合架构创新:针对ESP32-S3算力不足、无法本地运行大模型的核心痛点,创新采用“边缘端Agent框架+云端大模型推理”的混合架构,实现资源最优分配。具体而言,所有Agent核心逻辑——包括消息队列(Message Bus,日志中I (858) bus: Message bus initialized (queue depth 16))、工具调用(Tool Registry,日志中I (1218) tools: Registered tool: web_search)、记忆管理(Memory Store)等,均在ESP32-S3本地独立运行,仅大模型推理环节通过API调用云端资源,既解决了嵌入式平台算力不足的问题,又保证了Agent系统的响应速度,避免了纯云端架构的网络延迟。结合你实际运行的固件日志,这种混合架构让ESP32-S3在仅8MB PSRAM、16MB Flash的资源下,依然能稳定运行完整的Agent系统,这正是该架构的核心优势。

(3)本地逻辑自主运行,脱离云端依赖:即便断开云端连接,ESP32-S3本地的Agent核心逻辑依然能正常工作——消息队列缓存、工具调用、记忆存储等基础功能不受影响,仅大模型推理无法执行,彻底区别于“纯云端Agent”的依赖式设计。这一点在你的固件日志中也有体现:即便未配置Telegram Token(日志中W (1218) telegram: No bot token configured...),Agent核心框架依然能正常初始化,串口CLI也能正常接收基础命令,体现了“本地自主、云端辅助”的设计思路,完美适配嵌入式设备的离线使用场景。

2、模块化、可扩展的设计哲学(工程化突破)

MimiClaw在架构设计上遵循“高内聚、低耦合”的工程化原则,彻底解决了传统嵌入式AI项目“修改一处、影响全局”的痛点,其可扩展性亮点具体体现在:

(1)模块完全解耦,独立运行:架构中的五大核心模块——Channels(多渠道输入)、Agent Loop(核心推理)、Context(上下文记忆)、Skills(技能系统)、硬件层,相互独立、互不依赖,每个模块都有专属的初始化和销毁接口,修改单个模块不会影响其他功能的正常运行。例如,之前注释掉telegram_polling_task和heartbeat_task,仅关闭了刷屏功能,而WebSocket服务器(ws_server_task)、串口CLI(serial_cli)依然能正常工作,这正是模块解耦的直接体现,也对应固件日志中I (6148) ws: WebSocket server started on port 18789的正常打印。

(2) 技能系统动态扩展,无需修改核心代码:Skills(技能)模块采用“插件化”设计,新增功能时无需修改主程序app_main()核心逻辑,仅需在/spiffs/skills/目录下新增技能文件,通过skill_loader自动加载,实现“即插即用”。结合固件中I (1198) skills: Initializing skills system的日志,可知技能系统已正常初始化,支持动态扩展,后续可轻松新增GPIO控制、传感器数据采集等自定义技能,无需重新编译整个固件。

(3)多渠道统一适配,一次开发全场景复用:Channels模块实现了多交互渠道的统一封装,Telegram、WebSocket、串口CLI、网页端等渠道共用一套消息处理逻辑,开发者无需为不同渠道单独开发适配代码,实现“一次开发,多渠道可用”。例如,在串口CLI输入的命令,与在网页端http://192.168.4.1输入的命令完全一致,底层消息处理逻辑完全复用,大幅降低了开发成本,这也对应日志中I (2618) cli: Serial CLI started. Type 'help' for commands.与I (6148) ws: WebSocket server started的双渠道正常运行场景。

3、完整的记忆与身份系统(智能体差异化突破)

区别于普通嵌入式AI项目“无状态、无记忆”的局限,MimiClaw实现了“长期记忆+身份设定”的完整上下文系统,让AI真正具备“自我认知”和“用户记忆”,这也是其作为智能体的核心亮点,具体体现在:

(1)三层记忆体系,覆盖全场景需求:构建了“短期会话记忆+长期持久记忆+用户画像记忆”的三层体系,短期记忆用于缓存当前对话上下文(如你输入的命令历史),长期记忆通过MEMORY.md文件持久化存储在SPIFFS文件系统(日志中I (858) memory: Memory store initialized at /spiffs),用户画像记忆则记录用户使用习惯、偏好设置,实现个性化交互。结合固件中的memory_read和memory_write命令,可直接读写记忆内容,自定义AI的记忆范围和内容。

(2)身份设定可自定义,具备“专属感”:通过SOUL.md文件可直接修改AI的身份、性格、行为准则,无需修改核心代码,用户可根据自身需求,定义AI的回复风格、专业程度,甚至自定义AI的“人设”,让嵌入式AI不再是“通用工具”,而是贴合个人需求的专属智能助手。这一点区别于传统嵌入式AI的“固定回复”模式,实现了智能体的个性化定制。

(3)记忆文件可读写、可编辑,灵活可控:所有记忆相关文件(MEMORY.md、SOUL.md)均存储在SPIFFS文件系统中,可通过串口命令(memory_read、memory_write)或直接修改文件内容,灵活调整记忆内容,删除无用记录、补充关键信息,实现记忆的精准管理,这也对应固件中I (858) memory: Memory store initialized at /spiffs的初始化日志。

4、硬件全适配的嵌入式优化设计(落地性突破)

MimiClaw架构深度适配ESP32-S3的硬件特性,每一处设计都贴合其硬件规格,确保系统稳定运行、资源利用率最大化,彻底解决了“嵌入式AI适配难、运行不稳定”的痛点,具体亮点的:

(1)双核架构精准调度,负载均衡:充分利用ESP32-S3的双核优势,将核心任务进行合理分配——Agent Loop(核心推理)运行在Core 1,主任务、WebSocket服务器、串口CLI运行在Core 0(日志中I (248) main_task: Started on CPU0、I (6148) agent: Agent loop started on core 1可佐证),实现双核负载均衡,避免单核心过载导致的系统卡顿、崩溃,确保Agent系统稳定运行。同时,任务栈大小的配置(如telegram_polling_task配置8192字节栈、heartbeat_task配置4096字节栈),均贴合ESP32-S3的内存规格,既避免了栈溢出,又不会浪费内存资源。

(2)PSRAM与Flash的高效利用:针对ESP32-S3的8MB PSRAM、16MB Flash规格,进行了针对性优化——PSRAM用于缓存大模型上下文、消息队列,确保推理过程的流畅性(日志中I (223) esp_psram: Found 8MB PSRAM device体现了PSRAM的正常识别与利用);Flash则用于存储固件、SPIFFS文件系统(记忆文件、技能文件),通过esp_vfs_spiffs_register接口实现高效挂载,既保证了文件的持久化存储,又不影响系统运行速度,对应你日志中I (858) mimi: SPIFFS: total=11378081, used=7530的存储使用情况。

(3)嵌入式必备功能集成,开箱即用:架构中集成了WiFi配网(wifi_manager)、OTA远程升级、串口CLI、GPIO控制等嵌入式设备必备功能,无需额外开发、无需复杂配置,烧录固件后即可直接使用。结合固件日志中I (1218) wifi: WiFi manager initialized、I (6148) ws: WebSocket server started on port 18789的打印信息,可知这些功能均已正常初始化,实现“开箱即用”,大幅降低了嵌入式AI的部署门槛。

(4)异常处理机制完善,稳定性拉满:针对嵌入式设备常见的异常场景(WiFi断开、网络超时、工具调用失败等),设计了完善的异常处理逻辑——例如WiFi连接超时后自动重连(日志中W (3668) wifi: Disconnected (reason=36:UNKNOWN), retry 1/10)、工具调用失败时打印明确提示、任务崩溃后自动重启,确保系统不会因单个模块异常而整体崩溃,提升了嵌入式AI系统的稳定性和可靠性。

综上,MimiClaw的四大技术亮点,不仅突破了“嵌入式平台无法运行完整AI Agent”的技术瓶颈,更实现了“资源适配、可扩展、有记忆、易落地”的嵌入式AI创新,既贴合ESP32-S3的硬件规格,又满足用户的个性化需求,真正将AI Agent从云端、PC端,完美下沉到微控制器级别,实现了边缘侧智能的落地突破。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail