Openclaw技能开发指导

举报
Alon 发表于 2026/03/19 16:40:22 2026/03/19
【摘要】 在 OpenClaw 的生态里,技能(skill)是让 AI 从“理解”到“执行”的关键一步。OpenClaw 的技能主要可以分为两类:一类是社区贡献的、拿来即用的现成技能;另一类则是你可以亲手打造,满足个性化需求的自定义技能。下面我们先从宏观上了解技能的分类,再重点深入自定义技能的开发。OpenClaw 的技能生态非常庞大,你可以把它们想象成一个“工具超市”,大致可以归为这几类 :内置基础...

在 OpenClaw 的生态里,技能(skill)是让 AI 从“理解”到“执行”的关键一步。OpenClaw 的技能主要可以分为两类:一类是社区贡献的、拿来即用的现成技能;另一类则是你可以亲手打造,满足个性化需求的自定义技能。

下面我们先从宏观上了解技能的分类,再重点深入自定义技能的开发。

OpenClaw 的技能生态非常庞大,你可以把它们想象成一个“工具超市”,大致可以归为这几类 :

  1. 内置基础技能:OpenClaw 本身就自带了一些“吃饭的家伙”,开箱即用。比如浏览器自动化(agent-browser) 可以帮你抓取网页数据,文件管理(file-manager) 能读写整理本地文件,系统命令(system-command) 则让你用自然语言执行服务器指令 。
  2. 社区热门技能:社区是 OpenClaw 的灵魂。这里有近3000个由开发者贡献的高质量技能,覆盖了从开发到生活的方方面面 。比如:
  • 开发辅助:coding-agent(代码生成)、github(仓库管理)、debug-pro(代码调试)。
  • 办公效率:gmail-manager(邮件处理)、nano-pdf(PDF编辑)、notion-manager(笔记管理)。
  • 生活服务:weather(天气查询)、qqbot-cron(定时提醒)、AnyList(购物清单管理)。

自定义技能:当现成的技能无法满足你的特定需求时,就需要进入下一个阶段——亲手为 AI 打造“专属工具” 。


一、如何开发 OpenClaw Skills

1. 基本结构

每个 Skill 是一个包含 SKILL.md 文件的目录,通常位于:

~/.openclaw/workspace/skills/(工作区技能,优先级最高)

~/.openclaw/skills/(托管/本地技能,共享给所有智能体)

捆绑技能(随 OpenClaw 安装)

2. SKILL.md 文件格式

---

name: skill_name # 技能名称(使用下划线或连字符)

description: 技能描述 # 简洁的功能描述

metadata: {"openclaw": {"requires": {"bins": ["curl"]}}} # 可选元数据

---

# 技能标题

这里是技能的具体使用说明和指导...

3. 技能开发步骤

步骤 1:创建技能目录

mkdir -p ~/.openclaw/workspace/skills/你的技能名称

步骤 2:编写 SKILL.md

包含:

YAML frontmatter:名称、描述、元数据

Markdown 内容:详细的使用说明、示例、最佳实践

工具说明:指导智能体如何使用现有工具(如 bash、browser、exec 等)

步骤 3:测试技能

重启 OpenClaw 或让智能体"刷新技能"

测试:openclaw agent --message "使用我的新技能"

4. 技能类型示例

简单工具技能(如 weather):

主要使用 exec 工具调用命令行工具

提供具体的命令示例和参数说明


API 集成技能(如 feishu-wiki):

使用现有的 API 工具(如 feishu_wiki、feishu_doc)

提供 API 调用示例和最佳实践


复杂集成技能:

可以包含自定义脚本或工具

可能需要额外的依赖安装

二、自定义技能开发示例:创建skillhub高分skills拉取技能

OpenClaw的核心优势在于其极简的技能开发体系——无需复杂的API对接,仅需“文件夹+SKILL.md描述文件”,AI即可自动理解并调用。以下以“skillhub高分skills拉取”技能为例,手把手教新手开发首个自定义技能,全程无需专业开发知识。

开发核心原理

OpenClaw的技能遵循Anthropic AgentSkills开放标准,核心是SKILL.md文件,AI通过阅读该文件即可掌握技能的使用方法。

步骤1:创建技能目录(华为云服务器端操作)

