​文章定位:概念科普 + 实操入门。你已经装好了 OpenClaw,会基本 CLI 操作,但对 Skills 系统还没有系统认知。这篇文章帮你搞清楚:Skills 是什么、怎么工作、怎么用、怎么写、有什么风险。​前置要求:已安装 OpenClaw,Gateway 正常运行。如果还没装,先看《OpenClaw CLI 新手完全指南》。​​


一句话定义​

​Skills = Agent 的"操作手册"。​​

Tools 是手脚(读文件、发请求、跑命令),Skills 是教 Agent 怎么用手脚完成任务的指南。​

打个比方:Tools 是锤子和螺丝刀,Skills 是"如何组装宜家家具"的说明书。你把锤子给一个人,他未必知道该敲哪里;但给他说明书,他就能照着一步步把书柜装好。​


一、Skills 是什么?​

核心定义​

一个 Skill 就是一个文件夹,里面有一个SKILL.md文件。这个文件用 YAML frontmatter(元数据头)+ Markdown 正文,告诉 Agent:"遇到这类任务,按这个流程做。"​

就这么简单。一个 Markdown 文件,就是一个技能。​

Skills vs Tools 的区别​

这两个概念新手最容易搞混,用一张表说清楚:​

关键认知:没有 Tools,Agent 没有能力做事;没有 Skills,Agent 有能力但不知道怎么做事。两者缺一不可。​

为什么需要 Skills?​

你可能会想:AI 不是很聪明吗?我直接告诉它"帮我搜论文",它不就知道怎么做了?​

大部分时候确实可以。但问题是:​

1.Agent 不知道你的环境里有什么工具。你装了 MediaCrawler 可以爬小红书,但 Agent 不知道这个工具存在,更不知道怎么调用它。Skill 告诉它:"你有这个工具,这样用。"​

2.复杂任务需要编排多个步骤。"帮我搜论文"听起来简单,但实际上要:调 arXiv API → 解析 XML → 补充 Semantic Scholar 引用数据 → 格式化输出。这些步骤写在 Skill 里,Agent 照着做就行。​

3.经验可以复用。你花了一小时调好了一个搜索流程,写成 Skill 之后,每次都能复用。还能分享给别人。​

一句话:Skills 把"怎么做"标准化了。​


二、Skills 的三级加载机制​

Agent 启动时会从三个地方加载 Skills,优先级从高到低:​

第一级:工作区 Skills(优先级最高)​

<workspace>/skills/

项目专属技能。比如你的工作空间在~/.openclaw/workspace/,那就是~/.openclaw/workspace/skills/。​

适用场景:只在当前项目中使用的技能。​

第二级:用户 Skills​

代码块Plain Text

跨项目共享的技能。clawhub install默认安装到这里。​

适用场景:所有项目都能用的通用技能,比如搜索、邮件、GitHub 操作。​

第三级:内置 Skills(优先级最低)​

OpenClaw 自带的技能,比如github、memory、summarize等 52 个。不需要安装,开箱即用。​

门控过滤​

加载时不是所有 Skill 都会生效。OpenClaw 会检查每个 Skill 声明的依赖:​

  • •requires.bins:需要的 CLI 工具(比如gh、docker)​
  • •requires.env:需要的环境变量(比如TAVILY_API_KEY)​
  • •requires.os:支持的操作系统​

缺依赖的 Skill 自动跳过,不会报错,也不会加载。这意味着你可以放心装一堆 Skill,用不了的会自动忽略。​

查看当前哪些 Skill 满足条件可以使用:​

openclaw skills list --eligible

查看哪些 Skill 因为缺依赖被跳过:​

openclaw skills check --verbose

三、一个 Skill 长什么样?​

SKILL.md 的结构​

每个 Skill 的核心就是一个SKILL.md文件,结构像这样:​

SKILL.md 结构:
├── YAML Frontmatter(元数据)
│   ├── name + description(必填)
│   ├── version
│   └── metadata.openclaw(运行时需求)
│       ├── requires(依赖声明)
│       ├── install(自动安装规格)
│       └── emoji / os / always 等
└── Markdown Body(指令正文)
    ├── 触发条件
    ├── 工作流步骤
    └── 注意事项

最小示例(5 行就是一个 Skill)​

代码块Markdown

对,就这么短。name+description+ 一段指令,就是一个合法的 Skill。​

完整示例:天气查询 Skill​

