开发、编排与安全开源项目

AI Passport Firmware Agent

嵌入式固件开发 Agent

面向 ESP32-C3、ESP-IDF 与 LVGL 的 FoloToy AI Passport 固件任务化开发 Agent。

项目 README(英文原文)

在 GitHub 中查看

ai-passport-agent

面向 FoloToy AI Passport(ESP32-C3 + ESP-IDF 5.5.x + LVGL)固件的引导式、任务化开发 Agent —— 一个可独立安装、可发布的 DeepSeek Harness agent preset

License Platform Target

让任何一个开发者拿到官方 fork 仓库,就能让 AI 一步步、可编译、可验证地把这块工牌改造成他想要的产品——而无需手动描述硬件细节或反复强调流程纪律。


它能做什么

  • 固定硬件已内置:MCU / 屏幕 / 按键 / 音频 / 电池 / 总线等板级事实对这块板是固定的,agent 直接当作权威,不重复推导、不猜。
  • 产品功能由引导得出:页面数、功能、交互、配色等软规格不预设,agent 用提问引导你描述开发目标,再落地成计划。
  • 任务化渐进实现:确认计划后,严格按 READ → PLAN → MODIFY → BUILD → UI → FUNCTION → HARDWARE → DOCUMENT → COMMIT → STOP 一步步推进,每步保证能编译。
  • 诚实报告:绝不虚构 PASS——未连接板子 = Hardware: NOT TESTED,只编译通过 = Build: PASS,UI 仅代码审查 = UI: STATIC REVIEW PASS

工作原理(一次会话)

Step 0  探测 docs/ 下有无实施计划文档
        ├─ 有 → 「进行中项目」模式:严格按计划执行
        └─ 无 → 「新项目」模式:引导 + 脚手架

新项目引导(问的是产品,不是硬件):

  1. 只读探索仓库,确认硬件与起始状态
  2. ask_user_question 引导:产品愿景 → 功能清单与 MVP → 交互设计 → 软件栈 → 约束 → 交付
  3. 脚手架化三份文档:docs/<PLAN>.mddocs/UI_DESIGN_SPEC.mddocs/HARDWARE_REFERENCE.md
  4. 请用户明确确认计划后才开始 TASK-00(对话里一句"好"不算确认)

目录结构

ai-passport-agent/
├── preset/                          ← 可安装的 preset 本体
│   ├── agent.cordis.yml             ← AGENT-PLANE 组合(persona + 全部工具/领域行)
│   ├── preset.yml                   ← 展示名与描述
│   └── skills/
│       └── ai-passport-firmware/    ← 随包携带的专属 skill(引导 + 实施规范)
│           └── SKILL.md
├── docs/
│   └── agent-preview.md             ← 面向使用者的能力预览/开场话术
├── install.ps1                      ← Windows 一键安装
├── install.sh                       ← macOS/Linux 一键安装
├── CHANGELOG.md
├── LICENSE
└── README.md

前置要求

  • 已安装 DeepSeek Harnessdsh),并具备编辑/装载 preset 的权限。
  • 目标仓库为 FoloToy AI Passport(ESP32-C3)源码树——官方 fork 或用户仓库均可;{{cwd}} 即该仓库。
  • 本机装有 ESP-IDF 5.5.x 工具链(构建本固件用),路径在 persona 中配置。
  • 官方固件模板:https://github.com/FoloToy/ai-passport

安装

预设安装目录按部署配置而定(默认 ~/.dsh/.agent-presets/)。建议用自带脚本:

Windows(PowerShell)

.\install.ps1

macOS / Linux

chmod +x install.sh && ./install.sh

或手动拷贝:

cp -r preset "$HOME/.dsh/.agent-presets/ai-passport"

安装后重启 Host 或在 DSH 中刷新 preset 列表,选择该 preset 即可。


配置:ESP-IDF 工具链

persona 的「Build & flash」段通过一个变量控制工具链,装载前按你的机器改一次。打开已安装的 agent.cordis.yml(例如 ~/.dsh/.agent-presets/ai-passport/agent.cordis.yml),找到 persona 的 text 中:

$IDFHome = "D:\software\Espressif"   # ← 改成你的 ESP-IDF 工具根目录
$IDFVersion = "5.5.5"                # ← 按需改成你的版本

$IDFHome 是包含 frameworks/python_env/tools/ 的根目录;其余路径全部由此推导。


使用

  1. 在 DSH 中新建会话,选择本 preset。
  2. 工作目录设置为固件仓库根(仓库根即 {{cwd}})。
  3. 确认工具列表齐全(shell、文件、检索、jobs、skills、goals、plan mode、delegation、web 等)。
  4. 描述你的开发目标,agent 会先引导、给计划、你确认后再实现。

首次使用前,请确认已装载的 agent.cordis.yml$IDFHome 指向本机真实路径。


固定硬件

以下板级事实对 FoloToy AI Passport 固定不变,agent 视为权威:

规格
MCUESP32-C3,8MB Flash,无 PSRAM
屏幕ST7789P3 240×320 RGB565,SPI2 @40MHz,无触摸
按键三按键,GPIO0 ADC 分压阶梯(BSP_BTN_MV_TABLE
音频ES8311,I2S0 全双工
电池CW2017 共享 I2C0(0x63),可选
注意GPIO18/19 保留;UART0 TX(GPIO21)与背光冲突

引脚/I2C/屏幕/按键窗口的单一权威components/bsp/include/bsp_pins.h


常见问题(FAQ)

Q:拿到的官方 fork 里没有 docs/ 计划文档怎么办? A:正常。agent 会走「新项目引导」——它只读探索确认硬件,再用提问帮你确定开发目标,脚手架化计划文档,你确认后才开始实现。

Q:我不想让它大改硬件驱动/屏幕初始化怎么办? A:在引导的「约束」环节明确告诉它哪些不许动即可;persona 也会默认保留已验证的初始化/时钟序列。

Q:换了一台电脑要改什么? A:只改 agent.cordis.yml 里 persona 的 $IDFHome$IDFVersion 两个变量。

Q:它会不会一次重写整个固件? A:不会。persona 和 skill 都硬性禁止「一次重写整个项目」与「一次改多个主要模块」,且每一步必须能编译。


开发与发布

  • 板级硬件写死(对该板固定);产品规格完全引导(不预设)。
  • 修改组合后请用 DSH 的 preset 装载校验(standingKeyFor)验证可用,再做发布。
  • 发布到公共仓库前,检查 persona 中是否残留本机路径、密钥或隐私信息。

变更记录

CHANGELOG.md

License

MIT