远程连接华为云openclaw服务器,执行命令创建技能专属目录:

# 进入技能根目录
cd /home/openclaw/.openclaw/workspace/skills/
# 创建skillhub高分skills拉取技能目录
mkdir skillhub-scraper
# 进入技能目录
cd skillhub-scraper

步骤2:编写核心SKILL.md文件(关键步骤)

SKILL.md是技能的“说明书”。使用Vim编辑器创建并编辑该文件,执行命令vim SKILL.md,按“i”进入编辑模式,粘贴以下内容:

---
name: skillhub-scraper
description: 访问 skillhub 官网,获取排名前20的skills信息并生成markdown报告。
metadata: {"openclaw": {"emoji": "📊", "requires": {"bins": ["curl", "jq", "pup", "skillhub"]}}
---

# SkillHub 爬取技能

这个技能用于访问 SkillHub 官网 (https://skillhub.tencent.com/#categories),获取排名前20的skills信息,并以markdown格式输出。

## 功能

1. 访问 SkillHub 官网
2. 解析网页内容获取skills信息
3. 按下载量排序,获取前20名
4. 生成包含链接、功能介绍、适用场景的markdown报告

## 方法

由于 SkillHub 是单页应用(SPA),数据通过JavaScript动态加载,有以下几种方法:

### 方法1:使用skillhub命令行工具(推荐)
```bash
#!/bin/bash

# 创建输出文件
output_file="skillhub_top20_$(date +%Y%m%d_%H%M%S).md"

echo "# SkillHub Top 20 Skills 报告" > "$output_file"
echo "" >> "$output_file"
echo "生成时间: $(date)" >> "$output_file"
echo "" >> "$output_file"

# 搜索热门技能关键词并获取结果
echo "## 通过skillhub命令搜索的热门技能" >> "$output_file"
echo "" >> "$output_file"
echo "| 技能名称 | 描述 | 版本 |" >> "$output_file"
echo "|----------|------|------|" >> "$output_file"

# 搜索常见技能关键词
keywords=("weather" "file" "system" "github" "notion" "obsidian" "summarize" "pdf" "api" "feishu" "google" "tmux" "health" "skill" "search" "discord")

for keyword in "${keywords[@]}"; do
  echo "搜索: $keyword"
  skillhub search "$keyword" 2>/dev/null | head -5 | while read -r line; do
    if [[ $line =~ ^([a-zA-Z0-9_-]+)\ +(.+)\ +- ]]; then
      skill_name="${BASH_REMATCH[1]}"
      skill_desc="${BASH_REMATCH[2]}"
      echo "| $skill_name | $skill_desc | 1.0.0 |" >> "$output_file"
    fi
  done
  sleep 1  # 避免请求过快
done

echo "" >> "$output_file"
echo "## 注意" >> "$output_file"
echo "以上是通过skillhub命令搜索的结果,不是SkillHub官网的实时排名。" >> "$output_file"
echo "SkillHub官网可能需要浏览器自动化才能获取完整的技能列表和下载量数据。" >> "$output_file"

echo "报告已保存到: $output_file"
cat "$output_file"
```

### 方法2:使用浏览器自动化(需要安装playwright)
```bash
#!/bin/bash

# 安装playwright(如果未安装)
# pip install playwright
# playwright install

# 创建Python脚本
cat > scrape_skillhub.py << 'EOF'
import asyncio
from playwright.async_api import async_playwright
import json

async def scrape_skillhub():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()
        
        print("正在访问 SkillHub 官网...")
        await page.goto('https://skillhub.tencent.com/#categories')
        
        # 等待页面加载完成
        await page.wait_for_timeout(5000)
        
        # 尝试提取技能数据
        # 注意:实际选择器需要根据SkillHub页面结构调整
        skills = await page.evaluate('''() => {
            const skills = [];
            // 这里需要根据实际页面结构编写JavaScript代码
            // 例如:document.querySelectorAll('.skill-item')
            const skillElements = document.querySelectorAll('[class*="skill"], [class*="card"]');
            
            skillElements.forEach(el => {
                const name = el.querySelector('.skill-name, .name')?.textContent || '未知';
                const desc = el.querySelector('.skill-desc, .description')?.textContent || '无描述';
                const downloads = el.querySelector('.downloads, .stats')?.textContent || '0';
                const link = el.querySelector('a')?.href || '#';
                
                skills.push({
                    name: name.trim(),
                    description: desc.trim(),
                    downloads: downloads.trim(),
                    link: link
                });
            });
            
            return skills.slice(0, 20);  # 只取前20个
        }''')
        
        await browser.close()
        return skills

if __name__ == "__main__":
    skills = asyncio.run(scrape_skillhub())
    
    # 生成markdown报告
    output = "# SkillHub Top 20 Skills 报告\n\n"
    output += "生成时间: 2026-03-19\n\n"
    output += "| 排名 | 技能名称 | 下载量 | 链接 | 功能介绍 |\n"
    output += "|------|----------|--------|------|----------|\n"

for i, skill in enumerate(skills, 1):
        output += f"| {i} | {skill['name']} | {skill['downloads']} | [{skill['name']}]({skill['link']}) | {skill['description']} |\n"

   print(output)

   # 保存到文件
    with open('skillhub_top20.md', 'w', encoding='utf-8') as f:
        f.write(output)

print("报告已保存到 skillhub_top20.md")
EOF

# 运行Python脚本
python3 scrape_skillhub.py
```

### 方法3:使用curl和HTML解析(简单但可能不完整)
```bash
#!/bin/bash

# 获取页面内容
curl -s "https://skillhub.tencent.com/#categories" > skillhub.html

# 尝试提取技能信息(需要根据实际HTML结构调整)
echo "尝试解析HTML内容..."
if command -v pup >/dev/null 2>&1; then
    # 使用pup解析HTML
    echo "使用pup解析..."
    cat skillhub.html | pup 'script' | grep -i skill | head -20
else
    echo "请安装pup: sudo apt-get install pup 或 brew install pup"
fi

# 创建模拟报告
create_mock_report() {
    output_file="skillhub_top20_mock_$(date +%Y%m%d_%H%M%S).md"

    cat > "$output_file" << 'EOF'
# SkillHub Top 20 Skills 报告(模拟数据)

生成时间: $(date)

## 说明
由于SkillHub官网是单页应用(SPA),数据通过JavaScript动态加载,
直接爬取较为困难。以下是基于常见AI技能分类的模拟数据。

## 排名前20的Skills

| 排名 | 技能名称 | 下载量 | 链接 | 功能介绍 | 适用场景 |
|------|----------|--------|------|----------|----------|
| 1 | weather | 5000+ | https://skillhub.tencent.com/skill/weather | 获取天气信息 | 需要查询天气时使用 |
| 2 | file-manager | 4500+ | https://skillhub.tencent.com/skill/file-manager | 文件管理工具 | 文件操作和管理 |
| 3 | system-info | 4200+ | https://skillhub.tencent.com/skill/system-info | 获取系统信息 | 系统监控和诊断 |
| 4 | github | 4000+ | https://skillhub.tencent.com/skill/github | GitHub操作 | GitHub项目管理和协作 |
| 5 | notion | 3800+ | https://skillhub.tencent.com/skill/notion | Notion API集成 | 知识管理和项目管理 |
| 6 | obsidian | 3500+ | https://skillhub.tencent.com/skill/obsidian | Obsidian笔记管理 | 个人知识管理 |
| 7 | summarize | 3300+ | https://skillhub.tencent.com/skill/summarize | 内容摘要工具 | 快速阅读和理解 |
| 8 | nano-pdf | 3100+ | https://skillhub.tencent.com/skill/nano-pdf | PDF编辑工具 | PDF文档处理 |
| 9 | api-gateway | 3000+ | https://skillhub.tencent.com/skill/api-gateway | API集成网关 | 多平台API集成 |
| 10 | feishu-doc | 2800+ | https://skillhub.tencent.com/skill/feishu-doc | 飞书文档操作 | 飞书文档自动化 |
| 11 | feishu-wiki | 2700+ | https://skillhub.tencent.com/skill/feishu-wiki | 飞书知识库管理 | 飞书知识库组织 |
| 12 | feishu-drive | 2600+ | https://skillhub.tencent.com/skill/feishu-drive | 飞书云存储管理 | 飞书文件管理 |
| 13 | gog | 2500+ | https://skillhub.tencent.com/skill/gog | Google Workspace CLI | Google Workspace自动化 |
| 14 | tmux | 2400+ | https://skillhub.tencent.com/skill/tmux | tmux远程控制 | 远程CLI操作 |
| 15 | healthcheck | 2300+ | https://skillhub.tencent.com/skill/healthcheck | 系统安全检查 | 主机安全审计 |
| 16 | skill-creator | 2200+ | https://skillhub.tencent.com/skill/skill-creator | 技能创建工具 | 技能开发和打包 |
| 17 | find-skills | 2100+ | https://skillhub.tencent.com/skill/find-skills | 技能发现工具 | 技能搜索和安装 |
| 18 | weather-api | 2000+ | https://skillhub.tencent.com/skill/weather-api | 天气API集成 | 专业天气服务 |
| 19 | tavily-search | 1900+ | https://skillhub.tencent.com/skill/tavily-search | 智能搜索集成 | 网络信息收集 |
| 20 | discord | 1800+ | https://skillhub.tencent.com/skill/discord | Discord操作 | Discord社区管理 |

## 实际获取建议
如需获取真实的SkillHub数据,建议:
1. 使用浏览器自动化工具(Playwright/Selenium)
2. 分析页面JavaScript请求
3. 查找API端点
4. 可能需要认证或特定请求头

EOF

    echo "模拟报告已保存到: $output_file"
}

create_mock_report
```

## 使用场景

**用户**: 获取SkillHub排名前20的skills
**助手**: 使用 skillhub-scraper 技能爬取数据并生成报告

**用户**: 分析热门skills趋势
**助手**: 获取技能数据并进行分析

**用户**: 发现新skills
**助手**: 浏览SkillHub上的热门skills

## 配置

### 安装依赖
```bash
# Ubuntu/Debian
sudo apt-get install curl jq pup

# macOS
brew install curl jq pup

# 安装playwright(用于浏览器自动化)
pip install playwright
playwright install
```

### 设置环境变量(可选)
```bash
export SKILLHUB_URL="https://skillhub.tencent.com/#categories"
export OUTPUT_DIR="./reports"
```

## 输出格式

生成的markdown文件包含:
1. 报告标题和生成时间
2. 技能排名表格
3. 技能详细信息
4. 数据来源说明
5. 获取方法建议

## 错误处理

```bash
# 检查网络连接
if ! curl -s --head https://skillhub.tencent.com > /dev/null; then
  echo "错误:无法连接到 SkillHub 官网"
  echo "请检查网络连接"
  exit 1
fi

# 检查依赖工具
for cmd in curl jq; do
  if ! command -v $cmd > /dev/null 2>&1; then
    echo "错误:$cmd 未安装"
    echo "请安装: sudo apt-get install $cmd"
    exit 1
  fi
done
```

## 注意事项

1. **网站结构变化**: SkillHub的页面结构可能变化,需要定期更新解析逻辑
2. **动态内容**: 单页应用需要JavaScript执行,建议使用浏览器自动化
3. **API限制**: 避免频繁请求,可能触发反爬虫机制
4. **数据准确性**: 模拟数据仅供参考,真实数据需要实际爬取
5. **合规性**: 遵守网站的使用条款和robots.txt

## 测试

```bash
# 测试网络连接
curl -s --head https://skillhub.tencent.com

# 测试skillhub命令
skillhub search "weather"

# 运行模拟报告
bash skillhub_scraper.sh
```

## 备用方案

如果无法自动爬取,可以:
1. 手动访问 https://skillhub.tencent.com/#categories
2. 使用浏览器开发者工具查看网络请求
3. 查找实际的API端点
4. 使用Postman或curl测试API

---

**提示**: SkillHub可能是腾讯内部的技能市场,实际访问可能需要权限或认证。建议先使用skillhub命令行工具获取技能信息。
编辑完成后,按“Esc”键,输入“:wq”保存并退出Vim编辑器。


步骤3:加载并激活自定义技能

执行命令让OpenClaw加载新创建的技能,并验证状态:

# 登录openclaw用户
su openclaw

# 加载skills
openclaw skills reload
# 重启openclaw网关服务
openclaw gateway restart # 验证技能状态 openclaw skills status --name "skillhub-scraper"

若输出skillhub-scaper: active (1.0.0),说明技能加载成功。

步骤4:实战测试自定义技能

登录channel(飞书)向OpenClaw发送自然语言指令,测试技能效果:

输入:
使用skillhub-scraper技能拉取内容

回复效果如下:
✅ skillhub-scraper技能执行成功!
我已经成功使用skillhub-scraper技能拉取了SkillHub的内容。以下是结果总结:
📊 技能发现报告
生成时间: 2026-03-19 14:30:52 CST
搜索关键词: 16个热门分类关键词
数据来源: skillhub CLI工具(cn-optimized registry)
🔍 发现的热门技能分类(每类前20名):
  1. 天气相关 (20个技能)
  • weather, maomao-weather, free-weather-api, weather-pollen, weathercli
  1. 文件管理 (20个技能)
  • file-batcher-tool, file-upload-to-local-workspace, file-manager-service, find
  1. 系统工具 (20个技能)
  • system-load-monitor, system-monitor-tool, system-resource-report
  1. GitHub集成 (20个技能)
  • github, github-gem-seeker, github-actions, github-integration
  1. Notion集成 (20个技能)
  • notion, notion-api-skill, notion-cli, notion-sync
  1. Obsidian (20个技能)
  • obsidian, obsidian-ontology-sync, obsidian-direct
  1. 文档总结 (20个技能)
  • summarize, summarizer, summarize-pro, youtube-summarizer
  1. PDF处理 (20个技能)
  • pdf-smart-tool-cn, pdftk-server, pdfreader, nano-pdf
  1. API集成 (20个技能)
  • apiary, api-sports, api2pdf, api-ninjas
  1. 飞书集成 (20个技能)
  • feishu-clawbot-card, feishu-doc-editor, feishu-post, feishu-voice
  1. Google集成 (20个技能)
  • google-sheets-reporting, google-business-optimizer, google-sheets-integration
  1. Tmux工具 (20个技能)
  • tmux, tmux-agents, tmux-remote-control, cursor-agent
  1. 健康管理 (20个技能)
  • healthcheck-ready, health-guide, healthsync, health-auto-log
  1. 技能管理 (20个技能)
  • mrp, skill-just-say, skill-validator, skills-5
  1. 搜索工具 (20个技能)
  • search-with-tavily, searcher-os, search-viewer, search-layer
  1. Discord集成 (20个技能)
  • discord, discord-voice, discord-chat, discord-hub
📈 技能分类统计
分类
技能数量
示例技能
天气相关
20+
weather, maomao-weather, weather-api
文件管理
20+
file-batcher-tool, nano-pdf, obsidian
系统工具
20+
system-load-monitor, tmux, healthcheck
文档处理
20+
feishu-doc, feishu-wiki, summarize
API集成
20+
api-gateway, weather-api, notion, github
📋 重要发现
  1. 技能总数: 搜索到了 320+ 个技能(16个分类 × 20个技能)
  1. 热门类别: 天气、文件管理、GitHub、Notion、Obsidian 是最热门的技能类别
  1. 技能多样性: 涵盖了从基础工具到复杂API集成的各种技能
  1. 中国优化: 很多技能都有中文描述和中文名称
⚠️ 限制说明
  1. 数据来源: 使用skillhub CLI工具而非SkillHub官网(官网是SPA应用,需要浏览器自动化)
  1. 排序方式: 按关键词搜索匹配度排序,非官方下载量排名
  1. 完整性: 可能不是完整的SkillHub技能列表
📁 输出文件
报告已保存到: skillhub_top20_20260319_143052.md
🎯 技能开发建议
基于搜索结果,我看到以下机会:
  1. 天气类技能 非常丰富(20+个),但仍有细分空间
  1. 文件管理系统工具 类技能需求旺盛
  1. API集成 类技能(GitHub、Notion、飞书等)很受欢迎
  1. 文档处理(PDF、总结、转换)是热门方向
你创建的 skillhub-scraper 技能工作正常!它成功地从skillhub registry中获取了大量技能信息。需要我帮你分析特定类型的技能,或者基于这些发现创建新的技能吗


进入openclaw服务器查看markdown报告skillhub_top20_report.md
# 进入workspace目录
cd /home/openclaw/.openclaw/workspace/
# 查看markdown文档

ls
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。