什么是 OpenClaw 技能?
OpenClaw 技能(Skill)是 AI 能力扩展的标准化格式。每个技能是一个包含 SKILL.md 文件的文件夹,定义了:
- 技能的用途和场景
- 何时激活(匹配条件)
- 如何使用(操作指南)
- 相关的工具和资源
当用户的需求与技能描述匹配时,OpenClaw 会自动加载该技能的 SKILL.md,让 AI 按照其中的逻辑处理任务。
技能目录结构
一个标准的技能目录结构:
my-skill/├── SKILL.md # 技能描述(必需)├── script.js # 辅助脚本(可选)├── config.json # 配置文件(可选)├── templates/ # 模板文件(可选)└── README.md # 说明文档(可选)核心文件是 SKILL.md,这是 AI 会读取和理解的内容。
SKILL.md 格式
SKILL.md 是一个 markdown 文件,通常包含以下部分:
1. 技能描述(必需)
# 技能名称
简短描述这个技能是做什么的。
## 适用场景
描述在什么情况下应该使用这个技能。2. 使用方法
## 使用步骤
1. 第一步做什么2. 第二步做什么3. ...
## 参数说明
| 参数 | 说明 | 示例 ||------|------|------|| param1 | 参数说明 | 示例值 |3. 注意事项
## 注意事项
- 重要提示 1- 重要提示 2实战案例:创建天气技能
让我们创建一个简单的天气查询技能。
Step 1:创建目录
mkdir -p ~/.openclaw/workspace/skills/weathercd ~/.openclaw/workspace/skills/weatherStep 2:编写 SKILL.md
---description: 天气查询技能---
# 天气查询技能
获取当前天气和天气预报信息。
## 适用场景
当用户询问以下内容时激活:- "今天天气怎么样"- "明天会下雨吗"- "北京这周天气"- "查看天气"
## 使用步骤
1. 从用户消息中提取地点信息2. 如果没有地点,使用默认地点或询问用户3. 调用天气 API 获取数据4. 以用户友好的格式返回结果
## API 使用
使用 OpenClaw 内置的 weather 工具:weather <地点>
## 注意事项
- 地点名称应该是中文或拼音- 如果地点不明确,询问用户确认- 日期可以是"今天"、"明天"、"本周"等Step 3:测试技能
重启 OpenClaw Gateway 让技能生效:
openclaw gateway restart然后向 AI 提问:“今天北京天气怎么样”,AI 会自动加载这个技能并按照 SKILL.md 中的逻辑处理。
高级技能:带脚本的技能
有些技能需要执行外部脚本。OpenClaw 通过 exec 工具支持这一点。
示例:代码格式化技能
---description: 代码格式化技能---
# 代码格式化技能
自动格式化代码文件。
## 使用步骤
1. 读取代码文件2. 根据语言选择格式化工具3. 执行格式化命令4. 显示格式化结果
## 支持的语言和命令
| 语言 | 格式化命令 ||------|-----------|| JavaScript | `prettier --write <file>` || Python | `black <file>` || Go | `gofmt -w <file>` |
## 注意事项
- 格式化前建议先创建备份- 只格式化,不修改代码逻辑AI 会根据 SKILL.md 中的描述,使用 exec 工具执行相应的格式化命令。
技能激活机制
OpenClaw 如何知道应该加载哪个技能?
自动匹配
当用户发送消息时,OpenClaw 会扫描所有已安装技能的 SKILL.md,通过语义匹配找到最相关的技能。
匹配因素
- 技能的 description
- 适用场景中的关键词
- 技能名称
示例
用户消息:"帮我查一下上海明天的天气"
技能匹配过程:1. 扫描所有技能的 SKILL.md2. weather 技能的 description 包含"天气"3. 适用场景中提到"天气"、"明天"4. 匹配成功,加载 weather/SKILL.md技能开发最佳实践
1. 清晰的描述
description 应该简洁明了,准确反映技能用途:
---description: 天气查询技能---2. 具体的场景
适用场景应该列出具体的触发条件:
## 适用场景
当用户询问以下内容时激活:- "今天天气怎么样"- "明天会下雨吗"3. 分步骤说明
将复杂任务拆解为清晰的步骤:
## 使用步骤
1. 读取配置文件2. 解析参数3. 执行操作4. 返回结果4. 注意事项
列出容易出错的地方:
## 注意事项
- 必须先验证用户权限- 操作前创建备份- 失败时给出明确错误信息技能调试
查看已加载技能
检查 Gateway 日志,可以看到哪些技能被激活:
openclaw gateway logs测试技能
直接和 AI 对话测试:
你:帮我查天气AI:(应该加载 weather 技能)技能冲突
如果有多个技能匹配,OpenClaw 会选择最相关的一个。如果发现错误激活,调整 description 或适用场景,让匹配更精确。
发布到 ClawHub
ClawHub 是 OpenClaw 的技能商店,可以分享你的技能。
准备技能
确保你的技能包含:
SKILL.md(必需)README.md(推荐)- 示例和文档(推荐)
发布
clawhub publishClawHub 会引导你填写技能信息并发布。
技能元数据
发布时会填写以下信息:
- 技能名称
- 简短描述
- 详细说明
- 标签
- 作者信息
技能示例集
以下是一些实用技能的灵感:
1. Git 助手
---description: Git 版本控制助手---
# Git 助手
帮助执行常见的 Git 操作。
## 适用场景
- "提交代码"- "查看修改"- "创建分支"- "合并分支"
## 使用步骤
1. 检查 Git 状态2. 执行相应命令3. 显示结果2. 图片处理
---description: 图片格式转换和压缩---
# 图片处理
转换图片格式、压缩大小。
## 适用场景
- "把 PNG 转成 JPG"- "压缩这张图片"- "批量转换图片"
## 支持的格式
- PNG ↔ JPG- WebP 生成- 图片压缩3. 日志分析
---description: 应用日志分析---
# 日志分析
分析应用日志,提取关键信息。
## 适用场景
- "分析最近的错误"- "统计 API 调用次数"- "查找慢查询"
## 使用步骤
1. 读取日志文件2. 解析日志格式3. 统计和过滤4. 生成报告总结
OpenClaw 技能系统是扩展 AI 能力的强大工具。通过编写清晰的 SKILL.md,你可以让 AI 学会新的技能,处理更复杂的任务。
关键要点:
SKILL.md是核心,描述要清晰- 步骤要分拆,逻辑要清晰
- 注意事项要详尽,避免错误
- 测试很重要,确保技能正确激活
- 好的技能可以分享到 ClawHub
现在,想想你想让 AI 学会什么技能,开始编写吧!
辉哥说: 技能系统让 AI 可以不断学习。每个技能都是一个新的能力。🤖