乐于分享
好东西不私藏

OpenClaw 技能实战 07:从零开发一个技能,发布到 ClawHub

OpenClaw 技能实战 07:从零开发一个技能,发布到 ClawHub

摘要:用了很久 OpenClaw,只会调现成技能?其实你也可以开发自己的技能,发布到 ClawHub 让成千上人用。本文从项目结构、核心逻辑到发布流程,手把手教你完成第一个技能开发。


前 6 篇实战,讲的都「怎么用技能」:

01:公众号自动发布
02:30 分钟搞定行业研究报告
03:Obsidian CLI 打造第二大脑
04:自动化工作流
05:竞品分析报告
06:个人效率管理

今天这篇,换个角度:教你自己创造技能

很多人以为技能开发很难,要懂架构、会写框架、得是全栈工程师。

其实不是。

ClawHub 上 200+ 技能,很多都是普通用户写的:

有个会计写了「发票识别 + 报销单生成」技能
有个HR写了「简历筛选 + 面试邀约」技能
有个大学生写了「课表提醒 + 作业 Deadline 监控」技能

他们不是技术大牛,只是把自己的需求变成了产品

你也可以。

一、什么是 OpenClaw 技能?

先统一概念。

OpenClaw 技能,本质上是一个标准化的自动化脚本包,包含:

SKILL.md:技能的说明书(这是什么、怎么用)
脚本/代码:实际执行逻辑(Python、Node.js、Shell 都行)
配置文件:API 密钥、参数默认值
依赖说明:需要装哪些包

标准结构:

my-skill/├─ SKILL.md              # 必填├─ script.py             # 你的核心逻辑├─ config.yaml           # 可选├─ requirements.txt      # 可选└─ output/               # 可选

ClawHub 的作用,就是让你把这些文件打包,上传到市场。别人一行命令就能安装:

clawhub install daily-hot-summary

安装后,技能自动集成到 OpenClaw,用户可以通过自然语言调用:

「帮我抓一下今天的热点」

就这么简单。

二、开发前,想清楚 3 个问题

别上来就写代码。

问题 1:这个技能解决什么痛点?

问自己:谁会用?在什么场景?解决什么问题?

反例:「我要做一个 AI 工具」——这是自嗨。

正例:

自媒体博主 → 每天追热点写稿 → 痛点:找热点、查资料、写稿、排版,一天就过去了 → 技能:热点抓取 + 自动写作 + 排版推送
科研人员 → 每周读几十篇论文 → 痛点:下载 PDF、读摘要、做笔记太费时间 → 技能:批量下载 + 摘要提取 + 笔记生成
运营人员 → 每周写数据周报 → 痛点:手动拉数据、做图表、写文案,3 小时 → 技能:自动拉数据 + 生成图表 + 写周报文案,10 分钟

好的技能,始于一个具体的、高频的、愿意付费的痛点。

我建议你从自己的工作流里找。

你每天重复做 3 次以上的事,就值得自动化。

问题 2:现有技能能不能解决?

动手前,先去 ClawHub 搜一下:

clawhub search 关键词

也许已经有人写了。如果是这样:

1
直接用:既然别人做好了,何必重复造轮子
2
做差异化:现有技能哪点不够好?你能改进什么?

最聪明的做法:站在现有技能上做增强

比如有人写了「天气查询」技能,只能查当天。另一个人做了「天气 + 穿衣建议」技能,多了生活指导,直接差异化。

问题 3:你的技能「边界」在哪?

新手容易犯的错:想把技能做成万能工具

「我这个技能既能写文章,又能画图,还能做数据分析……」

停。

技能越小越专注,越容易成功。

参考标准:

单一职责:一个技能只做一件事
清晰输入:用户需要什么参数?(URL、文件、关键词)
清晰输出:技能返回什么?(文章、图片、数据报告)

比如 wewrite 技能,边界非常清楚:

输入:一个主题/热点
输出:一篇符合公众号格式的 Markdown 文章

就这样,简单明了。

三、手把手:开发你的第一个技能

理论够了,直接实战。

假设我们要开发一个**「每日热点汇总」技能**:

自动抓取微博、百度、知乎的热搜榜
汇总成一份 Markdown 报告
保存到本地,可选推送到微信

下面分 6 步完成。

步骤 1:创建技能目录

在你的 OpenClaw 工作区,新建文件夹:

cd C:\Users\admin\.openclaw\workspace\skillsmkdir daily-hot-summarycd daily-hot-summary

目录结构先搭好:

daily-hot-summary/├─ SKILL.md├─ hot_spider.py├─ config.yaml└─ requirements.txt

步骤 2:编写核心脚本

