【OpenClaw 第 5 篇】Skills 技能系统:给 Agent 装上工具箱
Gateway 是骨架,Channel 是手脚,Skills 才是 Agent 的「专业技能」。

OpenClaw 的 Skills 系统借鉴了 AgentSkills 兼容格式。每个 Skill 是一个包含 SKILL.md 的目录——里面有 YAML 头信息(frontmatter)和 Markdown 正文指令。Agent 在需要时自动加载相关 Skill 作为上下文。
Skills 的加载优先级
OpenClaw 从 6 个位置 加载 Skills,优先级从高到低:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
同名 Skill 冲突时,高优先级覆盖低优先级。这意味着你可以在 workspace 级别覆盖自带 Skill 的行为,而不需要修改源码。
SKILL.md 格式
一个典型的 Skill 结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ---name: github-issuesdescription: "Create and manage GitHub issues via gh CLI"version: 1.0.0metadata: openclaw: requires: config: ["github.token"] binary: "gh"---# GitHub Issues Skill# Triggers- "create an issue"- "list open issues"# Steps1. 检查 gh CLI 是否认证: `gh auth status`2. 创建 Issue: `gh issue create --title "..." --body "..."`3. ...
YAML frontmatter 中的关键字段:
– name:唯一标识
– description:供 Agent 判断何时加载
– metadata.openclaw.requires.config:依赖的配置项(缺了就不加载)
– metadata.openclaw.requires.binary:依赖的系统命令
安装和管理 Skills
从 ClawHub 安装
ClawHub 是 OpenClaw 的公共 Skill 注册中心:
1 2 3 4 5 6 7 8 # 安装一个 Skill 到 workspaceopenclaw skills install <skill-slug># 更新所有已安装的 Skillsopenclaw skills update --all# 发布/同步(需要 clawhub CLI)clawhub sync --all
Agent 级别的 Skill 白名单
在多 Agent 场景下,你可以控制每个 Agent 能使用哪些 Skills:
1 2 3 4 5 6 7 8 9 10 11 12 { agents: { defaults: { skills: ["github", "weather"], // 所有 Agent 默认加载 }, list: [ { id: "writer" }, // 继承 defaults { id: "docs", skills: ["docs-search"] }, // 替换为特定列表 { id: "locked", skills: [] }, // 禁用所有 Skills ], },}
白名单规则:
– 不设 agents.defaults.skills → 默认所有 Skills 可用
– Agent 设 skills: [] → 禁用全部
– Agent 设非空 skills → 完全替换 defaults(不合并)
Plugin 自带的 Skills
Plugin 也可以附带自己的 Skills——在 openclaw.plugin.json 中声明 skills 目录。Plugin 启用时,其 Skills 自动加载。例如,Browser Plugin 会附带一个 browser-automation Skill。
Skill Workshop
官方提供了一个实验性的 Skill Workshop 插件——它可以从 Agent 的实际操作中自动提取可复用的工作流,生成新的 Skill。
典型用法:
– 对话中说「下次这种情况记得验证 GIF 出处」→ Workshop 提取规则写入 Skill
– Agent 发现某个多步操作反复执行 → Workshop 建议创建 Skill
这是一个「Agent 自我进化」的机制——虽然还处于实验阶段,但方向很有意思。
避坑
1. Skills 不是 Tool:Skill 是一组指令(Prompt),不会直接调用 API。真正的工具调用由 Gateway Tool System 处理。
2. 同名覆盖要小心:workspace 级别的同名 Skill 会完全覆盖 bundled Skill,别误删关键功能。
3. require 条件:如果 Skill 的 requires 条件不满足,它会被静默跳过。这可能导致「以为装了但没生效」。
4. Token 消耗:每个 Skill 的文本内容都会占用上下文窗口。不要无脑堆 Skills,只装真正需要的。
下一步
Skills 让你的 Agent 有了专业技能。但怎么让这些技能自动定时执行?下一篇讲 Cron——OpenClaw 的定时任务引擎。
你最常用/最想写的一个 Skill 是什么?
夜雨聆风