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

相关推荐
冰西瓜6002 小时前
深度学习的数学原理(二十二)—— Seq2Seq编码器-解码器基础框架
人工智能·深度学习
AI医影跨模态组学2 小时前
J Immunother Cancer(IF=10.6)中山大学孙逸仙纪念医院陈柏深等团队:动态时间数据预测NSCLC新辅助免疫化疗主要病理反应
人工智能·深度学习·机器学习·医学·医学影像
liliwoliliwo2 小时前
vision transformer
人工智能·深度学习·transformer
tkevinjd2 小时前
hello-agents-chapter1-初识智能体
人工智能·ai·agent
li三河2 小时前
opencv利用freetype写中文
人工智能·opencv·计算机视觉
2601_955363152 小时前
技术赋能B端拓客:号码核验的行业困局与破局路径氪迹科技法人股东筛选系统,阶梯式价格
大数据·人工智能
我要成为嵌入式大佬2 小时前
正点原子MP157--问题详解--四(关于根文件系统驱动模块指令的注意事项)
linux·运维·服务器
feng68_2 小时前
Redis架构实践
linux·运维·redis·架构·bootstrap
lpfasd1232 小时前
2026年第13周GitHub趋势周报:AI Agent与多模态工具链加速融合
人工智能