hot_spider.py —— 技能的「大脑」。

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""每日热点汇总脚本功能:抓取微博、百度、知乎热搜榜,生成 Markdown 报告"""import requestsfrom datetime import datetimeimport yamlimport osdef load_config():    """读取配置文件"""    config_path = os.path.join(os.path.dirname(__file__), 'config.yaml')    with open(config_path, 'r', encoding='utf-8') as f:        return yaml.safe_load(f)def fetch_weibo_hot():    """抓取微博热搜榜"""    try:        url = "https://weibo.com/ajax/side/hotSearch"        resp = requests.get(url, timeout=10)        data = resp.json()        hot_list = []        for item in data.get('data', {}).get('realtime', [])[:20]:            hot_list.append({                'title': item.get('note', ''),                'url': f"https://s.weibo.com/weibo?q={item.get('note', '')}",                'hot_value': item.get('num', 0)            })        return hot_list    except Exception as e:        print(f"微博热搜抓取失败:{e}")        return []def fetch_baidu_hot():    """抓取百度热搜榜"""    try:        url = "https://top.baidu.com/board?tab=realtime"        resp = requests.get(url, timeout=10)        # 简化处理,实际可用 BeautifulSoup 解析 HTML        return []    except Exception as e:        print(f"百度热搜抓取失败:{e}")        return []def fetch_zhihu_hot():    """抓取知乎热榜"""    try:        url = "https://www.zhihu.com/api/v3/feed/topstory/hot-lists/total?limit=20"        resp = requests.get(url, timeout=10)        data = resp.json()        hot_list = []        for item in data.get('data', [])[:20]:            target = item.get('target', {})            hot_list.append({                'title': target.get('title', ''),                'url': target.get('url', '').replace('api.', ''),                'hot_value': item.get('children', [{}])[0].get('vote_count', 0)            })        return hot_list    except Exception as e:        print(f"知乎热榜抓取失败:{e}")        return []def generate_report(weibo_hot, baidu_hot, zhihu_hot):    """生成 Markdown 报告"""    today = datetime.now().strftime('%Y-%m-%d')    md_content = f"""# 每日热点汇总 | {today}> 数据来源:微博热搜、百度热搜、知乎热榜  > 生成时间:{datetime.now().strftime('%H:%M')}---## 🔥 微博热搜 TOP 20| 排名 | 热点 | 热度 ||------|------|------|"""    for i, item in enumerate(weibo_hot, 1):        md_content += f"| {i} | [{item['title']}]({item['url']}) | {item['hot_value']:,} |\n"    md_content += "\n## 📈 百度热搜 TOP 20\n\n"    md_content += "| 排名 | 热点 | 热度 |\n|------|------|------|\n"    for i, item in enumerate(baidu_hot, 1):        md_content += f"| {i} | [{item['title']}]({item['url']}) | {item['hot_value']:,} |\n"    md_content += "\n## 💬 知乎热榜 TOP 20\n\n"    md_content += "| 排名 | 热点 | 热度 |\n|------|------|------|\n"    for i, item in enumerate(zhihu_hot, 1):        md_content += f"| {i} | [{item['title']}]({item['url']}) | {item['hot_value']:,} |\n"    md_content += "\n---\n\n**生成自:OpenClaw 每日热点汇总技能**\n"    return md_contentdef main():    config = load_config()    print("🚀 开始抓取热点数据...")    weibo_hot = fetch_weibo_hot()    print(f"✓ 微博热搜:{len(weibo_hot)} 条")    baidu_hot = fetch_baidu_hot()    print(f"✓ 百度热搜:{len(baidu_hot)} 条")    zhihu_hot = fetch_zhihu_hot()    print(f"✓ 知乎热榜:{len(zhihu_hot)} 条")    print("📝 生成热点报告...")    report = generate_report(weibo_hot, baidu_hot, zhihu_hot)    # 保存报告    output_dir = config.get('output_dir', './output')    os.makedirs(output_dir, exist_ok=True)    today = datetime.now().strftime('%Y-%m-%d')    output_path = os.path.join(output_dir, f'{today}-hot-summary.md')    with open(output_path, 'w', encoding='utf-8') as f:        f.write(report)    print(f"✅ 报告已保存:{output_path}")if __name__ == '__main__':    main()

代码不复杂,核心就 4 步:

1
爬数据:调用各平台 API 抓取热搜
2
清洗数据:统一格式(标题、链接、热度)
3
生成报告:组装成 Markdown 表格
4
保存/推送:存本地,可选推送到微信

步骤 3:编写配置文件

config.yaml —— 技能的「设置项」。

