开启左侧

OpenClaw Skills 全方位指南:从小白到大牛

[复制链接]
米落枫 发表于 10 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
到底啥是 Skill?

在 OpenClaw 的世界里,Skill(技能)就像是给 AI 准备的“外挂插件”或“专业补丁”。
直白点说,Skill 就是一份写给 AI 看的“速成教程”。它把特定领域的门道、干活的套路和顺手的工具打包在一起。有了它,AI 就能在处理特定活儿时,表现得像个老手。
形象点理解

打个比方意思就是
游戏技能书就像 RPG 里的秘籍,点一下 AI 就学会了新招数
新人入职手册公司内部的规矩和流程,AI 看完就知道怎么按咱的要求干活
老师傅的工具箱专门对付某种问题的全套行头
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
瞅一眼真实的 Skill 长啥样

拿 ddg-search-fetch 这个 Skill 举例:
代码语言:YAML
  1. ---
  2. name: duckduckgo-search
  3. description: Search the web and fetch URL content using DuckDuckGo.
  4.   Use when the user wants to search for information online without
  5.   requiring API keys or paid services...
  6. ---
复制代码
它能让 AI 瞬间学会:
    跑去 DuckDuckGo 搜东西把网页内容抓回来读关键是不用掏钱买 API,白嫖也能办大事

咱们为啥非得用 Skill?

1. 帮 AI 补齐它不懂的地方

大模型虽然聪明,但它又不是神,它没法知道:
    你公司内部那些不对外的 API 怎么调你自己项目里的特殊架构那些冷门小众工具的操作流程
    这时候,Skill 就能帮它把这些知识盲区填上。
2. 让 AI 干活更靠谱、不乱来

如果没有 Skill,AI 每次处理同样的活儿可能都看心情,方法变来变去。有了 Skill,就等于有了标准流程,保证它每次都能交出一样的作业。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
3. 给对话窗口“瘦身”

Skill 玩的是一套“按需加载”的策略:
    基础信息(名字和描述)——一直挂着,也就一百来个词。正文内容——真触发了才读,省地儿。厚重的资料——用到哪页翻哪页,完全没负担。
    这样就不会因为废话太多,把 AI 的记忆空间给占满了。
4. 拿来主义,好东西大家分

写好一个 Skill,你可以:
    这个项目用完,下个项目接着用顺手扔给同事用发到 ClawHub 上,让全社区的人都夸你

Skill 的内部结构

一个地道的 Skill 文件夹一般长这样:
代码语言:TXT
  1. skill-name/
  2. ├── SKILL.md              # 灵魂文件:必须有它
  3. ├── _meta.json            # 自动弄出来的:身份证
  4. ├── .clawhub/             # 给 ClawHub 用的配置
  5. ├── scripts/              # 选配:能跑的代码脚本
  6. │   ├── ddg_search.py
  7. │   └── ddg_fetch.py
  8. ├── references/           # 选配:参考书
  9. │   ├── api-docs.md
  10. │   └── examples.md
  11. └── assets/               # 选配:装修材料
  12.     ├── templates/
  13.     └── images/
复制代码
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
SKILL.md 怎么写才地道

这是 Skill 的核心,通常分两块:
1. 顶部的 YAML 信息(元数据)

代码语言:YAML
  1. ---
  2. name: skill-name               # 名字(小写字母,中间用杠连)
  3. description: Use when...       # 触发开关(这最重要!)
  4. ---
复制代码
关于 description 怎么写,多说两句:
    AI 全靠这句话来判断要不要动用这个 Skill必须得用 "Use when..." 开头重点描述“什么时候用”,而不是“我有啥功能”别太长,1024 个字顶天了
    像样的写法:
    代码语言:YAML
  1. description: Use when implementing any feature or bugfix,
  2.   before writing implementation code
复制代码
反面教材:
代码语言:YAML
  1. description: This skill helps with TDD - write test first,
  2.   watch it fail, write minimal code, refactor
复制代码
2. 下面的正文内容

这里面一般得写清楚:
    大致介绍:这玩意儿是干啥的,得守啥规矩啥时候用:碰到哪种情况赶紧拿出来干活套路:具体的一二三步怎么走小抄速查:重点记一下怎么实现:里面的细节避坑指南:之前别人踩过的雷

手把手带你写一个 Skill

咱们练个手,做一个天气查询 Skill
第一步:把需求盘清楚

先想好这个 Skill 要干啥:
    帮用户查某个地方的天气别让我去买 API Key,要免费的现在的天气和未来的预报都得有
第二步:找齐干活的家伙

我们需要:
    一个能查天气的 Python 脚本一份教 AI 怎么用脚本的说明书
    手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
第三步:搭个架子

代码语言:Bash
  1. # 直接用 OpenClaw 里的命令初始化
  2. clawhub init weather-query --path skills/
复制代码
这时候你会得到:
代码语言:TXT
  1. skills/weather-query/
  2. ├── SKILL.md
  3. └── .clawhub/
复制代码
第四步:把 SKILL.md 填满

