本文主要介绍Nanobot Skil是让 AI Agent 更专业的技能模块。一、什么是 SkillSkill技能 是 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 调用 MCU3启动应用后立即检查状态并查看日志。一句话定义Skill 是封装了领域知识、工作流程和工具的模块让 Agent 在特定场景下像专家一样工作。二、Skill 的核心特征1. 渐进式披露设计Skill 采用三层加载机制高效利用 Agent 的上下文窗口这就像一本书的目录始终可见正文在需要时才翻开附录资料更是仅在用到时才查阅。2. 简洁原则默认假设Agent 已经很聪明。 只添加 Agent 不知道的知识。每一行内容都要问自己这真的值得占用 token 吗3. 适当的自由度设置根据任务特性匹配控制粒度三、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.mdFrontmatter触发机制的关键 --- 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. 上下文高效渐进式披露节省 token4. 易于迭代单点维护全局生效
Arduino UNO Q 板载 Nanobot 自动化编程指南之七
本文主要介绍Nanobot Skil是让 AI Agent 更专业的技能模块。一、什么是 SkillSkill技能 是 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 调用 MCU3启动应用后立即检查状态并查看日志。一句话定义Skill 是封装了领域知识、工作流程和工具的模块让 Agent 在特定场景下像专家一样工作。二、Skill 的核心特征1. 渐进式披露设计Skill 采用三层加载机制高效利用 Agent 的上下文窗口这就像一本书的目录始终可见正文在需要时才翻开附录资料更是仅在用到时才查阅。2. 简洁原则默认假设Agent 已经很聪明。 只添加 Agent 不知道的知识。每一行内容都要问自己这真的值得占用 token 吗3. 适当的自由度设置根据任务特性匹配控制粒度三、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.mdFrontmatter触发机制的关键 --- 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. 上下文高效渐进式披露节省 token4. 易于迭代单点维护全局生效