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: 问题识别
先解决自己的问题,再开源:
- 你在重复做什么任务?
- 能否抽象成通用流程?
- 别人是否也有同样需求?
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 开发最佳实践
- 单一职责:一个 Skill 只做一件事,做好一件事
- 输入校验:明确参数类型,友好报错
- 错误处理:优雅降级,不要直接崩溃
- 幂等设计:重复执行不产生副作用
- 版本管理:语义化版本号(Semantic Versioning)
- 向后兼容:升级不破坏现有配置
社区贡献指南
加入 OpenClaw Skill 开发者社区:
- GitHub:提交 Issue 和 PR
- Discord:#skills-dev 频道讨论
- ClawHub:发布你的 Skill
- 文档:改进官方文档