---
name: weather-query
description: 查询指定城市的天气信息。当用户问"今天天气怎么样"、"北京天气"、"明天会下雨吗"等天气相关问题时触发。
version: 1.0.0
tags: [weather, utility]
metadata:
  openclaw:
    requires:
      env: [OPENWEATHER_API_KEY]
    emoji: 🌤️
---
# 天气查询

GEThttps://api.openweathermap.org/data/2.5/weather?q={城市}&amp;appid={OPENWEATHER_API_KEY}&amp;units=metric&amp;lang=zh_cn

### Step 3: 格式化输出
从 API 返回的 JSON 中提取:
- 温度(当前 / 最高 / 最低)
- 天气描述
- 湿度和风速
- 体感温度
用简洁自然的语言回复,例如:
"北京现在 22°C,晴,体感 20°C。最高 25°C,最低 18°C。湿度 45%,微风。适合出门。"

Frontmatter 关键字段详解​

重点说description:这个字段决定了 Skill 的"生死"。Agent 在接到用户消息时,会扫描所有可用 Skill 的 description,判断哪些跟当前任务相关。description 写得不好 = Skill 永远不会被触发。​

社区的经验是:description 要写得"有点激进",鼓励触发而非欠触发。宁可多触发几次(用户会纠正),也不要错过该触发的场景。​


四、ClawHub — 技能市场​

是什么​

ClawHub 是 OpenClaw 的官方技能注册中心,网址clawhub.com。截至 2026 年 3 月,有13,729+个社区贡献的技能。​

你可以把它理解成 Skills 的"App Store"——搜索、安装、更新、发布,一条龙。​

CLI 操作速查​

# 搜索(语义搜索,基于向量索引,不是简单的关键词匹配)
clawhub search "天气查询"
clawhub search "github issue management"
# 安装
clawhub install <slug>
# 查看不安装(先看看这个 Skill 做了什么)
clawhub inspect <slug>
# 更新全部已安装的 Skill

安装后验证​

# 重启 Gateway 让新 Skill 生效
openclaw gateway restart
# 查看是否加载成功
openclaw skills list | grep <skill-name>
# 检查依赖是否满足
openclaw skills check --verbose

版本管理​

ClawHub 使用语义化版本(semver)+ 内容哈希比对。clawhub update不只看版本号,还会比对实际内容变化,避免无意义更新。​

许可证​

ClawHub 上的技能统一采用MIT-0许可证——可以用、可以改、可以商用、不用署名。​


五、自己写一个 Skill(5 分钟上手)​

别被"写 Skill"这件事吓到。前面你已经看到了,最简单的 Skill 只要 5 行。下面我们来写一个真正能用的——天气查询 Skill。​

Step 1:创建目录​

mkdir -p ~/.openclaw/skills/weather/

Step 2:编写 SKILL.md​

cat > ~/.openclaw/skills/weather/SKILL.md << 'EOF'
---
name: weather
description: 查询城市天气。当用户问"天气怎么样"、"北京天气"、"明天下雨吗"、"需要带伞吗"时触发。
version: 1.0.0
---
# 天气查询

GEThttps://wttr.in/{城市}?format=j1

### 3. 格式化回复
从返回 JSON 的 `current_condition` 中提取:
- `temp_C`:当前温度
- `weatherDesc`:天气描述
- `humidity`:湿度
- `windspeedKmph`:风速
- `FeelsLikeC`:体感温度
用自然语言回复,例如:
"北京现在 22°C,晴天,体感 20°C,湿度 45%,微风。出门不用带伞。"

Step 3:重启 Gateway​

代码块Bash

Step 4:验证​

代码块Bash

看到输出中有weather就说明加载成功了。​

Step 5:测试​

向你的 Agent 发一条消息:​

​"今天北京天气怎么样?"​​

Agent 应该会触发 weather Skill,调用 wttr.in API,给你返回天气信息。​

如果没触发怎么办?最常见的原因是description写得不够"激进",Agent 没有把用户消息和这个 Skill 关联起来。调整 description,让它覆盖更多表述方式。​


六、进阶用法​

写出基础 Skill 之后,还有几个进阶能力值得了解。​

Bundled Resources:给 Skill 附带参考文档​

如果你的 Skill 需要参考大量文档(比如一个 API 的完整规格),可以在 Skill 目录下创建references/目录:​

代码块Plain Text

Agent 在执行 Skill 时会按需加载这些文件,不会一次性塞进上下文浪费 token。​

