前言
很多人初次听说 OpenClaw Skill 时,第一反应往往是:哦,无非又是一个插件。
这个理解只对了一半。
插件通常是为 Agent 增添新能力——比如新工具、新消息渠道或新模型提供商。但 Skill 呢?它更像是递给 Agent 一本操作手册。
它不一定创造新工具,但会明确告诉 Agent:
遇到某类任务时,应该遵循哪些步骤; 需要优先检查什么; 该调用哪些工具; 哪些地方容易踩坑; 最终结果如何交付。
因此,Skill 的本质并非“多一个按钮”,而是“把一套可复用的工作方法嵌入 Agent 的思维方式中”。
本文将一站式讲透 OpenClaw Skill 的含义、加载方式、触发机制、实际用法,以及新手最容易掉进去的误区。
先说结论:Skill 是方法,不是魔法
OpenClaw 兼容 AgentSkills 的 skill 文件夹结构。
一个 Skill 通常是一个目录,其核心文件只有这一个:
SKILL.md
SKILL.md 头部是 YAML frontmatter,用于定义技能名称、描述、要求和环境条件等;正文部分才是具体的操作流程。
OpenClaw 不会将每个 Skill 的全文都塞进系统提示词——那样太消耗资源了。
更准确的运作流程如下:
OpenClaw 扫描可用 Skill
↓
将 Skill 的名称、描述、路径放入系统提示词
↓
模型了解到“有哪些 Skill 可用”
↓
当任务匹配某个 Skill 的描述时
↓
模型读取该 Skill 的 SKILL.md
↓
按照其中的步骤执行操作
这,就是 Skill 的真实定位。
它不是每次都完整进入上下文,而是“按需加载”的操作说明书。
这一设计有一个很实际的好处:节省上下文窗口。如果你装了 30 个 Skill,每个几千字,全部塞进 Prompt,模型根本无法有效工作——上下文早被撑爆了。OpenClaw 只把 Skill 列表放进去,让模型在需要时再去读取详细说明,这才是靠谱的做法。
Skill 和工具有什么区别
新手最容易把这两个概念混为一谈。
工具,是 Agent 能够调用的能力。Skill,是 Agent 使用这些能力的方法论。
举个例子:
- Browser 工具 = 打开网页、截图、点击、读取页面内容
- browser-automation Skill = 遇到网页自动化任务时,如何规划步骤、如何确认页面状态、如何避免误操作
再举个例子:
- exec 工具 = 运行命令
- deploy Skill = 部署前检查环境、备份配置、执行部署、验证服务、撰写报告
工具回答的是:能做什么?
Skill 回答的是:应该怎么做?
真正稳定的 Agent,不能只依赖工具。因为工具越多,模型越容易胡乱选择。Skill 的价值,就在于把“某类任务的正确操作路径”固定下来,让 Agent 的每次执行都有章可循。
OpenClaw 从哪里加载 Skill
OpenClaw 会从多个位置加载 Skill,并且有严格的优先级顺序。
从高到低大致如下:
/skills /.agents/skills - ~/.agents/skills
- ~/.openclaw/skills
- 安装包自带的 bundled skills
- 配置里的 skills.load.extraDirs
如果同名 Skill 在多个位置同时存在,优先级高的会覆盖优先级低的。
这一设计非常关键,因为它允许你实现三件事:
项目级定制:某个 workspace 可以拥有自己专属的 Skill
个人级复用:你自己机器上可以放一套通用 Skill
系统级兜底:OpenClaw 自带一些默认能力说明
比如,你在做一个“SEO 工厂”项目时,可以在当前 workspace 的 skills/ 目录下放置一个 seo-content-pipeline。这样,该项目的 Agent 会优先使用项目内的 SEO 工作流,而不会误用其他位置的同名 Skill。
如何查看当前有哪些 Skill
最常用的方式是 CLI 命令:
openclaw skills list openclaw skills list --eligible openclaw skills list --verbose openclaw skills infoopenclaw skills check
你可以这样理解:
list—— 当前能扫描到哪些 Skilleligible—— 当前 Agent 真正符合条件、能出现在提示词里的 Skillinfo—— 查看某个 Skill 的详细信息check—— 检查 Skill 是否可见、格式是否正常verbose—— 查看更多路径、来源和过滤原因
这里有一个细节:文件存在≠Agent 能用。一个 Skill 可能因为环境变量缺失、二进制文件不存在、插件未启用、allowlist 限制、当前 agent 不匹配等原因而不可用。所以排查 Skill 时,不要只看文件夹——要盯准 eligible 状态。
如何安装 Skill
OpenClaw 支持多种安装方式:
openclaw skills search "calendar" openclaw skills installopenclaw skills install --version openclaw skills install git:owner/repo openclaw skills install git:owner/repo@main openclaw skills install ./path/to/skill --as custom-name openclaw skills install --global openclaw skills update openclaw skills update --all
默认情况下,install 和 update 面向当前 Agent 的 workspace skills/ 目录。加上 --global 参数则安装到共享 managed skills 目录;加上 --agent 则安装到指定 Agent 的 workspace。
新手最稳妥的路径是:先 search → 再 info → 再 install 到当前 workspace → 最后 check。不要一上来就全局安装一大堆 Skill。Skill 会影响 Agent 的行为,装得多并不代表更聪明,反而可能让模型更难判断该遵循哪套方法。
Skill 是怎么被触发的
Skill 不是传统软件中那种“手动点击执行”的机制。
OpenClaw 会在系统提示词里列出可用 Skill 的名称、描述和路径。模型根据用户任务自行判断:任务是否匹配某个 Skill?如果匹配,该读取哪个 SKILL.md?读取之后要按哪些步骤调用工具?
比如,你提出这样一个需求:
帮我把这个网页后台的商品价格检查一遍,截图并输出报告。
如果当前环境中存在 browser automation 相关的 Skill,模型大概率会先读取该 Skill,然后开始规划:
1. 打开目标页面 2. 获取页面快照 3. 识别表格或商品卡片 4. 执行点击或翻页操作 5. 截图保存 6. 生成报告
你也可以显式地指定:使用 browser-automation skill 完成这个任务。 但一个优秀的 Skill 设计应该是:即使你不点名,模型仅凭描述就能判断何时该使用它。
一个最小 Skill 长什么样
一个极简的 Skill 可以像下面这样:
--- name: seo-report description: Generate a structured SEO analysis report from a webpage or keyword list. --- # SEO Report Skill Use this skill when the user asks for SEO analysis, content gap analysis, keyword planning, or page optimization advice. ## Workflow 1. Confirm the target page or keyword. 2. Fetch or inspect the content. 3. Extract title, headings, links, metadata, and visible content. 4. Identify SEO risks and opportunities. 5. Produce a report with prioritized recommendations. ## Output Return: - Summary - Issues - Recommendations - Next actions
它没有创建任何新工具,但让 Agent 明确:遇到 SEO 报告任务时,不要随意写一段建议,而要按固定结构输出。这就是 Skill 的价值所在。
使用 Skill 的正确姿势
按照下面的顺序来操作,不容易走弯路:
第一步:先明确任务类型
第二步:查看是否已有合适的 Skill
第三步:安装到当前 workspace
第四步:用 check 确认可见性
第五步:让 Agent 执行一个小任务
第六步:观察它是否真的读取了 SKILL.md
第七步:根据失败点调整 Skill
第八步:再用于更复杂的任务
不要一开始就写一个超级庞大的 Skill。新手最容易犯的错误,就是把 Skill 写成百科全书。Skill 应该像“操作规程”,而不是“产品说明书”。一个好的 Skill 通常满足以下特点:
- 触发条件清晰明确
- 步骤简短且具体
- 工具选择指向性强
- 输出格式固定统一
- 包含常见失败处理
- 不塞入过多无关背景信息
常见误解
误解一:装了 Skill,Agent 一定会使用
不一定。它必须被加载、符合条件、出现在可用 Skill 列表里,并且模型判断任务匹配才会使用。所以排查时要关注 openclaw skills list --eligible 和 openclaw skills check。
误解二:Skill 越多越好
并非如此。Skill 列表本身也会占用上下文。更关键的是,描述过于相似的 Skill 会增加模型的选择成本。宁可少而精,不要多而杂。
误解三:Skill 可以替代权限控制
不能。Skill 是行为指导,不是硬性限制。真正的安全边界还是要靠 tool policy、审批、沙箱、allowlist、channel 限制等手段来兜底。
误解四:Skill 必须很复杂才有价值
不对。很多高价值的 Skill 只有几十行。它把“我希望 Agent 每次都这样做”的经验固化下来,这本身就很有价值。
总结
OpenClaw Skill 是一种让 Agent 学会“如何做事”的机制。工具提供能力,Skill 提供方法。OpenClaw 不会把所有 Skill 的全文都塞进 Prompt,而是将名称、描述和路径放入提示词,模型需要时再读取 SKILL.md。使用 Skill 时,最重要的不是装得多,而是让每个 Skill 都拥有清晰的触发条件、稳定的流程和明确的输出。
如果你想把 OpenClaw 从“能调用工具”提升到“稳定完成某类任务”的层次,Skill 是必须掌握的关键一环。
本节作业
- 运行
openclaw skills list和openclaw skills list --eligible,对比两者的差异。 - 找一个你经常做的任务,写出它适合转化为 Skill 的 5 个步骤。
- 设计一个最小化的
SKILL.md,只包含 name、description、workflow、output。 - 思考一个安全问题:这个 Skill 是否会引导 Agent 调用危险工具?应该采用什么策略来限制?
- 让 Agent 执行一个小任务,观察它是否会按照 Skill 的流程输出结果。
