AI创想

标题: OpenClaw Skills 全方位指南:从小白到大牛 [打印本页]

作者: 米落枫    时间: 11 小时前
标题: OpenClaw Skills 全方位指南:从小白到大牛
作者: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 瞬间学会:

咱们为啥非得用 Skill?

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

大模型虽然聪明,但它又不是神,它没法知道:
2. 让 AI 干活更靠谱、不乱来

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

Skill 玩的是一套“按需加载”的策略:
4. 拿来主义,好东西大家分

写好一个 Skill,你可以:

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 怎么写,多说两句:
  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 要干啥:
第二步:找齐干活的家伙

我们需要:
第三步:搭个架子

代码语言: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 留点空间:
4. 针对 Claude 搞点搜索优化

得让 AI 以后能快速翻到你:

把你的 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
复制代码
安全检查主要看这几点:

高手心得与常踩的坑

✅ 推荐做法

❌ 别往里跳的坑

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

总结

Skill 是 OpenClaw 的精髓所在。它让 AI 能够:
没有发现失败的测试,就不要轻易动手写 Skill。
好了,别光看着了,去写你的第一个 Skill 吧!




欢迎光临 AI创想 (https://llms-ai.com/) Powered by Discuz! X3.4