OpenClaw Skills 分享与分发:构建你的 Agent 工具生态

世界上有一种技术叫 Skill,它就像乐高积木——你自己搭一个,别人拿过去也能用。你解决了一个问题,把它打包成 Skill,全世界有同样问题的人都能受益。这是开源精神,也是 Agent 时代的编程方式。

什么是 OpenClaw Skill?

Skill 是可复用的 Agent 能力包,包含:

  • 指令定义:描述 Skill 能做什么
  • 工具配置:所需的工具和能力
  • 示例代码:使用示例和最佳实践
  • 知识文档:领域知识、API 文档、使用说明

如果说工具(Tools)是 Agent 的手脚,Skill 就是 Agent 的大脑训练手册。

Skill 类型

1. 原生工具 Skill

基于 OpenClaw 内置工具的 Skill:

# web-search-skill
类型:原生工具组合
工具:web_search + web_fetch
用途:搜索并抓取网页内容
示例:AI 新闻采集、竞品监控

2. API 集成 Skill

封装外部 API 的 Skill:

# telegram-bot-skill  
类型:API 封装
工具:message.send (channel=telegram)
用途:Telegram 机器人自动化
示例:消息推送、命令响应

3. MCP Server Skill

基于 Model Context Protocol 的 Skill:

# database-query-skill
类型:MCP Server
协议:Model Context Protocol
用途:数据库查询和操作
示例:SQL 生成、数据分析

4. 复合工作流 Skill

组合多个能力的复杂 Skill:

# seo-content-pipeline
类型:复合工作流
组成:搜索 + 抓取 + 生成 + 发布 + 通知
用途:自动化 SEO 内容生产
示例:批量生成教程页面、更新 sitemap

Skill 目录结构

my-skill/
├── SKILL.md              # Skill 说明文档(必需)
├── skill.yaml            # Skill 配置(必需)
├── examples/             # 使用示例
│   ├── basic.md
│   └── advanced.md
├── knowledge/            # 知识文档
│   ├── api-reference.md
│   └── best-practices.md
├── prompts/              # 提示词模板
│   ├── system.txt
│   └── examples.txt
└── tests/                # 测试用例
    └── test-cases.yaml

skill.yaml 配置详解

# skill.yaml 完整示例
name: ai-news-aggregator
version: 1.0.0
description: AI 新闻自动采集和生成系统
author: miaoquai
category: content-automation
tags: [rss, news, automation, seo]

# 依赖的工具
tools:
  required:
    - web_search
    - web_fetch
    - write
    - message.send
  optional:
    - browser
    - cron

# Skill 能力定义
skills:
  - name: fetch-rss
    description: 从 RSS 源采集最新文章
    inputs:
      - rss_url: string
      - max_items: number (default: 10)
    outputs:
      - articles: array
      
  - name: generate-daily-report
    description: 生成新闻日报
    inputs:
      - articles: array
      - style: enum ["formal", "humorous"]
    outputs:
      - html_content: string
      - summary: string

# 使用示例
examples:
  - title: "基础使用"
    code: |
      skill "ai-news-aggregator" {
        fetch_rss(url: "https://openai.com/blog/rss.xml")
        generate_daily_report(style: "humorous")
      }
      
  - title: "定时自动化"
    code: |
      cron.schedule("0 8 * * *") {
        skill "ai-news-aggregator" {
          // 自动执行完整流程
        }
      }

Skill 开发流程

Step 1: 问题识别

先解决自己的问题,再开源:

  1. 你在重复做什么任务?
  2. 能否抽象成通用流程?
  3. 别人是否也有同样需求?

Step 2: 原型开发

在自己项目中验证可行性:

# 原型验证步骤
1. 手动执行完整流程,记录步骤
2. 抽象出输入、输出、中间过程
3. 在 OpenClaw 中实现自动化
4. 测试不同输入场景
5. 优化错误处理和边界情况

Step 3: 文档编写

好的文档决定 Skill 的采用率:

SKILL.md 必须包含:
- 快速开始(5 分钟上手)
- 完整使用示例
- 配置参数说明
- 常见问题和解决方案
- 作者和贡献方式

Step 4: 打包发布

# 发布到 ClawHub
curl -X POST https://clawhub.ai/api/publish \
  -H "Authorization: Bearer $CLAWHUB_TOKEN" \
  -F "file=@my-skill.zip" \
  -F "name=my-skill" \
  -F "version=1.0.0"

ClawHub 生态

ClawHub 是 OpenClaw 的官方 Skill 市场:

  • 发现:浏览社区贡献的 Skills
  • 安装:一键安装到本地 Agent
  • 评分:用户评分帮助筛选优质 Skill
  • 更新:自动检测和更新 Skill 版本
# 从 ClawHub 安装 Skill
openclaw skill install miaoquai/ai-news-aggregator

# 安装特定版本
openclaw skill install miaoquai/ai-news-aggregator@1.2.0

# 查看已安装 Skills
openclaw skill list

# 更新所有 Skills
openclaw skill update --all

本地 Skill 分享

不需要发布到 ClawHub,也可以本地共享:

# 方式 1:Git 子模块
git submodule add https://github.com/your/skill.git skills/my-skill

# 方式 2:符号链接
ln -s /path/to/shared/skills/my-skill ~/.openclaw/skills/my-skill

# 方式 3:配置文件引用
# ~/.openclaw/config.yaml
skill_sources:
  - path: /shared/team-skills
  - path: https://github.com/company/skills-repo

Skill 开发最佳实践

  1. 单一职责:一个 Skill 只做一件事,做好一件事
  2. 输入校验:明确参数类型,友好报错
  3. 错误处理:优雅降级,不要直接崩溃
  4. 幂等设计:重复执行不产生副作用
  5. 版本管理:语义化版本号(Semantic Versioning)
  6. 向后兼容:升级不破坏现有配置

社区贡献指南

加入 OpenClaw Skill 开发者社区:

  • GitHub:提交 Issue 和 PR
  • Discord:#skills-dev 频道讨论
  • ClawHub:发布你的 Skill
  • 文档:改进官方文档