Scripts:可执行脚本​

如果 Skill 需要跑一些脚本(Python、Shell 等),放在scripts/目录:​

代码块Plain Text

在 SKILL.md 中通过exec工具调用这些脚本。​

依赖声明 + 自动安装​

在 frontmatter 中声明依赖,OpenClaw 会在加载时自动检查,缺失时提示安装:​

metadata:

requires做的是检查,install做的是告诉 Agent 怎么装。​

发布到 ClawHub​

写好一个 Skill,觉得别人也能用?发布出去:​

clawhub publish ~/.openclaw/skills/my-skill

发布前用quick_validate.py校验结构是否合法(如果你装了 skill-creator 技能的话),或者至少确保 frontmatter 中name和description都有。​


七、常见问题 FAQ​

Q1: Skill 装了但没触发?​

最常见原因:description写得太保守,Agent 没有匹配上。​

排查步骤:​

1.确认 Skill 已加载:openclaw skills list | grep <name>​

2.确认依赖满足:openclaw skills check --verbose​

3.检查description是否覆盖了用户的表述方式。比如你写的是"查询天气",但用户说的是"明天需要带伞吗"——这两个表述差很远​

4.尝试在 description 中加入更多触发词和场景描述​

Q2: Skill 和 MCP Server 什么关系?​

互补关系,不是竞争关系。​

  • •MCP(Model Context Protocol)是一个开放协议,让 AI 连接外部工具和数据源。它定义的是"AI 怎么跟外部服务通信"​
  • •Skill是 Agent 内部的操作指南,告诉 Agent"遇到这类任务怎么做"​

举个例子:你可以用 MCP 连接了一个 Notion 数据库,然后写一个 Skill 教 Agent "当用户说'记个笔记'时,把内容写入 Notion"。MCP 提供通道,Skill 提供逻辑。​

Q3: YAML frontmatter 解析报错?​

最常见的坑:description 中的冒号后面有空格。​

代码块YAML

YAML 中:+ 空格是键值分隔符,如果你的文本里有这个组合,必须加引号。​

Q4: 工作区 Skills 和用户 Skills 有同名的怎么办?​

工作区优先。三级加载机制中,工作区 > 用户 > 内置,同名时高优先级的覆盖低优先级的。​

Q5: 怎么知道一个 Skill 被触发了几次?​

目前没有内置统计。社区推荐的方式:在 SKILL.md 的工作流中加一步"执行前在 memory/ 中记录一次",手动统计。或者看 Gateway 日志:​

openclaw logs --follow

日志里会显示 Agent 加载了哪些 Skill。​

Q6: 能不能让某个 Skill 每次对话都加载?​

可以。在 frontmatter 中设置:​

代码块YAML

但要谨慎使用——每次都加载意味着每次都消耗 token。​

学员须知(小白基础答疑手册)​

作业提交步骤指导:​☎️AI训练营 - 学员须知(持续更新)

OpenClaw主文档(含所有回放):​​第五期:OpenClaw小龙虾训练营

AI训练营数据中心(含证书获取、找搭子):​​🌈AI训练营​第1课:​​第1课:认知破局——认识OpenClaw小龙虾​第2课:​​第2课:基建搭建——小龙虾云端部署+技能初始化​第3课:​​第3课:数据中枢——小龙虾协同多维表格​第4课:​​第4课:社媒引流——小红书自动化运营​第5课:​​第5课:私域沉淀-微信公众号一键排版​第6课:​​第6课:主动出击——让小龙虾给你打电话

第7课:​​第7课:赋予声带——让小龙虾开口说话​第8课:​​第8课:顶峰相见,谁的龙虾会运营​课程在线回答汇总:​🥠课程在线回答问题汇总​优秀笔记:​​优秀笔记分享​自习室:​​自习室

​✨从训练营出发,你与AI的故事我们想听 | WaytoAGI AI训练营老学员专属回访​https://waytoagi.feishu.cn/share/base/form/shrcnvP68KwlHihAAi7UQ2Dzw2g​​

从训练营出发,你与AI的故事我们想听 | WaytoAGI AI训练营老学员专属回访​https://waytoagi.feishu.cn/share/base/form/shrcnvP68KwlHihAAi7UQ2Dzw2g

@版权归WaytoAGI及课程讲师所有,未经许可不得传播售卖。如有侵权将依法追究法律责任。​