Tools 导读

技能目录的加载顺序与覆盖规则

OpenClaw 从 6 个位置加载技能目录,同名时按 workspace > .agents > ~/.agents > ~/.openclaw > bundled > extraDirs 的优先级覆盖。注意技能位置和可见性是两回事——位置决定哪个副本生效,allowlist 决定哪些技能能被 agent 使用,且 agent 自己的 skills 列表会完全替换 defaults,不会合并。

先讲这一页到底在解决什么

技能目录的加载顺序与覆盖规则

OpenClaw 从 6 个位置加载技能目录,同名时按 workspace > .agents > ~/.agents > ~/.openclaw > bundled > extraDirs 的优先级覆盖。注意技能位置和可见性是两回事——位置决定哪个副本生效,allowlist 决定哪些技能能被 agent 使用,且 agent 自己的 skills 列表会完全替换 defaults,不会合并。

原文共 22 节,先看 Start Here 路径:/tools/skills 查看官方原文

第一站

🧠 先把 skill 想成“做事说明书”

如果工具像积木,那 skill 就像积木拼装说明书。它不负责多给你一块积木,它负责告诉 OpenClaw:这次应该先拿哪块,再拿哪块。

🛠 工具

工具负责动作。比如读文件、跑命令、开浏览器、搜网页,这些都是真正动手的能力。

📘 Skill

Skill 负责教路。它会告诉 OpenClaw:碰到某类问题,先查哪里,再用哪个工具,最后怎么收尾。

🎒 一个技能文件夹

本质上就是一个目录,里面最重要的那张纸叫 SKILL.md。你可以把它当成“这套本领的使用说明”。

⭐ 如果你只记一句

Skill 不是给 OpenClaw 新超能力,而是教它把现有能力用得更像样。

第二站

📦 Skill 会从很多地方冒出来,但离你越近越算数

官方原文这一大段其实只是在讲一件事:如果同一个 skill 在好几个地方都出现了,到底听谁的?

🏆 最容易记的规则

离你当前工作区越近的 skill,声音越大。离得越远,声音越小。也就是说,你自己项目里的版本,通常会压过系统自带的版本。

📁 工作区里的 skill

这是最“贴身”的版本。它就在你当前项目边上,所以优先级最高,最像“我这一单就按我项目自己的规矩来”。

🏠 你电脑上的共享 skill

~/.openclaw/skills~/.agents/skills 这类地方,更像“这台机器上的通用小抄本”。谁来都能看,但它没有项目本地版本强势。

📦 系统自带的 skill

像出厂说明书。很好用,但只要你自己有更贴身的版本,它就会往后站。

🎈 这节真正想告诉你

想改默认 skill,不用去拆系统肚子。最简单的办法,就是在你自己的工作区里放一份同名版本,让它盖过去。

第三站

👥 多代理的时候,skill 其实也分“谁家的”

如果你同时跑很多代理,官方这部分就是在讲:哪些 skill 只归某一个代理,哪些能给大家一起用。

🧒

某个代理自己的

放在它自己工作区里的 skill,只像它自己的笔记本,别人看不见,也用不到。

🏫

项目里一起用的

放在项目范围的 skill,像班级公用讲义。这个项目里的代理都能看。

🏠

这台机器一起用的

放在你用户目录里的 skill,像家里的常用手册。这台电脑上的代理都能共享。

📚

额外目录里的

像从别处搬来的资料箱。能用,但优先级通常比较靠后。

第四站

🧩 插件也能带 skill,但它更像“随盒附赠小纸条”

插件可以顺手带一些 skill 进来。这不是坏事,只是你要知道:这种附赠纸条通常没有你工作区里的本地纸条硬。

📦 插件自带 skill

插件启用以后,它附带的 skill 才会一起进来。所以它更像“买这个插件时顺便附送的用法卡片”。

🥇 谁优先

如果你本地已经有同名版本,那本地版本一般会赢。意思就是:附赠说明书有用,但项目自己的规矩更大。

📌 真正要记住的点

插件可以带 skill,但别以为它带来的就一定会生效。真正拍板的,还是前面那套“离工作区越近越优先”的规则。

🎈 一句话收住

插件带来的 skill 像随盒小卡片,本地 skill 像你自己写的班规。

第五站

🛒 ClawHub 更像一个“技能小卖部”

这一节不是在讲架构,而是在讲“去哪里找 skill、怎么装进来、怎么更新”。

🏪 ClawHub 是哪儿

你可以把它想成 OpenClaw 的技能货架。别人写好的 skill,会放在那里给你挑。

📥 安装 skill

装 skill 不是“召唤云端魔法”,而是把那份技能文件夹真的搬进你当前工作区里。

🛠 命令 / 代码像在做什么
  • openclaw skills install <skill-slug>:像去小卖部点名买一盒技能,然后把它放到你当前项目桌上。
  • openclaw skills update --all:像检查你桌上这些技能说明书是不是都出了新版,有的话就一起换新。
  • clawhub sync --all:更像店员在整理货架、同步库存,不只是单纯给你装一个技能。
🎈 最后记一句

ClawHub 是找 skill 的地方,openclaw skills install 是把它拎回家的动作。

第六站

🔐 第三方 skill 要当成“陌生人给你的代码”来看

