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. 易于迭代:单点维护,全局生效

相关推荐
木雷坞11 小时前
让 AI 编程助手跑得起项目:Dev Container 实践记录
人工智能
腾讯云开发者12 小时前
港科大郭毅可谈Agentic AI时代的核心命题:人机共生,人不可能退场
人工智能
常丛丛12 小时前
5.6 LangGraph-Edges理解-Agent图的道路系统
人工智能
雪隐12 小时前
个人电脑玩AI-08让5060 Ti给你打工——我拿 Unlimited-OCR扫了 600 页书,然后悟了
人工智能·后端
Coffeeee12 小时前
Prompt要花心思写,与 AI 对话的七个技巧
人工智能·aigc·ai编程
蝎子莱莱爱打怪12 小时前
Claude Code 官宣新升级:子智能体默认后台跑,你边聊它边干活
人工智能
武子康13 小时前
调查研究-206 DeepSeek DSpark 深度解析:大模型推理加速,正在从“模型能力”转向“系统工程”
人工智能·agent·deepseek
甲维斯13 小时前
最佳work模型sonnet5来了,直接就能用!
人工智能
IT_陈寒13 小时前
React hooks 闭包陷阱把我的状态吃掉了,原来问题出在这里
前端·人工智能·后端