能联网却不能思考?能执行却不能决策?乐鑫把 Agent 塞进了 ESP32。
01 物联网的痛点传统 IoT 设备有几个老毛病: - 能联网,却不能思考
- 能执行,却不能决策
- 能记录,却不能学习
- 高度依赖云端,断网就变砖
- 控制方式要么是 App,要么是面板——多一个设备多装一个 App
一句话总结:设备是"傻"的,只会按预设规则执行,不会根据实际情况做判断。 最近,乐鑫正式开源了一个叫 ESP-Claw 的框架,把这个痛点解决了。 项目地址:https://github.com/espressif/esp-claw
02 ESP-Claw 是什么ESP-Claw 是一个运行在 ESP32 芯片上的 AI 智能体框架,核心理念是 Chat Coding(聊天造物)。 简单说:你在 IM 里跟设备聊几句天,它就能自己学会怎么干活。 不用写代码,不用装 App,不用接云端平台。 设备在本地就能完成感知 → 推理 → 决策 → 执行的完整闭环。
03 四大核心能力1. 对话定义设备行为(Chat Coding)传统 IoT 开发流程: 选芯片 → 装 SDK → 写 C 代码 → 编译 → 刷固件 → 配网 → 装 App → 控制设备
ESP-Claw 的流程: 刷固件 → 连 Wi-Fi → 打开微信/飞书/Telegram → 跟设备聊天 → 搞定
比如你对设备说: "每天早上 8 点,如果温度超过 28 度就打开风扇,同时给我发条消息。"
设备会自己理解你的意图,生成对应的逻辑并执行。
2. 设备端智能闭环AI 不一定要跑在云端。 ESP-Claw 把 Agent Runtime 直接下沉到边缘芯片(ESP32),设备在本地就能: - 感知:读取传感器数据(温度、光线、PIR 人体检测等)
- 推理:分析当前状态,判断该不该采取行动
- 决策:调用 LLM 做分析判断,或匹配本地 Lua 规则
- 执行:控制执行器(风扇、继电器、屏幕、摄像头等)
当任务超出本地算力范围时,设备会自动把数据上传给云端大模型处理,再把结果返回——云边协同。
3. LLM 动态决策 + Lua 确定性规则纯靠 LLM 有个问题:不可控。 你说"温度高了开风扇",但 LLM 可能今天判断开、明天判断不开,这在关键场景(比如报警联动)是不可接受的。 ESP-Claw 的解法很聪明: 三层事件处理架构: 层级 | 机制 | 响应速度 | 适用场景 | 第一层 | Lua 确定性规则 | 毫秒级 | 报警联动、安全控制 | 第二层 | LLM 动态决策 | 秒级 | 场景分析、用户意图理解 | 第三层 | 云端大模型 | 十秒级 | 复杂推理、图像识别 |
- 有匹配规则 → Lua 直接执行(断网也能跑)
- 没匹配规则 → LLM 分析判断
- 超出本地能力 → 交给云端大模型
灵活性和稳定性兼顾。
4. 本地记忆,隐私不上云设备是有记忆的,而且记忆都在本地: - 用户偏好:"记住我喜欢 26 度"
- 行为习惯:作息时间、常用操作
- 关键事件:报警记录、异常状态
- 自动学习:从历史事件中发现规律,主动建议自动化方案
为了适配 MCU 的资源限制,ESP-Claw 引入了"摘要标签"机制: 平时只加载轻量级标签目录(如"饮食偏好""设备状态"),需要时再通过标签精确召回对应记忆。
记忆还会自动归并、淘汰与压缩,持续优化存储结构。 设备越用越聪明,而且你的隐私数据不用上传云端。
04 MCP 协议:让设备成为 AI 原生对象这是 ESP-Claw 最让我兴奋的部分。 设备具备 MCP Server + MCP Client 双重身份: 作为 MCP Server(被调用方): - 把传感器读取、执行器控制封装为标准 MCP Tool
- 任何支持 MCP 的 Agent(OpenClaw、Claude、Codex)都能直接调用
- 比如:Claude Code 调用开发板摄像头拍照识别硬件
作为 MCP Client(调用方): - 主动调用网络上任何 MCP Server 暴露的服务
- 比如:调用高德地图查路况、调用飞书发会议提醒
- 设备从被动的"执行端"变成了主动的"智能节点"
这意味着什么? 设备之间可以直接对话,不需要经过云端中转。
05 和传统 IoT 方案的对比对比维度 | 传统 IoT | ESP-Claw(边缘 AI) | 核心场景 | 设备连接 + 远程控制 | 物理世界感知 + 决策 + 控制 | 处理逻辑 | 静态规则(IFTTT) | LLM 动态决策 + Lua 确定性规则 | 执行引擎 | 规则引擎 | LLM + Lua + Router 三层架构 | 控制中心 | 云服务器 | 边缘节点(ESP 芯片) | 设备协议 | MQTT/Matter/私有 SDK | MCP 统一语言 + 多协议桥接 | 设备间通信 | 依赖云端中转 | 本地直连 + MCP 抽象 | 记忆管理 | 云端数据存储 | 本地结构化记忆(JSONL + 标签) | 交互方式 | App / 控制面板 | IM 聊天(微信/飞书/Telegram) | 扩展性 | 封闭生态,开发门槛高 | 即插即用 MCP Tools | 智能程度 | 预设自动化 | LLM + 本地规则形成物理闭环 |
06 实际能干什么举几个场景: 场景 1:智能安防- PIR 传感器检测到人 → 摄像头拍照 → 上传云端模型识别
- 判定为人员入侵 → IM 即时通知用户 + 附抓拍照片
- 判定为动物 → 静默记录,事后汇总:"过去 3 小时过滤了 4 次动物事件"
场景 2:智能温控- 用户说:"我喜欢 26 度" → 记住偏好
- 温度超过 28 度 → 自动开风扇
- 发现用户每天下午 3 点手动调低温度 → 主动建议:"要不要我下午 2 点自动调低?"
场景 3:硬件开发辅助- Claude Code 调用开发板摄像头 → 拍照识别 PCB 元件
- 代码编译进度 → 实时显示在设备小屏幕上
- 编译报错 → IM 推送错误信息 + 建议修复方案
场景 4:办公自动化- 设备检测到会议室有人但无人说话 → 自动关空调
- 调用飞书 API 发送会议提醒
- 调用高德地图查询通勤路况,提前提醒用户出门
07 快速上手支持的芯片- ESP32-S3
- ESP32-C5
- ESP32-P4
一块入门级 DevKitC 开发板即可开始体验。 方式 1:浏览器一键刷固件方式 2:源码编译git clone https://github.com/espressif/esp-claw.gitcd esp-claw# 使用 ESP-IDF 编译idf.py buildidf.py flash
配置控制- 连接 Wi-Fi 后,设备会提供一个 Web 配置页面
- 在 IM 里跟设备聊天即可控制
- 支持自由切换模型供应商(不依赖任何封闭生态)
08 项目架构esp-claw/├── application/│ └── basic_demo/ # 示例应用│ └── main/│ ├── main.c # 固件入口│ ├── app_claw.c # 应用引导│ ├── basic_demo_wifi.c # Wi-Fi 连接│ ├── config_http_server.c # Web 配置服务│ └── web/ # 前端配置页面├── components/│ ├── claw_modules/ # 运行时核心层│ │ ├── claw_core/ # 核心上下文│ │ ├── claw_cap/ # 能力注册│ │ ├── claw_event/ # 事件路由│ │ ├── claw_memory/ # 记忆管理│ │ └── claw_skill/ # 技能管理│ ├── claw_capabilities/ # 能力层│ │ ├── IM 通信、MCP Client/Server│ │ ├── Lua 运行时、调度│ │ └── 文件、时间、网页搜索等│ └── lua_modules/ # 设备扩展层│ └── 显示屏、摄像头、音频、GPIO 等
四层架构: 写在最后OpenClaw 是跑在 PC 和服务器上的 AI 智能体网关——通过 IM 聊天连接用户、调度大模型、管理工具与记忆。 ESP-Claw 要解决的是同一个问题:如何把这套能力从 PC 环境延伸到实体物理世界? 乐鑫给出的答案很直接——把 Agent 塞进 ESP32,让设备自己能看、能想、能干。 这不是又一个"语音控制开关"的玩具,而是一个真正让 IoT 设备具备自主决策能力的基础设施。 当聊天就能开发智能设备成为现实,IoT 开发门槛会被拉到多低? GitHub:https://github.com/espressif/esp-claw |