Arduino UNO Q 板载 Nanobot 自动化编程指南之七

本文主要介绍Nanobot Skil是让 AI Agent 更专业的技能模块。

一、什么是 Skill?

Skill(技能) 是 Nanobot 系统中的核心概念,它是一种模块化、自包含的包,用于扩展 AI Agent 的能力。可以把 Skill 理解为 Agent 的"入职培训手册"------它让一个通用型的 Agent

转变为具备特定领域专业能力的专家。

比如,一个没有 skill 的 Agent 可能知道什么是 Arduino,但不知道如何在 UNO Q 上正确编写 Bridge 通信代码。而加载了 arduino-uno-q skill 后,Agent 就能:

1,正确使用 Wire1 而非 Wire 进行 Qwiic I2C 通信,

2,用 Bridge.call() 而非 subprocess 调用 MCU,

3,启动应用后立即检查状态并查看日志。

一句话定义:Skill 是封装了领域知识、工作流程和工具的模块,让 Agent 在特定场景下"像专家一样工作"。

二、Skill 的核心特征

  1. 渐进式披露设计

Skill 采用三层加载机制,高效利用 Agent 的上下文窗口:

这就像一本书的目录始终可见,正文在需要时才翻开,附录资料更是仅在用到时才查阅。

  1. 简洁原则

默认假设:Agent 已经很聪明。 只添加 Agent 不知道的知识。每一行内容都要问自己:"这真的值得占用 token 吗?"

  1. 适当的自由度设置

根据任务特性匹配控制粒度:

三、Skill 的作用

Skill 为 Agent 提供四大能力:

四、以 arduino-uno-q 为例:一步一步制作 Skill

步骤 1:理解具体需求

首先明确 skill 的使用场景。对于 arduino-uno-q,核心问题是:

  • 用户会如何触发?"帮我写个温度监测应用"、"点亮 LED"、"读取 SHT45"

  • Agent 需要知道什么?双架构(MPU/MCU)、Bridge 通信、I2C 设备地址

  • 常见错误有哪些?用 Wire 而非 Wire1、用 subprocess 而非 Bridge.call

步骤 2:规划可复用资源

分析需求后,确定 skill 需要哪些资源:

步骤 3:初始化 Skill 目录

使用初始化脚本创建骨架:

scripts/init_skill.py arduino-uno-q --path skills/public --resources scripts,references,assets

生成的目录结构:

arduino-uno-q/

├── SKILL.md # 必需:技能说明(含 frontmatter)

├── scripts/ # 可选:CLI 脚本

├── references/ # 可选:参考文档

└── assets/ # 可选:模板文件

步骤 4:编写 SKILL.md

复制代码
Frontmatter(触发机制的关键):

  ---
  name: arduino-uno-q
  description: Arduino UNO Q App Lab 自主编程
  metadata: {"nanobot":{"emoji":"🔧","requires":{"bins":["arduino-app-cli"]},"always":true}}
  ---

  description 是触发机制的核心,必须清晰描述:
  - 做什么:UNO Q 编程
  - 触发词:编程、传感器、LED、温度、湿度...

  Body(核心指令):

  # UNO Q 自主编程

  UNO Q 双架构:**Linux (MPU)** + **MCU (STM32U585)**

  ## 核心原则

  | 必须 | 禁止 |
  |------|------|
  | MCU 侧控制硬件(sketch.ino) | Python 侧操作 I2C/GPIO |
  | `Bridge.call()` 通信 | subprocess/os.system 调用 bridge |

  ## Bridge 通信协议

  Python → MCU:
  Bridge.call("function_name", arg1, arg2)

  MCU → Python:
  Bridge.notify("event_name", data1, data2)

  保持简洁,详细内容放入 references/。

  步骤 5:添加捆绑资源

  scripts/ - 可执行脚本:

  # create_app.sh
  #!/bin/bash
  mkdir -p "$1"/{python,sketch}
  cp assets/*.template "$1/"

  references/ - 详细文档:

  # programming_guide.md
  ## 硬件架构
  - MPU: Qualcomm QRB2210 (Debian Linux)
  - MCU: STM32U585 (Zephyr RTOS)
  ...

  assets/ - 输出模板:

  # app.yaml.template
  name: App Name
  icon: 🔧
  description: ""

  步骤 6:打包 Skill

  验证并打包为 .skill 文件:

  scripts/package_skill.py skills/arduino-uno-q

  脚本会自动验证:
  - YAML frontmatter 格式
  - 命名规范
  - description 质量
  - 文件组织

  生成 arduino-uno-q.skill(实际上是 zip 包)。

  步骤 7:迭代优化

  基于实际使用反馈迭代:

  1. 发现 Agent 常用错误 → 添加到"禁止"列表
  2. 新传感器支持 → 更新 I2C 地址表
  3. 新功能需求 → 添加新的脚本/模板

  ---

五、Skill vs 传统方案对比

六、进阶:创建更复杂的 Skill

以 unoq-yolo 为例,它扩展了 arduino-uno-q,专门处理 YOLO 目标检测:

unoq-yolo/

├── SKILL.md # YOLO 检测指令

├── scripts/

│ ├── create_yolo_app.sh # 专用创建脚本

│ ├── install_deps.sh # 依赖安装

│ └── download_model.sh # 模型下载

├── references/

│ └── yolo_deployment_guide.md # NPU 加速、模型优化

└── assets/

└── classes.txt # COCO 类别标签

Skill 可以继承和组合,形成技能生态。

总结

Skill 是让 AI Agent 从"通用助手"进化为"领域专家"的关键机制。它的核心价值:

  1. 知识固化:一次创建,永久可用

  2. 流程可靠:脚本保证操作一致性

  3. 上下文高效:渐进式披露节省 token

  4. 易于迭代:单点维护,全局生效

相关推荐
byte轻骑兵17 分钟前
从收音机到蓝牙:LE Audio核心BASS服务解析与实战
人工智能·音视频·语音识别·le audio·低功耗音频
饭后一颗花生米21 分钟前
2026 AI加持下前端学习路线:从入门到进阶,高效突破核心竞争力
前端·人工智能·学习
默 语22 分钟前
“我跑不过我的代码“:今天北京半马,程序员追机器人追到开电瓶车
人工智能·机器人·openclaw
mounter62532 分钟前
深度解析:Linux 内核为何要移除“直接映射” (Direct Map)?
linux·运维·服务器·security·linux kernel·direct mem map
AC赳赳老秦1 小时前
HR必备:OpenClaw批量筛选简历、发送面试通知,优化招聘流程
运维·人工智能·python·eclipse·github·deepseek·openclaw
NineData1 小时前
NineData亮相香港国际创科展InnoEX 2026,以AI加速布局全球市场
运维·后端
GreenTea1 小时前
Deep Dive into Claude Code:源码泄漏引发的AI Agent架构全解析
前端·人工智能·后端
another heaven1 小时前
【Docker/虚拟机 深度对比Docker与虚拟机:原理、区别与最佳使用场景】
运维·docker·容器