附录 D:技能开发与发布指南 ​

附录 D:技能开发与发布指南 ​OpenClaw 的技能 Skill 系统是其核心扩展机制 通过编写一个 文件 你就能让 AI Agent 学会新能力 本附录从零讲解技能的结构 开发流程和发布方式 推荐工具 Anthropic 官方出品的 skill creator 是目前最成熟的技能开发辅助工具 本附录以它为主线 先分清两个概念 Tools 工具 Skills 技能 比喻 手脚和权限开关 小程序 插件

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



OpenClaw 的技能(Skill)系统是其核心扩展机制——通过编写一个 文件,你就能让 AI Agent 学会新能力。本附录从零讲解技能的结构、开发流程和发布方式。

推荐工具:Anthropic 官方出品的 skill-creator 是目前最成熟的技能开发辅助工具,本附录以它为主线。


先分清两个概念:

Tools(工具)Skills(技能) 比喻手脚和权限开关小程序 / 插件 作用决定 Agent 能不能做某类动作给 Agent 增加特定能力 例子文件读写、Shell 执行、网络请求网络搜索、天气查询、代码审查

简单说:Tools 是"能力通道",Skills 是"装进通道里的具体能力"。

OpenClaw 按优先级从高到低加载技能:

优先级类型位置说明1工作空间技能当前工作空间专属,优先级最高2托管技能通过 ClawHub 安装的共享技能3内置技能随 OpenClaw 安装官方捆绑,优先级最低

同名技能按优先级覆盖,采用懒加载策略(用到时才读取 SKILL.md 正文)。


每个技能是一个文件夹,核心是 :

由两部分组成:YAML frontmatter(元数据)+ Markdown 正文(指令)。

字段必填说明是技能标识符,小写字母 + 连字符(如 )是 决定 AI 何时调用此技能——写清楚"做什么"和"什么时候用"否是否可通过斜杠命令手动调用(默认 )否设为 则 AI 不会自动触发,只能手动调用(默认 )否技能或服务的官网链接否需要的环境变量(未设置时技能标记为"不可用")否需要的系统命令(如 、、)否需要的配置路径

技能内容按需逐级加载,节省上下文窗口:

级别内容何时加载建议大小1 + 始终在上下文中~100 词2SKILL.md 正文技能被触发时<500 行3 中的文件正文中指示读取时不限

写作建议:SKILL.md 正文控制在 500 行以内。如果内容较多,将详细文档放到 目录,在正文中用"如需了解 X,请读取 "指引。


skill-creator 是 Anthropic 官方出品的技能开发辅助工具,它能引导你完成从构思到测试的完整流程。

本教程已将 skill-creator 的完整源码收录在 目录,供离线参考。

skill-creator 本身就是一个 OpenClaw 技能,安装方式与其他技能一致:

安装后,skill-creator 会自动出现在 OpenClaw 的可用技能列表中:

skill-creator 采用对话式开发——你只需要在聊天中描述想要的技能,它会引导你完成全部步骤:

第一步:描述意图

在 OpenClaw 聊天界面中,直接告诉 Agent 你想做什么:

或者更具体地:

skill-creator 会通过几个问题帮你明确需求:

  • 这个技能让 Agent 做什么?
  • 什么时候应该触发?(用户说什么话时)
  • 输出是什么格式?
  • 需要测试用例吗?

第二步:自动生成 SKILL.md

skill-creator 根据你的回答自动生成完整的 SKILL.md,包括:

  • frontmatter 元数据(name、description、依赖声明)
  • Markdown 指令正文
  • 需要的脚本文件(如 API 调用脚本)

第三步:测试与迭代

skill-creator 会生成 2-3 个测试用例,模拟真实用户的对话场景,然后:

  1. 用你的技能运行这些测试
  2. 展示测试结果供你审阅
  3. 根据你的反馈改进技能
  4. 重复,直到你满意为止
skill-creator 的完整目录结构
skill-creator 进阶功能

描述优化(Description Optimization)

字段是 AI 决定是否调用技能的唯一依据。skill-creator 内置了自动优化流程:

  1. 生成 20 个测试查询(10 个应触发 + 10 个不应触发)
  2. 在你审阅并确认后,运行优化循环
  3. 自动将评测集拆分为 60% 训练 / 40% 测试
  4. 每轮迭代最多运行 3 次以获取可靠触发率
  5. 最终选择测试集得分最高(而非训练集)的描述,避免过拟合

盲测对比(Blind Comparison)

想严格比较两个版本的技能?skill-creator 支持将两个版本的输出交给独立代理盲评——它不知道哪个是新版、哪个是旧版,只根据质量打分。

基准测试(Benchmarking)

每轮迭代自动生成 ,包含:

  • 各断言的通过率
  • 用时和 Token 消耗对比
  • 均值 ± 标准差 + 变化量

