解读 SKILL.md:技能开发规范详解
每个 OpenClaw 技能根目录下都必须有一个 SKILL.md 文件。这个文件到底要写什么?遵循什么规范?本文详细解读。
什么是 SKILL.md
SKILL.md 是技能的说明书,而且是给 AI 看的。当 AI 需要使用这个技能时,它会读取 SKILL.md 来了解:
- 这个技能是做什么的
- 有哪些工具可用
- 每个工具的参数是什么
- 应该怎么调用
所以 SKILL.md 必须清晰、准确,格式正确。AI 依赖它才能正确使用你的技能。
SKILL.md 基本结构
一个标准的 SKILL.md 结构:
# 技能名称
一句话描述这个技能做什么用。
## 可用工具
### tool_name(param1: type, param2: type)
简短描述这个工具做什么。
**参数说明:**
- param1: type - 参数说明
- param2: type - 参数说明
**返回:** 返回什么内容
### another_tool(param: type)
...
标题格式
一级标题 # 就是技能名称:
# Word Counter
这就足够了,不需要加 Skill 或 OpenClaw 这些后缀。
工具定义格式
每个工具用三级标题 ### 定义,格式为:
### 工具名(参数名: 类型, 参数名: 类型)
例子:
### count_words(text: string)
统计文本的字数、词数、行数。
**参数:**
- text: string - 要统计的文本内容
**返回:** JSON 格式的统计结果,包含 chars, words, lines 三个字段
参数类型
OpenClaw 技能常用的参数类型:
| 类型 | 说明 | 例子 |
|---|---|---|
string | 字符串 | 文本内容、文件路径、URL |
number | 数字 | 数量、温度、最大 token |
boolean | 布尔值 | true/false 开关 |
array | 数组 | 列表、多选 |
object | 对象 | 复杂结构 |
大部分情况下,string 和 number 就够用了。
必须包含的信息
对于每个工具,你必须说明:
- ✅ 工具的作用(这个工具干什么)
- ✅ 每个参数的含义
- ✅ 返回值说明
AI 需要这些信息才能正确调用工具。
好的例子
来自 wordpress-publisher 技能:
# WordPress Publisher
通过 REST API 发布文章到 WordPress 博客,支持创建文章、分类、标签,自动转换 Markdown 到 Gutenberg 区块。
## 可用工具
### create_post(title: string, content: string, category_name: string, tags: string[], status: string)
创建一篇新的 WordPress 文章,可以是草稿或直接发布。
**参数:**
- title: string - 文章标题
- content: string - 文章内容(Markdown 格式)
- category_name: string - 分类名称(不存在会自动创建)
- tags: string[] - 标签名称列表
- status: string - 发布状态:draft/publish/future,默认 draft
**返回:** 创建结果,包含文章 ID 和 URL
这个例子清晰完整,AI 能轻松理解。
坏的例子
不要这样写:
# 我的技能
这个技能很厉害。
## 工具
- func1 做点什么
- func2 做点别的
问题:
- ❌ 没有参数说明
- ❌ 没有返回说明
- ❌ 格式不对,AI 无法正确解析
AI 不知道怎么调用,肯定会出错。
进阶:添加更多信息
除了工具定义,你还可以添加:
使用示例
## 使用示例
帮我统计这个文件的字数:README.md
### 注意事项
注意事项
- 文件路径是相对于当前 workspace 的相对路径
- API Key 需要配置在环境变量中
### 作者信息
作者
你的名字,GitHub 链接
这些是可选的,但加上会让你的技能更完善。
## 总结
SKILL.md 规范要点:
1. **一级标题** = 技能名称
2. **开头一段** = 技能简介
3. **## 可用工具** = 工具列表开始
4. **### 工具名(params)** = 每个工具定义
5. **参数说明** = 每个参数的作用和类型
6. **返回说明** = 工具返回什么
遵循这个规范,AI 就能正确理解和使用你的技能了。
---
*更多技能开发教程请关注本站持续更新。*