代码语言:Markdown
  1. ---
  2. name: weather-query
  3. description: Get current weather and forecasts for any location.
  4.   Use when the user asks about weather, temperature, or forecasts
  5.   for any location. Triggers on phrases like "weather", "temperature",
  6.   "forecast", "will it rain".
  7. ---
  8. # Weather Query
  9. 通过 wttr.in 或者 Open-Meteo 查天气(不需要秘钥)。
  10. ## 快速开始
  11. ```bash
  12. # 查现在的天气
  13. python3 scripts/weather.py "Beijing"
  14. # 看预报
  15. python3 scripts/weather.py "Shanghai" --forecast
  16. # 只要 JSON 格式
  17. python3 scripts/weather.py "Tokyo" --format json
复制代码
参数说明

选项说明默认值
--forecast拿三天的预报关着的
--format输出啥样:text 还是 jsontext
返回例子

代码语言:JSON
  1. {
  2.   "location": "Beijing",
  3.   "temperature": "15°C",
  4.   "condition": "Sunny",
  5.   "humidity": "45%"
  6. }
复制代码
第五步:把核心代码写了

建个 scripts/weather.py:
代码语言:Python
  1. #!/usr/bin/env python3import argparse
  2. import urllib.request
  3. import json
  4. defget_weather(location, forecast=False):# 薅 wttr.in 的羊毛
  5.     url =f"https://wttr.in/{location}?format=j1"
  6.    
  7.     req = urllib.request.Request(url)with urllib.request.urlopen(req)as response:
  8.         data = json.loads(response.read().decode())return data
  9. if __name__ =="__main__":
  10.     parser = argparse.ArgumentParser()
  11.     parser.add_argument("location")
  12.     parser.add_argument("--forecast", action="store_true")
  13.     args = parser.parse_args()
  14.    
  15.     result = get_weather(args.location, args.forecast)print(json.dumps(result, indent=2))
复制代码
第六步:跑一遍试试

代码语言:Bash
  1. python3 skills/weather-query/scripts/weather.py "Beijing"
复制代码
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
第七步:发出去

代码语言:Bash
  1. clawhub publish skills/weather-query
复制代码

进阶聊聊:Skill 背后那点逻辑

1. 像写代码一样写 Skill

搞 Skill 也要讲究“测试驱动”:
TDD 的概念搬到 Skill 里就是
测试用例各种刁钻的场景和子代理
真正的代码你写的 Skill 文档
没跑通AI 不听使唤,乱搞
跑通了AI 乖乖按流程办事
优化代码哪里漏了补哪里
记住一句话:要是没测出 AI 哪里会出错,就先别急着写 Skill。
2. 慢慢抖包袱(渐进式披露)

代码语言:TXT
  1. 用户一开口
  2.     ↓
  3. [看名头对不对得上] → 名字 + 描述(随时待命)
  4.     ↓
  5. [对上了,开工] → 把 SKILL.md 扔给 AI 读
  6.     ↓
  7. [真要动手时] → 去 references/ 找资料或跑 scripts/
复制代码
3. 别把 AI 管得太死

根据活儿的难度,给 AI 留点空间:
    松点儿:只给文字建议,怎么干 AI 自己看着办紧点儿:给个伪代码或者带参数的脚本严丝合缝:必须跑特定脚本,一步都不能错
    手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
4. 针对 Claude 搞点搜索优化

得让 AI 以后能快速翻到你:
    埋点关键词:把报错、症状、工具名都写进去名字要带劲:用动词开头,比如 creating-skills字数控制好:入门指南别超 150 词,别的也控制在 500 词内

把你的 Skill 传给全世界

上传到 ClawHub

代码语言:Bash
  1. # 先登录
  2. clawhub login
  3. # 发布出去
  4. clawhub publish skills/my-skill
  5. # 改了再更一下
  6. clawhub update my-skill
复制代码
拿别人的 Skill 过来用

代码语言:Bash
  1. # 搜搜看
  2. clawhub search weather
  3. # 搬回来
  4. clawhub install weather-query
  5. # 看看自己装了啥
  6. clawhub list
复制代码
别啥都装,得留个心眼

安装前最好先瞅瞅里面有没有猫腻:
代码语言:Bash
  1. # 看一下 Skill 的详细信息
  2. clawhub inspect skill-name
  3. # 先装到临时文件夹检查
  4. clawhub install skill-name --dir /tmp/test
复制代码
安全检查主要看这几点:
    有没有偷偷往奇怪的网址发请求有没有把你的数据往外传有没有管你要账号密码会不会翻你的 ~/.ssh 这种私密文件夹代码里有没有藏着 eval() 之类的后门

高手心得与常踩的坑

✅ 推荐做法

    先拿具体事儿练手:别一上来就整虚的,找几个真实场景练。越短越精悍:别把 AI 当傻子,它懂的你就别唠叨,给几个好例子比写一堆废话管用。“Use when”要写对:一定要描述清楚“什么时候该用”,得带上具体症状。分层放内容:SKILL.md 别太厚,大块资料往 references 里塞,代码往 scripts 里扔。互相串门:用 superpowers:skill-name 关联别的 Skill。
    手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
❌ 别往里跳的坑

常见的坑惨痛代价咋改
描述写成了功能介绍AI 不看正文,直接上手乱搞只写什么时候触发
示例搞一堆语言看着乱,AI 也容易糊涂选一种语言,做到极致
流程图里塞代码没法直接考出来跑老老实实用代码块
引用嵌套得太深AI 根本找不着引用一层就够了,别套娃
到处是重复话浪费 AI 的“脑容量”一个地方写清楚,别处别提了

总结

Skill 是 OpenClaw 的精髓所在。它让 AI 能够:
    从通用变专才——学会专业门道干活不走样——流程标准化团队共成长——好经验大家共用越来越强——大家一起给社区添砖加瓦
    最后送你一句做 Skill 的铁律:
没有发现失败的测试,就不要轻易动手写 Skill。
好了,别光看着了,去写你的第一个 Skill 吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )