OpenClaw Skills 开发从入门到发布:手把手教你写第一个技能包
目录
OpenClaw 的技能(Skills)系统是其最强大的扩展机制。通过编写自定义 Skill,你可以让 OpenClaw 掌握任何领域的专业知识和操作能力。本文将带你从零开始,完成一个完整的 Skill 开发并发布到 ClawHub 的全过程。
一、Skills 是什么
Skill 本质上是一个包含以下内容的技能包:
- SKILL.md:核心指令文件,定义技能的行为、工作流和使用规范
- scripts/:辅助脚本目录(Python、Shell、Node.js 等)
- references/:参考文档(API 文档、数据集、模板等)
- assets/:静态资源文件
当用户激活一个 Skill 时,SKILL.md 的内容会注入到 OpenClaw 的上下文中,使 AI 具备该技能的专业能力。
二、开发环境准备
# 安装 ClawHub CLI 工具
npm install -g clawhub-cli
# 登录 ClawHub 账号
clawhub login
# 查看已安装的 Skills
clawhub list
# 创建新 Skill 项目
clawhub create my-awesome-skill
cd my-awesome-skill
创建后的目录结构:
my-awesome-skill/
├── SKILL.md # 必需:技能核心指令
├── skill.json # 必需:技能元数据
├── scripts/ # 可选:辅助脚本
│ └── main.py
├── references/ # 可选:参考文档
│ └── api_docs.md
└── README.md # 可选:使用说明
三、编写 SKILL.md
SKILL.md 是 Skill 的灵魂,决定了 OpenClaw 在激活技能后的行为。
基本结构模板
# [技能名称]
## 技能简介
[一句话描述这个技能做什么]
## 适用场景
[列举3-5个典型使用场景]
## 工作流程(SOP)
[定义标准操作流程,步骤要明确具体]
## 可用工具与脚本
[如果有辅助脚本,在这里说明如何使用]
## 输出规范
[定义输出格式、质量标准等]
## 注意事项
[安全警告、使用限制等]
实战示例:SQL 查询优化 Skill
# SQL 查询优化专家
## 技能简介
分析 SQL 查询语句,识别性能瓶颈,提供优化建议和重写方案。
## 适用场景
- 慢查询诊断与优化
- 索引策略分析与建议
- 查询计划(EXPLAIN)解读
- 大表分页查询优化
- 复杂 JOIN 查询改写
## 工作流程
### 当用户提供 SQL 进行优化时:
1. **解析查询结构**:识别 SELECT、JOIN、WHERE、GROUP BY、ORDER BY 子句
2. **识别潜在问题**:
- 全表扫描(无索引条件)
- N+1 查询模式
- SELECT * 滥用
- 大 OFFSET 分页
- 函数导致索引失效
3. **评估影响范围**:根据表规模估算查询时间
4. **提供优化方案**:给出重写后的 SQL 和索引建议
5. **解释优化原理**:说明每个优化点的原因
### 输出格式:
```
## 原始 SQL 分析
[问题列表]
## 优化建议
[具体改进措施]
## 优化后 SQL
[重写的查询语句]
## 建议添加的索引
[CREATE INDEX 语句]
## 预期性能提升
[估算的改善幅度]
```
## 注意事项
- 优化建议基于通用原则,实际效果需要通过 EXPLAIN 验证
- 索引过多会影响写入性能,请根据读写比例权衡
- 复杂优化请在测试环境验证后再应用到生产
四、添加辅助脚本
对于需要实际执行操作的 Skill,可以在 scripts/ 目录添加脚本:
# scripts/analyze_query.py
#!/usr/bin/env python3
"""
SQL 查询分析工具
用法: python analyze_query.py "SELECT * FROM users WHERE ..."
"""
import sys
import re
def analyze_sql(sql):
issues = []
suggestions = []
# 检测 SELECT *
if re.search(r'SELECTs+*', sql, re.IGNORECASE):
issues.append("⚠️ 使用了 SELECT *,建议明确指定列名")
suggestions.append("将 SELECT * 改为 SELECT 具体需要的列")
# 检测大 OFFSET 分页
offset_match = re.search(r'OFFSETs+(d+)', sql, re.IGNORECASE)
if offset_match and int(offset_match.group(1)) > 10000:
issues.append(f"⚠️ OFFSET={offset_match.group(1)} 过大,深翻页性能差")
suggestions.append("改用游标分页:WHERE id > last_id LIMIT 20")
# 检测 LIKE 前缀通配符
if re.search(r"LIKEs+'%", sql, re.IGNORECASE):
issues.append("⚠️ LIKE '%xxx' 前缀通配符无法使用索引")
suggestions.append("考虑全文搜索或改用前缀匹配 LIKE 'xxx%'")
return {
'issues': issues,
'suggestions': suggestions,
'issue_count': len(issues)
}
if __name__ == '__main__':
sql = ' '.join(sys.argv[1:]) if len(sys.argv) > 1 else input("请输入 SQL: ")
result = analyze_sql(sql)
print(f"n发现 {result['issue_count']} 个潜在问题:")
for issue in result['issues']:
print(f" {issue}")
if result['suggestions']:
print("n优化建议:")
for i, s in enumerate(result['suggestions'], 1):
print(f" {i}. {s}")
五、编写 skill.json 元数据
{
"name": "sql-optimizer",
"version": "1.0.0",
"displayName": "SQL 查询优化专家",
"description": "分析 SQL 慢查询,提供索引优化和查询重写方案",
"author": "your-username",
"license": "MIT",
"tags": ["SQL", "数据库", "性能优化", "MySQL", "PostgreSQL"],
"category": "development",
"minOpenClawVersion": "0.8.0",
"scripts": [
{
"name": "analyze_query.py",
"description": "SQL 查询问题自动分析工具",
"runtime": "python3"
}
],
"triggers": [
"优化SQL",
"SQL太慢",
"查询优化",
"慢查询"
]
}
六、本地测试 Skill
# 在 OpenClaw 中本地加载测试
clawhub dev --skill ./my-awesome-skill
# 在当前目录作为 Skill 使用
# OpenClaw 会读取 SKILL.md 并激活技能
# 运行单元测试
clawhub test
七、发布到 ClawHub
# 验证 Skill 格式
clawhub validate
# 发布
clawhub publish
# 发布特定版本
clawhub publish --version 1.2.0
发布后,你的 Skill 将出现在 ClawHub 市场,全球用户都可以搜索和安装。
八、优质 Skill 的设计原则
- 单一职责:一个 Skill 专注解决一类问题,不要做成大而全的”万能包”
- 流程清晰:SOP 步骤要具体可执行,避免模糊的”分析一下”
- 输出规范:明确定义输出格式,让用户知道会得到什么
- 安全第一:涉及文件操作、网络请求的 Skill 必须说明权限范围
- 示例丰富:README 中提供真实的使用示例,降低上手门槛
九、热门 Skill 类型参考
- 领域专家类:法律条文解读、医疗文献分析、会计凭证处理
- 开发工具类:代码审查、单元测试生成、API 文档编写
- 内容创作类:营销文案、技术博客、SEO 优化
- 数据处理类:Excel 分析、SQL 优化、数据清洗
- 自动化类:浏览器操作、文件批处理、API 集成
十、总结
开发一个高质量的 OpenClaw Skill 的核心在于:深刻理解目标领域的专业知识,并将这些知识转化为清晰的 AI 指令和标准操作流程。ClawHub 上已有超过 21000 个 Skill,但仍有大量垂直领域等待开发者探索。动手写你的第一个 Skill 吧——说不定下一个爆款就是你的作品。
相关阅读:
- ClawHub:AI技能的App Store,你的龙虾能做什么取决于你装了什么
- ClawHub 深度测评:21000 个技能,哪些真的值得装?
- 普通人的OpenClaw使用指南:从第一条指令到第一个自动化流水线