行业动态

OpenClaw Skills 开发从入门到发布:手把手教你写第一个技能包

· 约 16 分钟阅读

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 的设计原则

  1. 单一职责:一个 Skill 专注解决一类问题,不要做成大而全的”万能包”
  2. 流程清晰:SOP 步骤要具体可执行,避免模糊的”分析一下”
  3. 输出规范:明确定义输出格式,让用户知道会得到什么
  4. 安全第一:涉及文件操作、网络请求的 Skill 必须说明权限范围
  5. 示例丰富:README 中提供真实的使用示例,降低上手门槛

九、热门 Skill 类型参考

  • 领域专家类:法律条文解读、医疗文献分析、会计凭证处理
  • 开发工具类:代码审查、单元测试生成、API 文档编写
  • 内容创作类:营销文案、技术博客、SEO 优化
  • 数据处理类:Excel 分析、SQL 优化、数据清洗
  • 自动化类:浏览器操作、文件批处理、API 集成

十、总结

开发一个高质量的 OpenClaw Skill 的核心在于:深刻理解目标领域的专业知识,并将这些知识转化为清晰的 AI 指令和标准操作流程。ClawHub 上已有超过 21000 个 Skill,但仍有大量垂直领域等待开发者探索。动手写你的第一个 Skill 吧——说不定下一个爆款就是你的作品。


相关阅读:

📚 相关文章

分享到: QQ 微博