乐于分享
好东西不私藏

【OpenClaw 第 5 篇】Skills 技能系统:给 Agent 装上工具箱

【OpenClaw 第 5 篇】Skills 技能系统:给 Agent 装上工具箱

Gateway 是骨架,Channel 是手脚,Skills 才是 Agent 的「专业技能」。

OpenClaw 的 Skills 系统借鉴了 AgentSkills 兼容格式。每个 Skill 是一个包含 SKILL.md 的目录——里面有 YAML 头信息(frontmatter)和 Markdown 正文指令。Agent 在需要时自动加载相关 Skill 作为上下文。

Skills 的加载优先级

OpenClaw 从 6 个位置 加载 Skills,优先级从高到低:

优先级
来源
路径
1(最高)
Workspace Skills
`/skills`
2
Project Agent Skills
`/.agents/skills`
3
Personal Agent Skills
`~/.agents/skills`
4
Managed/Local Skills
`~/.openclaw/skills`
5
Bundled Skills
安装包自带
6(最低)
Extra Skill Dirs
`skills.load.extraDirs`(配置)

同名 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 是什么?