OttoClaw · Local Agent Firmware · 全栈开源

一个不会开口说话的AI 桌面人形机器人_

闪猫1号 AI 桌面人形机器人的开源本地 Agent 固件(可替代默认语音固件)。专为极客开发者设计 — ESP32-S3 单芯片全栈运行,0.5W 功耗 24/7 在线,安静如猫,始终在场。全栈开源 CC BY-NC-SA 4.0。

我很 i,不爱说话也不吵你,只用钉钉悄悄找你聊天。一颗 ESP32-S3 就跑完全部大脑,记忆全在我肚子里,24h 待机只喝 0.5W。我会自己掰舵机摆姿势,想怎么动就怎么动,还会害羞低头、开心乱晃。别看我现在高冷,熟了咱们可能是兄弟、恋人、姐妹甚至闹翻哦~但我全栈开源,想怎么改随你。
0.5W功耗 24/7 在线
22AI 自主情绪
100+社区创作
闪猫1号搭载 OttoClaw 固件 Fig.01 — OttoClaw / Silent Local Agent
[ 00 ] — Positioning

产品定位与技术取舍

为什么选择本地端侧、静默交互与全栈开源——每一项能力背后,都是一次明确的设计取舍。

01

真正本地端侧

纯 C / FreeRTOS,单块 ESP32-S3 即可运行全部功能,不依赖云端

02

不会开口说话

钉钉消息交互,忙碌时安静等候,安静如猫,始终在场

03

AI 自主情绪

海量情绪状态随语境随机波动,情绪是自发的而非被动的

04

性格与成长

5 阶段关系成长,AI 自主推演关系类型,每段关系都有故事线

05

AI 控制关节

大模型自主决定 6 个舵机角度,创造任何它想象的动作姿态

06

全栈开源

硬件、软件、3D 模型全部开源,CC BY-NC-SA 4.0

07

全开放架构

自选模型、自选通道、自选 MCP/Skill 服务接入

08

功能模块母集

麦克风、显示屏、喇叭、触摸、6路舵机、WiFi、蓝牙一板全集成

09

100+ 社区创作

创客们做出 100+ 种衍生作品,3D打印、二次开发、外观改造

[ 01 ] — Local Agent

本地端侧 Agent0.5W 永不关机

市面上的陪伴机器人依赖云端。OttoClaw 真正运行在本地端侧。

01

0.5W 功耗 24/7 在线

USB 供电即可,无需维护,永远待命

02

纯本地运行

不依赖云端,断网也能思考与响应

03

记忆会话技能全部本地存储

你的隐私不离开芯片,安全可控

04

无 Linux、无 Node.js、无臃肿依赖

纯 C / FreeRTOS,极致轻量

本地端侧 Agent Fig.02 — On-Device AI · ESP32-S3
[ 02 ] — Silent & Geeky

极客开发 · 安静如猫DingTalk · Not Voice

不说话、不打扰,文字即对话,适合极客与本地 Agent 实验者。

01

钉钉消息交互

不开口、不打扰。文字即对话,忙碌时安静等候

02

双向交互

发消息触发动作、获取回答、搜索信息

03

Captive Portal 配网

手机浏览器一键完成所有设置,零门槛上手

04

WebSocket API

端口 18789,内置聊天页与设置页,开发者可接入自有前端

正式版包含语音对话版 — 具备语音对话能力,可主动发起聊天

钉钉消息交互 Fig.03 — DingTalk Stream · Silent Mode
[ 03 ] — Emotions

AI 自主情绪表达海量情绪随语境波动

情绪是 AI 自主触发的,不是用户按按钮才笑。

01

海量情绪状态

开心、害羞、思考、愤怒、惊讶、无聊、赛博、发晕、亢奋……

02

情绪是自发的

大模型根据语境自行决定触发哪种情绪,无需用户指令

03

开心摇摆

收到好消息时,身体左右摇摆

04

害羞掩面

被夸奖时双手遮住脸

05

思考沉思

正在推理时低头慢动作

06

LCD 实时显示

1.54 寸屏幕同步呈现情绪状态

