Skill 应用市场
Ameba-Claw Skill 应用市场是托管于 GitHub 的官方开放仓库,为设备提供可按需安装的 Skill 扩展包。 marketplace_search 和 marketplace_downloader 是随 Ameba-Claw 固件预置的内置 Skill,与市场仓库中的 Skill 相互独立;前者负责搜索市场索引,后者负责从市场下载并安装 Skill。借助这两个 Skill,Agent 可以在对话中直接完成搜索、兼容性检查、下载与激活的完整流程,无需手动操作文件系统。
市场仓库地址:https://github.com/Ameba-AIoT/ameba-claw-skills-marketplace 。
备注
两个 Skill 均需通过 http_request Capability 访问 github.com。使用前请确认设备配置中已将 github.com 加入 HTTP 请求白名单,否则操作会失败并提示 allowlist 错误。
搜索市场 Skill
marketplace_search 是一个纯知识型 Skill,激活后 Agent 会从市场拉取 Skill 索引,在上下文中按关键字、标签或类别进行过滤,并将匹配结果(包含精确 id、描述、标签等信息)返回给用户。搜索结果中的 id 可直接用于后续安装。
在对话中描述需求即可触发搜索:
帮我找一下市场里有没有温湿度相关的 Skill
帮我搜一下 LCD 游戏类的 Skill
市场里有哪些传感器 Skill?
备注
marketplace_search 仅搜索市场中的 Skill,不包含设备上已内置的 Skill。搜索结果展示后,Agent 会提示用户使用精确 id 进行安装。
下载并安装 Skill
marketplace_downloader 是一个含脚本型 Skill,负责将市场中的 Skill 下载并安装到设备的 vfs:/skills/ 目录,安装完成后自动在当前会话中激活。
在对话中说明要安装的 Skill 即可:
帮我安装 dht11_temp_humidity
从市场装一个贪吃蛇游戏
安装 ws2812_led_strip 这个 Skill
安装后,该 Skill 会出现在 vfs:/skills/ 目录下,与用户自建的 Skill 统一管理,可通过文件管理界面查看和编辑,也可通过对话直接调用。
外设兼容性检查
安装前,marketplace_downloader 会先读取目标 Skill 的元数据,确认其外设依赖是否与当前开发板匹配:
Agent 拉取目标 Skill 的元数据,获取其外设依赖列表。
若存在外设依赖,Agent 自动激活
board_hardware_info,逐一查询依赖的外设或设备是否可用。全部通过后执行安装;若有任一外设缺失,安装停止,Agent 会告知用户缺少哪些硬件以及哪些开发板支持这些外设。
例如,安装一个依赖触摸屏和 IMU 的游戏 Skill 时,若当前开发板不带触摸屏,Agent 会提示:
安装失败:当前开发板缺少 touch_i2c_gt911_st7701p 和 imu_i2c_bmi270。
支持这些外设的开发板:PKE8721FLM-VA4-N33-HMI-ST7701P。
备注
如需在不满足外设要求的开发板上强制安装,可明确告知 Agent 跳过兼容性检查。强制安装后,Skill 能否正常运行取决于硬件实际连接情况。
可用 Skill 概览
市场中的 Skill 按功能分为以下类别,内容持续扩充,以 GitHub 仓库为准:
类别 |
说明 |
|---|---|
|
传感器读取类,通过 GPIO 或总线接入常见传感器模块(如温湿度、环境光等),读取数据后返回给 Agent 推理 |
|
执行器控制类,包括舵机角度驱动、可寻址 RGB LED 灯带控制等需要精确时序输出的场景 |
|
应用类,面向带显示屏的开发板,提供含 NTP 时间同步的时钟、闹钟等实用应用 |
|
游戏类,面向带触摸屏或按键的开发板,涵盖多款经典及原创游戏 |
|
网络信息查询类,通过 HTTP 接口获取实时天气、加密货币价格、公网 IP 地理位置等数据,无需额外硬件 |
备注
安装时必须使用市场中的精确 id (仅允许字母、数字、下划线和连字符),不可凭描述猜测名称。如不确定,请先通过 marketplace_search 确认 id 再执行安装。
提交 Skill 到市场
Ameba-Claw Skill 应用市场是开放仓库,欢迎开发者贡献 Skill。提交流程基于标准的 GitHub Pull Request 工作流。
提交流程
Fork 仓库 ameba-claw-skills-marketplace,在自己的 Fork 上新建分支,分支命名格式为
skill/<skill_name>。在仓库根目录下创建以 Skill 名称命名的目录,按照下方目录结构放置文件。
确认所有文件符合规范,完成 提交前检查清单 中的各项检查。
向主仓库发起 Pull Request,标题格式为
[skill] add <skill_name>。
目录结构
每个 Skill 须包含以下文件:
<skill_name>/
├─ SKILL.md # 文档与元数据
├─ _metadata.json # 机器可读索引
└─ scripts/ # Lua 脚本(如有)
└─ main.lua
元数据字段
SKILL.md 文件头部须以 --- 包裹的 JSON 格式声明元数据,必填字段如下:
字段 |
类型 |
说明 |
|---|---|---|
|
string |
Skill 名称,须与目录名完全一致 |
|
string |
英文单句描述,不超过 120 个字符,末尾不加句号 |
|
string |
作者姓名或 GitHub 用户名 |
|
array |
功能类别,从 |
|
array |
3–6 个全小写关键字 |
|
array |
所依赖外设的设备 ID(取自仓库中的 |
命名规范
目录名使用全小写字母与下划线组合,例如
dht11_temp_humidity。description须为英文,表述为单个陈述句。category只能从枚举列表中选取,不得自行添加新类别。peripherals中的设备 ID 须与主仓库board.json中的定义严格匹配。
提交前检查清单
在发起 Pull Request 前,请确认以下各项:
元数据 JSON 语法正确,可使用编辑器的 JSON 校验功能或在线工具验证。
description满足长度限制(≤120 字符)且格式正确。peripherals列表与 Skill 实际硬件需求一致。Lua 脚本已在真实硬件上完成测试。
已在仓库的
SKILLS_zh.md文件中添加对应条目。