如果你更喜欢手动操作,步骤如下:

  1. 创建目录
  2. 编写 SKILL.md(参照本附录第二节的格式)
  3. 验证
  4. 测试:在聊天中发送触发关键词,观察技能是否正常工作。

以 ClawHub 上的 tavily-search(v1.0.0)为例,看一个真实技能的完整结构。这是一个通过 Tavily API 为 AI Agent 提供网络搜索能力的技能。

Frontmatter 设计

字段值作用安装后的技能标识符AI 根据这段描述判断何时调用——写清楚"做什么"是关键方便用户注册获取 API Key声明需要 Node.js,加载时自动检查未设置时技能标记为"不可用"而非崩溃告诉配置向导该提示用户填哪个 Key

脚本设计模式

核心逻辑(约 100 行):

四条关键原则:

原则做法原因输出 MarkdownAI Agent 能直接解析结构化结果参数校验前置缺 Key 时 让 OpenClaw 捕获并提示用户,而非抛异常结果截断避免输出过长占满上下文窗口 变量SKILL.md 中引用脚本路径运行时自动替换为实际路径,无需硬编码

配置方式

安装后在 中配置:

或直接设置环境变量:


技能开发完成后,你可以将它发布到 ClawHub 社区,让全世界的 OpenClaw 用户都能安装使用。

确保你的技能文件夹结构完整:

注意:ClawHub 只接受包含 和纯文本文件的文件夹。二进制文件、图片等不支持上传。

1. 登录 ClawHub

访问 clawhub.ai,使用 GitHub 账号登录。

2. 进入发布页面

点击页面顶部的 "Publish" 按钮,进入技能发布界面:

ClawHub 技能发布界面

3. 填写发布信息

字段说明示例 Slug技能的 URL 标识符(小写字母 + 连字符) Display name技能显示名称 Version版本号,遵循 语义化版本(SemVer) Tags版本标签,默认

4. 上传技能文件夹

将包含 的文件夹拖拽到 "Drop a folder" 区域,或点击 "Choose folder" 手动选择。

上传后,页面右侧会显示检测到的 文件。系统会自动去除外层包裹目录——你只需确保文件夹内有 即可。

5. 自动校验(Validation)

ClawHub 会自动检查技能是否符合社区规则:

  • 是否存在且格式正确
  • frontmatter 是否包含必需的 和
  • 文件是否为纯文本

校验通过后会显示 "All checks passed"

6. 确认许可证(License)

默认许可证为 MIT-0(MIT No Attribution):

允许任何人免费使用、修改和重新分发,无需署名。

勾选 "I have the rights to this skill and agree to publish it under MIT-0" 确认。

提示:MIT-0 是目前最宽松的开源许可证之一,适合社区共享。如果你的技能包含专有内容,请在发布前确认许可证兼容性。

7. 填写 Changelog(可选)

简要描述这个版本的内容,例如:

8. 发布

确认无误后,点击右下角的 "Publish skill" 按钮。发布成功后,其他用户即可通过以下命令安装:

修改技能后,只需递增版本号并重新上传:

  1. 更新 SKILL.md 中的内容
  2. 在发布页面填写新版本号(如 → )
  3. 上传更新后的文件夹
  4. 填写 Changelog 说明变更内容
  5. 点击 Publish

用户可通过 获取最新版本。


ClawHub CLI 的完整用法详见附录 A。

编辑 :

需要 API Key 的技能,推荐使用 SecretRef 安全存储:

支持的 类型:

source说明适用场景从环境变量读取最常用,适合本地开发从文件读取适合多人共享服务器从命令执行结果读取适合集成密钥管理系统

对于比技能更复杂的扩展需求(如自定义 Transport、新增 Tool 类型),可以开发插件:


常见原因:

  • 缺少环境变量( 中声明的变量未设置)
  • 缺少系统命令( 中声明的命令未安装)
  • SKILL.md 格式错误(frontmatter 缺少 或 )
  • 检查 是否准确描述了触发场景
  • 确认 未设为
  • 尝试在描述中增加触发关键词(skill-creator 的描述优化功能可以帮助解决这个问题)

确保技能目录有正确的读取权限:


开发技能前,用这份清单逐项确认:

  • [ ] SKILL.md frontmatter 包含 和
  • [ ] 清晰描述触发条件和能力(AI 靠这个决定何时调用)
  • [ ] 环境变量需求在 中声明
  • [ ] 系统命令依赖在 中声明
  • [ ] 脚本输出 Markdown 格式(对 AI 友好)
  • [ ] 敏感信息使用环境变量或 SecretRef,不硬编码
  • [ ] 错误处理完善(缺少 Key 时 ,API 失败时输出清晰错误)
  • [ ] 本地测试通过( + 实际对话测试)
  • [ ] 准备发布时:文件夹只含 SKILL.md 和纯文本文件

小讯
上一篇 2026-03-30 09:41
下一篇 2026-03-30 09:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/230838.html