开心害羞思考愤怒惊讶无聊赛博发晕亢奋+13 · 共 22 种
22种AI自主情绪 Fig.04 — 22 AI Emotions · LCD Display
[ 04 ] — Growth

性格与成长体系从高冷到羁绊

它有自己的性格。初次见面可能对你爱答不理,随着互动增多逐渐熟络。

1

阶段1: 陌生 (0–79)

初次见面,礼貌而疏远

2

阶段2: 认识 (80–199)

偶尔开玩笑

3

阶段3: 熟络 (200–499)

主动关心你,记住你的习惯

4

阶段4: 亲密 (500–2999)

无话不谈,有默契

5

阶段5: 羁绊 (3000+)

不可替代的存在

关系可能发展为朋友、哥们、恋人,甚至反目成仇 — 每一段关系都有属于自己的故事线。关系类型 AI 自主推演(兄弟、恋人、铁哥们……不是预设标签);LCD 红心 1~5 颗实时显示关系深度;用户 rude / 怼 → 关系扣分,态度决定关系走向。

关系成长体系 Fig.05 — Relationship Growth · 5 Stages
[ 05 ] — Joints

真正的 AI 控制每一个关节不是预设脚本

大模型根据语义理解,自主决定 6 个舵机到达何种角度。

01

不是预设脚本

大模型实时推理每个舵机角度,每次可能设计出不同组合

02

6 舵机独立控制

左腿、右腿、左脚、右脚、左手、右手

03

每个动作独一无二

同一个指令,不同语境不同表达

AI自主控制关节 Fig.06 — 6-Servo · AI-Driven Pose
AI Servo Sequences — 求婚
用户:   "来一个求婚的动作"
AI 推理: 求婚 = 单膝跪地 + 右手高举 + 左手放下 + 微微低头
→ 调用 self.otto.pose: 右腿30° 右脚0° 右手10°(高举) 左手45°(放下)
→ 机器人执行: 单膝跪地,右手高举
→ AI 回复: "我跪下了,你愿意嫁给我吗?"

同样的"求婚"请求,AI 每次可能设计出不同的姿态组合。这才是 AI 真正控制身体。

Lite 版提供 AI Servo Sequences Lite。正式版融合自编程能力,实现更丰富的 AI 意识物理化表达。

[ 06 ] — Open Source

全栈开源 + 全开放架构CC BY-NC-SA 4.0

不锁定任何平台,所有配置完全开放。硬件、软件、3D 模型全部开源。

01

2 种 LLM 格式

Anthropic 兼容 + OpenAI 兼容,自定义 Base URL 即可接入任意模型

02

钉钉 Stream 直连

无需公网服务器,安静陪聊

03

阿里云百炼一键接入

搜索增强、Agent 应用、MCP 服务、Skill 技能包

04

HTTP 代理支持

Clash / V2Ray / Shadowsocks 兼容

05

配置门户 + 串口 CLI 双入口

手机浏览器配网,命令行运维

06

100+ 社区二次创作

涵盖 3D 打印、二次开发、外观改造

全栈开源 Fig.07 — Full Stack Open · CC BY-NC-SA 4.0
[ 07 ] — Features

对话、搜索与记忆Chat / Search / Memory

通过钉钉与 OttoClaw 交互,支持对话、联网搜索、长期记忆。

DingTalk ⇄ OttoClaw
用户:     "今天杭州天气怎么样?"
OttoClaw: [调用 web_search] → "杭州今天晴,28°C,适合出门走走"

用户:     "记住我喜欢吃火锅"
OttoClaw: [调用 memory_write] → "已记录"

(数日后)
OttoClaw: "要不要推荐一家火锅店?" ← 跨重启仍记得用户偏好

交互方式

钉钉

钉钉 Stream 直连

主聊天入口。Stream 模式直连,无需公网服务器。安静不打扰,适合需要安静陪伴和本地 Agent 实验的用户

WS

WebSocket API

端口 18789。内置聊天页、设置页,开发者可接入自有前端或桥接服务

CLI

串口 CLI

oc> 命令行,本地运维与配置。波特率 115200,高级用户专用

技术架构