这页有一段很重要,不能因为讲故事就讲轻了:第三方 skill 不是可爱小贴纸,它可能真的会影响系统行为。

⚠️ 先看再用

别人给你的 skill,本质上是别人写的做事说明。它会影响代理怎么用工具,所以最好先读,再决定要不要开。

🪵 密钥别乱塞

如果 skill 需要 API key,这些东西不是糖果,要尽量别把它们暴露进提示词和日志里。

🏖 该进沙箱就进沙箱

如果一个 skill 会碰高风险工具,或者输入来源不可靠,那就尽量让它在沙箱里跑。这样像让它在围栏里活动,不会满院子乱跑。

🎈 一句话记住

第三方 skill 要当代码看,不要当贴纸看。

第七站

📝 写一个 skill,最重要的是那张 SKILL.md

这一节真正要说的,不是花哨格式,而是:每个 skill 至少得有一张自我介绍卡,系统才能认得它。

📄 必须要有

一个 skill 目录里最重要的文件就是 SKILL.md。没有它,这套本领就像没有封面的作业本,系统不太知道你是谁。

🏷 开头那几行在干嘛

前面的 YAML 信息,像把“名字”和“简介”贴在盒子外面。系统先看盒子外的标签,再决定怎么处理这盒东西。

🛠 命令 / 代码像在做什么
  • ------ 这一段:像技能盒子的封面标签,先写名字,再写它是干嘛的。
  • name: image-lab:像在盒子外面写上这套本领叫什么。
  • description: ...:像在盒子外面补一句“这盒东西大概是拿来做什么的”。
  • user-invocable: true:像告诉系统“这个 skill 可不可以直接摆到前台,给用户自己点着用”。
  • command-dispatch: tool:像说“这个按钮按下去别先开会讨论了,直接去叫那个工具干活”。
🎈 一句话收住

SKILL.md 就像技能身份证和使用说明写在同一张纸上。

第八站

🚦 metadata 更像“门口检查规则”

官方这段最容易写得很硬,但其实它只是说:不是每个 skill 什么时候都该出现,有些得先检查条件。

🔍 检查有没有工具

比如某个 skill 需要系统里先有 uv 这个命令。没有的话,这个 skill 就像少了零件的玩具,先别拿出来。

🔑 检查有没有钥匙

如果它需要某个 API key,也得先确认钥匙在不在。不然它一开口就会卡住。

🖥 检查环境对不对

有的 skill 只适合某些系统,或者只有某个配置打开时才该出现。这个检查就像门卫看场合放人。

🛠 命令 / 代码像在做什么
  • requires.bins:像检查“你要玩的这套工具,家里有没有那把扳手”。
  • requires.env:像检查“这把门钥匙你带没带”。
  • requires.config:像检查“这扇门是不是已经被允许打开”。
  • primaryEnv:像告诉系统“如果你要找主钥匙,就优先找这一把”。

第九站

🎛 你还能在配置里给 skill 开小灶

官方这一段其实是在讲:就算 skill 本身已经写好了,你还是可以在自己的配置里决定它开不开、要不要给它密钥、要不要喂它额外参数。

🔘 开关

enabled: true/false 就像总开关。你不想让某个 skill 出现,直接关掉就行。

🗝 密钥

如果它需要 API key,你可以在配置里塞给它。像做实验前,把专用钥匙放进对应抽屉里。

🛠 命令 / 代码像在做什么
  • "image-lab": { enabled: true }:像说“这盒技能今天可以上桌”。
  • apiKey: {...}:像把保险柜钥匙交给这一个 skill 用,不是发给全世界看。
  • env: { GEMINI_API_KEY: "..." }:像在这个 skill 开工前,把它需要的那张小纸条塞进口袋。
  • config: { model: "nano-pro" }:像跟它说“你今天干活时,就按这个口味来”。
🎈 一句话收住

你可以把 skill 当现成玩具买回来,也可以在自己家里再给它调开关、贴标签、换电池。

第十站

⏱ Skill 不是每句话都重新读一遍的,它会先拍一张快照

这一节如果直讲会很硬,但它核心意思很简单:一次会话开始时,OpenClaw 会先把“现在有哪些 skill 可用”记下来,然后按这张清单继续聊。

📸 会话快照

像上课前先点名。点完名以后,中途一般就按这张名单走,不会每说一句话都重新去全校广播里问一遍。

🔄 热刷新

如果你开了 watcher,系统也可以像老师中途收到新名单那样,下一轮再换成新版本。

🛠 命令 / 代码像在做什么
  • watch: true:像叫一个值日生盯着技能文件夹,一有变化就举手报告。
  • watchDebounceMs: 250:像告诉值日生“别每一笔都喊,等 250 毫秒再统一说”,免得太吵。
🎈 最后记一句

改了 skill 想马上生效,要么开新会话,要么让 watcher 帮你中途换新名单。

最后总结

🎈 把 Skills 这页压缩成一句最好记的话

Skill 不是给 OpenClaw 加新手脚,而是教它怎么把手脚用得更像一个会做事的小助手。

如果你接下来只继续看一页,我建议先看 /tools/creating-skills 或者直接去看你项目里的某个 SKILL.md,你会一下子把这张图对上现实。