引言:AI的「外挂大脑」
OpenClaw 的强大之处不仅在于它能连接各种工具和服务,更在于其高度可扩展的 Skills(技能)系统。如果说 AI 模型是大脑,那么 Skills 就是为这个大脑安装的「外挂模块」——每个技能都教会 AI 如何完成特定的任务。
本文将详细介绍如何在 OpenClaw 上创建自定义 Skills,从基础概念到实战开发,带你掌握这一强大功能。
什么是 OpenClaw Skill?
一个 Skill 本质上是一个包含以下内容的目录:
1 | weather-checker/ |
技能的核心:SKILL.md
SKILL.md 文件由两部分组成:
- YAML Frontmatter(元数据):定义技能的基本信息和配置
- Markdown 指令:教导 AI 如何使用该技能
技能结构深度解析
1. 基础元数据(必需)
1 |
|
name:技能的唯一标识符(小写,使用连字符)description:简短描述,AI 会根据这个描述决定何时使用该技能
2. 高级元数据(可选)
1 | metadata: |
条件过滤(Gating):OpenClaw 在加载技能时会检查这些条件,只有满足所有条件时,技能才会被激活。
3. 技能指令部分
在元数据之后,使用 Markdown 格式编写技能指令:
1 | # 天气检查技能 |
参数说明
format=3: 简洁的单行格式lang=zh: 使用中文显示
1 |
|
步骤 2:编写 SKILL.md
创建 skills/weather-checker/SKILL.md:
1 |
|
高级用法
1 | # 使用脚本获取天气 |
可用参数
?format=3: 单行简洁格式?lang=zh: 中文界面?2: 显示未来2天预报?u: 使用英制单位
1 |
|
设置执行权限:
1 | chmod +x skills/weather-checker/scripts/get_weather.sh |
步骤 4:测试技能
重启 OpenClaw Gateway 或刷新技能:
1 | # 重启 Gateway |
现在你可以问 AI:「台北天气怎么样?」AI 会自动使用 weather-checker 技能来回答。
高级功能详解
1. 环境变量注入
在技能配置中注入环境变量:
1 | // ~/.openclaw/openclaw.json |
2. API Key 管理
对于需要 API 密钥的技能:
1 | metadata: |
然后在配置中提供密钥:
1 | { |
3. 操作系统限制
限制技能只能在特定平台运行:
1 | metadata: |
4. 技能优先级控制
1 |
|
技能存放位置与优先级
OpenClaw 从三个位置加载技能,优先级从高到低:
Workspace Skills (
~/.openclaw/workspace/skills/)- 最高优先级
- 适合项目特定的技能
Managed Skills (
~/.openclaw/skills/)- 系统级共享技能
- 所有 agent 都可使用
Bundled Skills (OpenClaw 内置)
- 最低优先级
- 系统预装技能
名称冲突时:Workspace 的技能会覆盖其他位置的同名技能。
使用 ClawHub 共享技能
ClawHub 是 OpenClaw 的官方技能市场(https://clawhub.com)。
发布技能到 ClawHub
- 确保技能目录结构正确
- 添加完整的文档
- 使用
clawhubCLI 发布:
1 | # 登录 ClawHub |
从 ClawHub 安装技能
1 | # 搜索技能 |
最佳实践与安全建议
🛡️ 安全第一
- 谨慎使用 exec 工具:避免执行未经验证的用户输入
- 沙箱环境:对于高风险操作,使用沙箱环境
- 权限最小化:只授予必要的文件系统权限
- 输入验证:始终验证用户提供的参数
📝 编写高质量技能
- 清晰的描述:让 AI 准确理解何时使用该技能
- 完整的示例:提供多种使用场景的示例
- 错误处理:说明可能出现的错误和解决方法
- 依赖声明:在 metadata 中明确声明所有依赖
🔧 调试技巧
1 | # 查看已加载的技能 |
实战案例:创建高级技能
案例:GitHub 项目管理技能
1 |
|
自动化工作流
1 | # 自动 rebase 并合并 |
技能生命周期管理
版本控制
1 |
|
向后兼容性
- 保持 API 稳定
- 使用版本号区分重大变更
- 提供迁移指南
总结:成为 OpenClaw 技能大师
通过本文,你已经掌握了:
- 技能基础:理解 SKILL.md 的结构和组成
- 实战开发:创建完整的 weather-checker 技能
- 高级特性:使用 metadata 进行条件过滤和配置
- 技能管理:理解存放位置、优先级和 ClawHub
- 最佳实践:编写安全、高效的技能
下一步学习方向
- 集成外部 API:创建调用 REST API 的技能
- 文件处理技能:处理 PDF、图片、视频等文件
- 数据库技能:连接和操作数据库
- 自动化工作流:创建多步骤自动化技能
资源推荐
- 官方文档:
/opt/homebrew/lib/node_modules/openclaw/docs/tools/creating-skills.md - ClawHub 市场:https://clawhub.com
- 社区 Discord:https://discord.com/invite/clawd
附录:完整示例技能
你可以在以下位置找到本文创建的完整示例:
~/.openclaw/workspace/skills/weather-checker/- 或从 GitHub 获取:[示例仓库链接]
开始创造吧! 每个你创建的技能都是对 AI 能力的扩展,也是对你工作流程的优化。
有问题或想要分享你的技能?欢迎在评论区交流!