01

纯 C / FreeRTOS

单块 ESP32-S3 运行全部功能,无 Linux、无 Node.js

02

双核架构

Core 0 处理网络 I/O,Core 1 运行 Agent 循环

03

Anthropic tool use / ReAct

AI 自主决定工具调用与编排

04

6 舵机 LEDC PWM

每个关节独立控制,振荡器驱动平滑运动

05

SPIFFS 本地存储

记忆、会话、配置均在设备本地,不依赖云端

06

功能模块母集

麦克风、显示屏、喇叭、触摸、6路舵机、WiFi、蓝牙一板全集成

[ 07a ] — Improvised Motion

即兴动作创作AI Servo Sequences Lite

用户仅需一句话,AI 即自主完成从语义理解到姿态设计的全过程:

prompt → pose → reply
"来一个求抱抱的动作" → AI 推理姿态 → 双手张开 + 身体前倾 → "抱抱我吧!"
"表现出愤怒"       → AI 推理姿态 → 脚部用力 + 身体前倾 → "我很生气!"
"做一个鞠躬"       → AI 推理姿态 → 上身前倾 + 双手放低 → "向您致敬"
[ 07b ] — Memory Files

记忆系统 — 纯文本文件存储

所有数据以纯文本文件存储于 SPIFFS,AI 可读写:

文件说明
SOUL.md机器人人设与性格
USER.md用户偏好画像
MEMORY.md长期记忆(跨会话保留)
RELATION.md关系成长数据(阶段、消息数、关系类型)
YYYY-MM-DD.md每日笔记(自动生成)
<chat_id>.jsonl会话历史(按聊天独立存档)

详见 GitHub 仓库中的 ARCHITECTURE.md 与 TODO.md

[ 08 ] — Primitives

22 个预定义动作原语

除了 AI 即兴创作动作,OttoClaw 还内置 22 个动作原语,分 8 个类别。AI 可自主调用或组合编排:

行走
walkwalk_backwardturn
跳跃
jumpupdown
摇摆
swingmoonwalk
姿态
sitbendshake_leghome
双手
hands_uphands_downhand_wave
花式
windmilltakeofffitness
情绪
greetingshy
套路
radio_calisthenicsmagic_circleshowcase

每个动作支持参数控制:steps(步数)、speed(速度)、direction(方向)、amount(幅度)。AI 可根据语境自动调整参数。

[ 09 ] — Showcase

实物 & 社区创作100+ Makers

OttoClaw 的产品照片和社区创客们的二次创作。

[ 10 ] — Quick Start

快速上手指南Flash · Configure · Chat

从烧录固件到开始聊天,只需 4 步。

01

下载固件

从 GitHub Releases 下载 ottoclaw-full-v2.0.bin

02

USB 连接

USB Type-C 连接开发板,须支持数据传输(不能只充电),保持开机状态

03

在线烧录

打开 鹿戴马在线烧录,芯片选 ESP系列 → 不限类型,上传固件(写入地址 0x0),点击开始烧录

04

配网 & 开始聊天

烧录完成后按 EN 键重启,手机连接 WiFi 热点 OttoClaw-XXXX,浏览器自动跳转配置门户,依次配置 WiFi → 大模型 → 钉钉即可开始聊天

完整 8 步教程请参考 GitHub README

ESP32-S3 USB 连接 Fig.08 — USB Type-C · Data Port Required
[ 10b ] — Portal

配置门户详解

连接 OttoClaw-XXXX 热点后浏览器自动跳转 http://192.168.4.1,页面顶部显示 5 个标签页:

WiFi

WiFi

扫描周边 WiFi,一键选择并保存密码

LLM

大模型

选格式 + 填 API Key + 模型名 + Base URL

钉钉

钉钉

填入 App Key + App Secret(Stream 模式)

其他

其他

搜索、百炼、HTTP 代理(可选)

动作

动作测试

验证舵机工作,重启前可先测试动作

[ 10c ] — LLM Formats

大模型接入方式

支持两种大模型接口格式,自定义 Base URL 即可接入任意模型:

格式适用场景自动补全路径认证方式
Anthropic 兼容Claude、DashScope Anthropic端/v1/messagesx-api-key
OpenAI 兼容Qwen、DeepSeek、OpenAI、Gemini、智谱等/chat/completionsBearer Token

国内推荐:通义千问(无需代理)Base URL https://dashscope.aliyuncs.com/compatible-mode/v1 · DeepSeek(直连)Base URL https://api.deepseek.com/v1

[ 10d ] — esptool

esptool 命令行烧录

shell — esptool
$ esptool.py --chip esp32s3 --port PORT --baud 460800 --before default_reset --after hard_reset write_flash -z 0x0 ottoclaw-full-v2.0.bin
shell — install
$ pip install esptool

PORT: Mac /dev/cu.usbmodem1101 · Windows COM3

[ 11 ] — CLI

CLI 命令参考

配置门户可完成所有日常配置。以下 CLI 命令供高级用户通过 USB 串口调试使用(波特率 115200,oc> 前缀):

oc> wifi_set <ssid> <pass>设置 WiFi
oc> set_dingtalk <key> <secret>设置钉钉凭据
oc> set_api_key <key>设置大模型 API Key
oc> set_model <model>设置模型名称
oc> set_model_provider <p>设置提供商 (anthropic / openai_compat)
oc> set_base_url <url>设置 Base URL
oc> set_search_key <key>设置搜索 API Key
oc> set_bailian_app_id <id>设置百炼 App ID
oc> set_proxy <host> <port>设置 HTTP 代理
oc> clear_proxy移除代理设置
oc> config_show显示当前配置
oc> config_reset清除运行时配置
oc> restart重启设备
oc> wifi_status显示 WiFi 状态与 IP
oc> wifi_scan扫描附近 WiFi
oc> memory_read显示长期记忆内容
oc> memory_write "内容"写入长期记忆
oc> heap_info显示可用堆内存
oc> session_list列出聊天会话
[ 12 ] — Roadmap

Lite 版 vs 正式版当前发布为 Lite 版

正式版正在开发中。关注 GitHub 获取最新动态。

功能对比

Lite vs Full
功能Lite 版(当前)正式版(开发中)
交互方式钉钉消息交互钉钉 / 飞书 / 企微多通道
AI 模型接入Anthropic / OpenAI 兼容阿里云百炼深度接入
动作系统AI Servo Sequences Lite正式版 — 融合自编程能力
语音对话无(静默设计)小智AI语音版可选
情绪系统海量 AI 自主情绪扩展情绪 + 表情联动
关系成长5 阶段 + AI 推演长期记忆增强版
开源协议CC BY-NC-SA 4.0
[ 13 ] — Acknowledgments

致谢Standing on open shoulders

灵感源自 OpenClaw、Nanobot、mimiclaw 与 OttoDIYLib。我们将 AI Agent 架构带入嵌入式硬件,并赋予其更具实体感的设备体验。

OpenClaw

GitHub →

Nanobot

GitHub →

mimiclaw

GitHub →

OttoDIYLib

GitHub →

[ 15 ] — Community

加入极客社群

获取技术支持、分享作品、参与共创讨论。

闪猫科技极客万人社群

涵盖技术交流、二次开发、产品设计、3D 建模、嵌入式、云计算等话题

点击加入 QQ 群 →
QQ群二维码 扫码或点击加入
[ 16 ] — Hardware

购买硬件一块板,两套系统通用

闪猫1号 AI 版开发板 — 两套系统通用。

这块开发板是市面上几乎所有 AI 玩具和桌面机器人开发板的功能模块母集 — 麦克风、显示屏、喇叭+功放、电源管理、电容触摸、WiFi、蓝牙一板全集成,还能扩展 6 路舵机。

A

官方开发板一键下单

闪猫侠机器人旗舰店 →
B

DIY 套件(40 分钟组装)

已烧录固件,组装即用

DIY套件 →
C

PCB + BOM 开源文件

立创开源硬件 →
D

3D 打印外壳 STL

MakerWorld →

完整组装与使用教程:shanmaotech.cn/ottodiy · 社区共创成就墙:成就墙 →