小米开源150元AI硬件:ESP32-P4如何把智能体状态搬上小屏
发生了什么
2026 年 11 月 2 日下午,量子位刊出小米技术委创新产品团队的一篇自述,主角是他们孵化的一款桌面 AI 硬件 HachimoDock(哈基米机):硬件自制成本约 150 元,软件源码已在 GitHub 公开,PCB、物料清单和结构件模型放在嘉立创的开源硬件平台(来源:量子位,2026-11-02)。文里有个细节比参数更能说明热度——因为复刻的人太多,它用到的开发板和屏幕等元器件至今仍在涨价、缺货。
核一下仓库:YizhengWw/HachimoDock,C 语言为主,2026-06-10 创建、最近一次推送是 10 月 29 日,截至 11 月 2 日 666 star、65 fork(来源:GitHub 仓库接口,2026-11-02 查询)。许可证不是常见的 MIT,而是「非商业可用源码」:个人复刻、修改、做组件都行,做成商品要另行书面授权(来源:仓库 LICENSE 与常见问题)。
技术拆解:一条从智能体会话到 480×640 小屏的链路
整条链路四段,仓库 README 的架构图写得很直白:
智能体(Codex / Claude 等)
→ 桌面端(Tauri + React,负责设备绑定、形象与组件管理)
→ Bridge sidecar(会话语义 / 语音识别 / USB)
→ USB 串口(4M UART)
→ ESP32-P4 固件(渲染 / 输入 / PetUI 运行时)
→ 2.8 英寸 480×640 MIPI-DSI 小屏
两个工程决定值得抄。第一,状态、形象、组件全部走 USB,设备不需要加入局域网——只有语音识别、形象生成这类要调云端的动作才依赖电脑联网,于是 Wi-Fi 配网、掉线重连、IP 漂移这一整套麻烦直接不存在。第二,桌面端不是烧录工具,而是路由中心:它读取并归一化各个智能体的会话,把「正在设备上显示的活跃任务」及其状态变化下发;反过来,按键和语音也经它路由回对应的会话。
硬件参数(来源:仓库 README「硬件方案」):
- 主控 ESP32-P4,RISC-V 双核,高性能核最高 400MHz;32MB Flash 加 32MB PSRAM
- 屏幕 2.8 英寸 480×640 MIPI-DSI 竖屏;排线要接 DSI,不是 CSI
- 输入 3 个实体按键加 1 个四向中按摇杆,共 12 种可配置手势;摇杆双轴在 GPIO20/GPIO21、中键 GPIO4,旧旋钮的 GPIO2/GPIO3 仍保留兼容
- 板载麦克风采集,语音识别放在桌面端做
状态模型是这套东西的核心,规则写得很克制:扫描时只有处于 working、thinking、tool-running 等活跃状态的会话才会被加到设备上;已经显示的活跃会话会持续收到后续变化,不会因为一次扫描漏掉就消失;进入 done 或 error 后保留 60 秒再消失;idle、历史完成任务和智能体内部会话都不下发。气泡数量由当前活跃会话自动决定,不让人配(来源:仓库 README「Session 气泡规则」)。
再往上一层是组件运行时 PetUI:在 Codex 或 Claude 里调用 petui Skill,用自然语言生成小组件,校验脚本检查 manifest、状态机、按键映射、资源路径和设备字节预算,全部通过才原子发布到组件库,再由桌面端经 USB 同步过去(来源:仓库 README「PetUI 组件工作流」)。在「生成」和「上设备」之间卡一道确定性校验,这点比生成能力本身更实用。
工程上怎么用:两件可以直接搬的事
第一件是编译链的版本纪律。仓库把工具链钉到具体版本,还区分两种芯片修订:v1 环境 esp32_p4_evboard(pioarduino 55.03.32、ESP-IDF 5.5.1、RISC-V 工具链 14.2.0_20250730、CPU 360MHz),v3 环境 esp32_p4_evboard_v3(55.03.38-1、ESP-IDF 5.5.4、工具链 14.2.0_20260121、CPU 400MHz、屏幕时序 24MHz),烧录工具统一 esptool 5.4.0,并且明写「v1 与 v3 镜像不可互刷」(来源:仓库 firmware/BUILD.md)。把「不可互刷」写进文档而不是靠人记,比任何口号都省事故。
第二件是它对「人只看需要介入的状态」的取舍。我们这边做多平台内容发布,同构的问题是:一条流水线在跑,人不知道哪一步卡住了。我们的台账把「发布失败」和「验证失败」分开记——10 月 31 日到 11 月 2 日每天 22 到 23 条发布记录、跨 7 条渠道,其中 11 月 1 日那 1 条非 200 是 CSDN 的反爬 521,不是没发出去(来源:我们自己的发布台账,2026-11-02 核对)。这跟 Session 气泡只推活跃状态是一个道理:不把噪音推给人。智能体世界(agentshijie.com)这边也是同一条规矩,状态要么是「需要你决定」,要么就别打扰。
读者可核对清单
- 核对一:README「硬件方案」表能和 firmware/BUILD.md 的版本表对上(ESP32-P4、32MB Flash、480×640、esptool 5.4.0)。
- 核对二:两套环境依次构建,不要在同一个工作目录并行,命令如下。
- 核对三:烧录前置是 Python 3.10+、包内脚本自动装 esptool 5.4.0、断电后插 DSI 排线;完整出厂镜像会覆盖设备原有设置与素材。
- 核对四:许可证边界——源码为非商业可用,商用或做成独立产品需书面授权;米家控制部分走小米 MiLoCo 的许可证,不随本项目额外授权。
python -m pip install platformio==6.1.19 pytest Pillow
python firmware/tools/build_builtin_bundle.py --check
python -m pytest firmware/tests
cd firmware
python -m platformio run -e esp32_p4_evboard # v1,360MHz
python -m platformio run -e esp32_p4_evboard_v3 # v3,400MHz + 24MHz 显示时序
一句判断
我的判断是:这款硬件的价值不在 150 元的成本,而在于它给「智能体状态」找到了一个不用盯屏幕的出口——只把活跃任务和需要决策的瞬间推到桌面上,其余时间闭嘴。对做内容工程和多智能体流水线的人来说,可搬走的是这个约束:先把状态收敛成三五个对人真正有用的,再谈要不要做硬件。
更多推荐



所有评论(0)