# 每日热点汇总技能配置# 输出目录output_dir: "./output"# 是否推送到微信草稿箱(需先配置 wewrite 的 wechat 信息)wechat_push: false# 抓取平台开关platforms:  weibo: true  baidu: true  zhihu: true

用户安装后,可以按需修改这些配置。

步骤 4:编写依赖说明

requirements.txt —— 告诉用户需要装哪些 Python 包。

requests>=2.28.0pyyaml>=6.0

就两个基础包,几乎不会踩坑。

步骤 5:编写技能说明书(SKILL.md)

这是最重要的文件。

ClawHub 审核、用户安装前查看的,都是这个文件。

# daily-hot-summary 技能## 功能描述自动抓取微博、百度、知乎的热搜榜,生成每日热点汇总报告(Markdown 格式)。**适合人群:**- 自媒体博主(追热点写稿)- 内容运营(选题参考)- 市场/公关人员(舆情监控)## 安装方式```bashclawhub install daily-hot-summary

使用方式

方式一:命令行执行

cd skills/daily-hot-summarypython3 hot_spider.py

方式二:通过 OpenClaw 自然语言调用

「帮我抓一下今天的热点」

OpenClaw 会自动调用本技能,生成热点报告。

配置说明

编辑 config.yaml

output_dir:报告保存路径(默认 ./output
wechat_push:是否推送到微信草稿箱
platforms:启用的平台(weibo/baidu/zhihu)

版本历史

v1.0.0 (2026-04-22): 首发版本

作者

作者:你的名字
微信:你的联系方式(可选)

许可证

MIT License

**SKILL.md 的关键点:**1. **一句话说清功能**:别绕弯子2. **安装/使用步骤要具体**:给命令,别只说「运行脚本」3. **配置项解释明白**:每个参数干嘛的,默认值是啥4. **输出示例**:让用户知道会得到什么5. **常见问题**:提前回答,减少售后6. **联系方式**:方便用户反馈### 步骤 6:本地测试在发布前,先本地跑一遍:```bashcd C:\Users\admin\.openclaw\workspace\skills\daily-hot-summarypython3 hot_spider.py

检查:

✅ 报告是否正常生成
✅ 格式是否正确
✅ 有没有报错
✅ 输出内容是否符合预期

没问题了,再发布。

四、发布到 ClawHub

测试通过后,就可以发布了。

发布前检查清单

SKILL.md 已编写完整
核心脚本无敏感信息(API 密钥、密码等不要上传)
requirements.txt 列出所有依赖
本地测试通过
代码有基本注释

发布命令

# 进入技能目录cd C:\Users\admin\.openclaw\workspace\skills\daily-hot-summary# 发布到 ClawHubclawhub publish

第一次发布会提示你登录 ClawHub(用 GitHub 账号)。

登录后,CLI 会:

1
读取 SKILL.md 里的技能信息
2
打包整个目录
3
上传到 ClawHub 服务器
4
返回一个技能页面链接

发布成功!

你的技能现在可以被任何人安装了:

clawhub install daily-hot-summary

版本号管理

每次更新技能后,记得更新版本号:

1
修改 SKILL.md 里的「版本历史」
2
执行 clawhub publish --version 1.1.0

ClawHub 会保留历史版本,用户可以回退。

五、进阶:让技能更「智能」

上面的例子是基础版。想让技能更有竞争力?可以加这些能力:

1. 增加 AI 分析

不只是抓热点,还能用 LLM 分析:

这个热点适合写什么角度?
和你的领域结合点在哪?
推荐 3 个选题方向
def analyze_with_llm(hot_list, user_domain):    """用 LLM 分析热点,给出选题建议"""    prompt = f"""你是资深内容运营。以下是今日热点列表:{hot_list}用户专注领域:{user_domain}请给出:1. 最值得追的 3 个热点(说明理由)2. 每个热点的 2 个选题角度3. 需要注意的风险点"""    # 调用 LLM API    response = llm.chat(prompt)    return response.content

2. 增加定时任务

用 OpenClaw 的 cron 功能,每天自动执行:

# 添加定时任务(每天早上 8 点执行)openclaw cron add --schedule "0 8 * * *" --command "python3 hot_spider.py"

这样你每天醒来,热点报告已经躺在输出目录了。

3. 增加多平台推送

不只是微信,还可以推送到:

钉钉群机器人
飞书群机器人
Slack Channel
邮件列表

每个平台就多加一个推送函数,配置里加个开关就行。

六、技能开发的 5 条建议

最后,分享几个 ClawHub 上的「成功学」。

建议 1:文档比代码重要

我见过太多技能,代码写得牛,但 SKILL.md 就几行字:

「这是一个 XX 技能,运行 xx.py 就行。」

用户一看,懵了:这啥?咋用?配啥?

好的文档,能让 60 分的代码用到 90 分。

花 40% 时间写代码,60% 时间写文档。值得。

建议 2:起名要「望文生义」

技能名直接告诉用户功能:

✅ daily-hot-summary:每日热点汇总

✅ pdf-to-markdown:PDF 转 Markdown

✅ wechat-article-auto-publish:公众号文章自动发布

❌ awesome-tool:啥是 awesome?

❌ my-skill:你的技能关我啥事?

❌ super-ai-bot:太虚了

建议 3:保持更新

技能发布不是一劳永逸。

API 变动了 → 及时修复
用户提 Issue 了 → 尽量响应
有新功能了 → 迭代版本

活跃的开发者,更容易获得信任和推荐。

ClawHub 有「最近更新」榜单,保持更新能增加曝光。

建议 4:适度商业化

你可以:

免费开源,赚口碑
付费技能(ClawHub 支持付费下载)
免费基础版 + 付费高级版
技能免费,咨询/定制收费

我倾向于:基础功能免费,高级功能/一对一服务收费

先让用户用起来,建立信任,再谈转化。

建议 5:别重复造轮子

发布前去 ClawHub 搜一下,也许已经有类似技能。

如果有,你可以:

1
直接用:别 reinvent the wheel
2
提 PR 改进:给原技能作者贡献代码
3
做差异化:找到他没覆盖的场景

开源社区的魅力是协作,不是恶性竞争。

七、一些灵感:你可以开发什么技能?

如果你还没想好做什么,这里有一些方向:

内容创作类

小红书文案生成器
抖音脚本写作助手
B 站视频标题优化器
邮件营销文案生成器

数据处理类

Excel 数据清洗工具
JSON/CSV/YAML 格式转换器
批量图片压缩/加水印
PDF 合并/拆分/转 Word

自动化类

定时备份脚本(网盘/本地)
网站监控(宕机通知)
价格监控(降价提醒)
邮件自动分类/回复

AI 增强类

论文摘要提取器
会议纪要生成器(语音转文字 + 总结)
代码审查助手
法律文书生成器

个人效率类

待办事项自动分类
阅读笔记整理器
健身计划生成器
旅行攻略生成器

最好的技能,源自你自己的痛点。

你天天用的东西,大概率别人也需要。

八、行动清单

最后,给你 3 个任务:

任务 1:找到你的「自动化候选」(30 分钟)

列出你每天重复做的 3 件事
选出最耗时、最机械的那件
问自己:这个能脚本化吗?

任务 2:写出最小可用版本(2 小时)

搭目录结构
写核心逻辑(不用完美,能跑就行)
写 SKILL.md(按模板填)

任务 3:发布到 ClawHub(30 分钟)

本地测试通过
clawhub publish
把链接发给朋友,收集反馈

这 3 步走完,你就是 ClawHub 技能开发者了。


结语

技能开发的门槛,远比你想象的低。

不需要你是全栈工程师,不需要你懂复杂的架构。

你会写脚本,你能把事说清楚,就够了。

ClawHub 上有 200+ 技能,很多都是普通用户写的。

他们不是技术大牛,只是把自己的需求变成了产品

你也可以。

现在,打开编辑器,写下你的第一行代码。

你的第一个技能,也许就是下一个爆款。


如果你觉得这篇文章有帮助:

1
点个在看,让更多需要的人看到
2
转发朋友圈,说不定能够帮助到更多正在探索技能开发的朋友
3
关注我,获取更多 AI 实战干货:

📌 公众号:李宏阳讲 AI(深度文章、培训资讯)
🎬 视频号:李宏阳讲 AI(短视频、直播回放)
💬 微信:添加请注明「公众号」(优先通过)

每周二、四晚 8 点,公众号准时更新。


关于作者:

李宏阳,AIGC 培训讲师,AI 自媒体博主。

人工智能训练师(高级)- 人社部 / 阿里达摩院双认证
曾任戴尔、安踏、乔丹、欣贺股份、斯凯奇等世界 500 强企业 CIO
全国优秀 CIO、全国优秀 CDO、TOGAF 认证企业架构师
持有 PMP、COBIT、ITIL、CISP 等国际认证
2025 年 AIGC 培训 50 场,受众 5000+ 人

专注领域:

AIGC 培训与咨询
AI+ 行业数字化项目定制
企业业务价值链端到端闭环落地

商务合作/培训咨询:请公众号后台留言或添加微信(备注「公众号」优先通过)

全平台:公众号/视频号/小红书 → 李宏阳讲 AI


标签: #OpenClaw #技能开发 #ClawHub #自动化 #Python #AI 工具 #李宏阳讲 AI