2026实测|OpenClaw Skill 自制指南:零代码,10分钟拥有专属AI技能
用 OpenClaw 时,你是否也遇到过这样的困扰:ClawHub 上的 Skill 要么不合需求,要么功能冗余,想找个贴合自己使用习惯的技能比登天?
其实不用死等别人更新,你自己就能轻松制作——全程零代码、无门槛,哪怕不懂API、不会写程序,只要会简单编辑文本,10分钟就能做出第一个专属 Skill。
很多人对「自制Skill」有误解,觉得它是程序员的专属,实则不然:OpenClaw 的 Skill 本质就是一份「AI 操作指南」,核心只有一个 SKILL.md 文件,写清“什么时候用、怎么做、出什么结果”,AI 就能精准执行。

这篇教程全程实测,从基础认知到实战操作,再到调试发布,一步步带新手吃透 Skill 自制全流程,还有避坑技巧和真实案例,看完就能上手,建议收藏备用 ✅
一、先搞懂:Skill 不是插件,是「AI 操作说明书」
很多人第一次接触 Skill,会误以为它是类似浏览器插件的东西——安装完要在后台跑运行时,其实完全不是。
Skill 更像是给 OpenClaw AI 量身定制的「说明书」:你在 SKILL.md 里写清楚 3 件事,AI 就能精准执行:
•什么时候用这个技能(触发条件)
•用的时候按什么步骤走(工作流程)
•最后输出什么格式(结果要求)
举个我自己在用的真实例子:
我给博客做了一个trend-scout Skill,作用是定期扫描 V2EX、Hacker News、GitHub Trending、少数派、小众软件,自动找出适合写成文章的热门话题。
它没有「后台服务」,也不用复杂安装,就是一个普通文件夹,里面放了说明文档和几个辅助脚本。OpenClaw 启动时会自动扫描这个文件夹,注册这个 Skill,之后 AI 就知道自己有这个「能力」了。
二、文件结构:最小只需要 1 个文件
不用纠结复杂的目录,OpenClaw 对 Skill 的结构要求极简单,分两种情况,按需选择即可:
1. 极简版(新手首选)
只需要一个文件夹 + 一个 SKILL.md 文件,就能正常运行:
|
bash~/.openclaw/workspace/skills/ └── my-skill/# 你的 Skill 文件夹(名字可自定义)└── SKILL.md# 核心文件,写清操作说明 |
2. 完整版(带脚本/参考资料)
如果需要批量操作(比如批量拉取多个平台数据),可以加脚本和参考资料,结构如下(以我的 trend-scout 为例):
|
bash~/.openclaw/workspace/skills/ └── trend-scout/# Skill 主文件夹├── SKILL.md# 核心:技能说明+工作流程├── scripts/# 辅助脚本文件夹(可选)│└── scan-trends.sh# 批量拉取数据的脚本└── references/# 参考资料文件夹(可选)└── sources.md# 信息源列表、过滤规则等 |
关键提醒
|
Skill 文件夹要放在默认路径:~/.openclaw/workspace/skills/,OpenClaw 启动时会自动扫描这个目录,不用手动配置,放进去就生效。 |
三、核心重点:SKILL.md 怎么写?(3 个部分搞定)
SKILL.md 是 Skill 的灵魂,不管是极简版还是完整版,都要包含这 3 个部分,按模板写,不用自己瞎琢磨。
第一部分:frontmatter(必须有,AI 识别关键)
这是 Skill 的「身份卡」,用 3 条横线包裹,里面写清楚 Skill 的名称、用途,重点是明确适用场景和不适用场景。
模板(以 trend-scout 为例):
|
markdown— name: trend-scout# Skill 名称(自定义,唯一即可) description: >扫描 V2EX、Hacker News、GitHub Trending、少数派、小众软件,发现适合博客的选题方向。Use when: 用户要找新选题,或每 2 天定期触发。# 适用场景NOT for: 分析已有流量数据(那个用 GSC/Bing 工具直接查)。# 不适用场景 — |
重点强调:description 是 AI 判断「要不要用这个 Skill」的关键,一定要写清楚「适合什么」和「不适合什么」。后者很容易被忽略,但能避免AI 误触发(比如我之前没写NOT for,AI总在我问流量数据时跑这个Skill)。
第二部分:触发条件(When to Run)
用自然语言写就行,不用代码,告诉 AI 「什么时候该启动这个 Skill」,比如定期触发、用户主动提问等。
示例(trend-scout):
|
markdown## When to Run – 每 2 天通过 heartbeat 或 cron 触发 – 用户主动问「有什么可以写的选题」 – 现有关键词数据感觉重复、没新意的时候 |
第三部分:工作流程(Workflow,核心中的核心)
这是 AI 执行的步骤,写得越具体,AI 执行得越准。别写「拉数据、过滤、输出」这种模糊的话,直接写「跑哪个脚本」「用什么命令」「遇到问题怎么兜底」。
示例(trend-scout):
|
markdown## Workflow 1. 读 `references/sources.md` 了解信息源列表 2. 跑 `scripts/scan-trends.sh` 拉取 V2EX、HN、GitHub、少数派、小众软件的数据 3. 对于被 Cloudflare 拦截的来源(Linux.do、Reddit),用 web_search 代替:– `web_search “site:linux.do 热门“` 4. 对照博客受众过滤(见下方 Filtering 部分) 5. 输出排名选题列表 ## Filtering Criteria(过滤规则,可选)匹配条件: – 受众:国内技术用户,关注 VPS/服务器、AI 工具、白嫖资源、支付工具 – 排除:企业 SaaS、纯代码教程、没有实操价值的新闻 – 优先:有免费版的工具、可自托管项目、需要中文教程的内容 |
四、进阶:带脚本的 Skill(可选,提升效率)
纯文字说明适合简单操作,但如果需要批量做某件事(比如批量拉取 5 个平台的 API),每次让 AI 手写命令太慢,还容易出错,这时候加个辅助脚本就很方便。
脚本的作用很简单:帮 AI 完成重复操作,输出统一格式的结果,AI 只需要调用脚本,再读取结果即可。
真实脚本示例(scan-trends.sh)
我的 trend-scout 里,脚本主要做一件事:依次请求 V2EX、Hacker News 等平台,把结果存成 JSON 文件,方便 AI 后续分析。关键片段如下(可直接复制修改):
|
bash#!/bin/bash OUTPUT_DIR=”${1:-/tmp/trend-scout}” mkdir -p “$OUTPUT_DIR” # V2EX 热门话题(公开 API,无需认证) curl -s “https://www.v2ex.com/api/topics/hot.json” | python3 -c “ import json, sys data = json.load(sys.stdin) results = [] for t in data[:10]:results.append({‘title’: t.get(‘title’,”),‘node’: t.get(‘node’,{}).get(‘title’,”),‘replies’: t.get(‘replies’, 0)}) print(json.dumps(results, ensure_ascii=False, indent=2)) ” > “$OUTPUT_DIR/v2ex.json” # Hacker News(Firebase 实时数据库,稳定好用) curl -s “https://hacker-news.firebaseio.com/v0/topstories.json” | python3 -c “ import json, sys, urllib.request ids = json.load(sys.stdin)[:10] results = [] for id in ids:resp = urllib.request.urlopen(f’https://hacker-news.firebaseio.com/v0/item/{id}.json’)item = json.loads(resp.read())if item and item.get(‘type’) == ‘story’:results.append({‘title’: item.get(‘title’,”), ‘score’: item.get(‘score’,0)}) print(json.dumps(results, ensure_ascii=False, indent=2)) ” > “$OUTPUT_DIR/hn.json” |
脚本使用注意
•脚本放在scripts/文件夹下,在 Workflow 里直接引用路径即可(比如跑scripts/scan-trends.sh 拉取数据),AI 会自动执行。
•脚本写完后,先手动跑一遍,确认能正常输出结果(比如我之前踩坑,正则表达式写错,导致脚本跑不起来)。
•如果脚本里用了 python3,要确认服务器上已经安装。
五、实战:10 分钟做出第一个 Skill(新手必看)
光看理论可能有点晕,我们用一个极简需求,从零开始做一个 Skill,全程不超过 10 分钟,新手也能跟着操作。
需求
每天早上自动生成一份简报,包含上海天气和 V2EX 热帖前 5 条,推送到 Telegram。
步骤 1:创建文件夹和文件
打开终端,执行两条命令,创建 Skill 文件夹和核心文件:
|
bashmkdir -p ~/.openclaw/workspace/skills/daily-brief touch ~/.openclaw/workspace/skills/daily-brief/SKILL.md |
步骤 2:编写 SKILL.md(复制粘贴即可)
|
markdown— name: daily-brief description: >每天早上生成简报:上海天气 + V2EX 热帖前 5 条。Use when: 用户说“生成今日简报“,或 cron 在早上 8 点触发。NOT for: 详细的天气预报或深度新闻分析。 — # Daily Brief ## When to Run – 每天 8:00 AM 通过 cron 触发 – 用户主动说「给我今天的简报」「今天有什么热点」 ## Workflow 1. 拉取上海天气:`curl “https://wttr.in/Shanghai?format=3″` 2. 拉取 V2EX 热帖前 5 条:`curl https://www.v2ex.com/api/topics/hot.json`取 title 和 node.title 字段 3. 整合输出以下格式,推送 Telegram ## Output Format(输出格式,固定模板) 📅 {今天日期} 🌤 天气:{wttr.in 返回结果} 🔥 V2EX 今日热帖: 1. {标题}({节点}) 2. …(共 5 条) |
步骤 3:重启 gateway,让 Skill 生效
终端执行命令,重启 OpenClaw 网关,新 Skill 就会被自动注册:
|
bashopenclaw gateway restart |
步骤 4:测试效果
在 Telegram 里对 OpenClaw 说「给我今天的简报」,AI 就会按 Workflow 里的步骤,拉取天气、拉取热帖,然后按你指定的格式推送给你。
如果想让它每天自动跑,加一个 cron 定时任务(终端执行):
|
bashopenclaw cron add \–name “早间简报” \–cron “0 8 * * *” \–tz “Asia/Shanghai” \–session main \–message “生成今日简报并推送“ |
|
至此,你的第一个 Skill 就完成了,全程没写一行逻辑代码,耗时不超过 10 分钟! |
六、调试:Skill 没触发?4 个常见问题排查
写完 Skill 发现 AI 不用,或者用错了,大概率是以下 4 个问题,逐一排查就能解决:
1. description 写得太模糊
AI 判断要不要用 Skill,全靠 description。如果写「处理各种任务」这种宽泛的话,AI 会不知道该不该用,直接跳过。
解决:改成「When to Run + NOT for」的明确格式,比如前面的 daily-brief 示例。
2. 文件夹结构不对
SKILL.md 必须直接放在 skills 子目录下,不能再嵌套一层(比如 skills/daily-brief/src/SKILL.md 就是错的)。
正确结构:skills/你的 Skill 文件夹/SKILL.md。
3. 改完没重启 gateway
OpenClaw 只在启动时扫描 skills 目录,改完 SKILL.md 或新增 Skill 后,必须重启网关才能生效:
|
bashopenclaw gateway restart |
4. 脚本没有执行权限
如果 Skill 带了 shell 脚本,AI 会无法执行,需要给脚本添加执行权限:
|
bashchmod +x ~/.openclaw/workspace/skills/你的 Skill 文件夹/scripts/*.sh |
小技巧:调试时可以直接在 OpenClaw 对话里说「用 XX Skill 执行XX操作」(比如「用 daily-brief Skill 生成简报」),强制指定 Skill,快速排查哪一步出问题。
七、发布到 ClawHub:让别人也能用你的 Skill
写好的 Skill 如果觉得有用,可以发布到 ClawHub,让其他 OpenClaw 用户也能安装使用,用 clawhub CLI 工具,几条命令就能搞定。
步骤 1:安装 clawhub CLI(如果没装过)
|
bashnpm install -g clawhub |
步骤 2:初始化发布配置
进入你的 Skill 文件夹,执行初始化命令:
|
bashcd ~/.openclaw/workspace/skills/daily-brief clawhub init |
执行后会提示你填写几个信息:Skill 名称、简介、版本号、分类,填完会自动生成一个clawhub.json文件。
步骤 3:登录并发布
|
bashclawhub login# 用 GitHub 账号授权登录 clawhub publish# 发布 Skill |
发布注意事项
•发布成功后,别人可以用npx clawhub install 你的 Skill 名称安装。
•ClawHub 会对 Skill 做双重安全扫描(VirusTotal + OpenClaw),扫描通过后会显示绿色安全标记。
•发布前一定要检查 SKILL.md,不要有硬编码的个人信息(比如 API Key、服务器 IP),可以替换成占位符或从环境变量读取。
八、写 Skill 的 4 个实用技巧(避坑总结)
结合我自己写 trend-scout 和 daily-brief 的经验,总结了 4 个技巧,能让你的 Skill 更易用、少踩坑:
1. 流程步骤写命令,不写意图
「搜索相关资料」不如「用 web_search 搜索 ‘{关键词} site:github.com’」,前者 AI 会自由发挥,后者能让 AI 精准执行,减少误差。
2. 一定要加 NOT for
明确 Skill 的边界,避免 AI 在不该用的时候误触发,这是很多新手容易忽略的点。
3. Output Format 单独写一节
如果需要固定格式输出(比如推送到 Telegram、生成表格),把格式模板明确写出来,连 emoji 都可以指定,AI 会严格按模板输出。
4. 辅助文件放 references/
不要把大段参考内容(比如 100 行的信息源列表)直接堆在 SKILL.md 里,放到 references/ 子目录,在 Workflow 里引用路径即可,既能保持 SKILL.md 简洁,也能让 AI 读取更快。
最后总结
其实 OpenClaw 写 Skill 真的没有门槛,核心就是「把流程写清楚」——不用懂代码,不用学 API,会写 Markdown,能理清步骤,就能做出自己想要的功能。
我自己的 trend-scoutSkill,从构思到写完测试,也就花了半小时;而前面的daily-brief,10分钟就能搞定。
如果你也做出来了有意思的 Skill,欢迎在评论区分享,或者发布到 ClawHub,让更多人用上~
💡 收藏这篇教程,下次想写 Skill 时,直接对照步骤来,不用再踩坑啦!
欢迎关注本账号,我们还会持续分享更多AI咨询、AI工具、实战经验、踩坑记录,助力你高效玩转AI开发、避开行业弯路。

想了解更多细节、获取专属支持,可添加客服微信:xuexiv5876,随时咨询交流~
夜雨聆风