摘要 :OpenClaw 通过 Skills 与 ClawHub 扩展智能体能力,技能以「目录 + SKILL.md / manifest.json」形式存放在工作区 skills/ 下,并在 openclaw.json 中注册;安装/更新/移除技能时会同步更新 SKILLS.md ,使智能体在下一轮推理中可见新能力。本文说明 OpenClaw 的 skills 机制、如何更新 skills ,并结合 LangGraph 7. 技能 Skills 的 Agent Skills 规范,在 demo_codes 中复现「注册表 + SKILLS.md 同步」的流程。
关键词:OpenClaw;Skills;ClawHub;SKILLS.md;openclaw.json;技能更新;Agent Skills
参考:
1 OpenClaw 中的 Skills 是什么?
OpenClaw 默认只能对话;Skills 是给智能体增加能力的扩展单元,类似「手机上的 App」:
- 每个技能是自包含的扩展,可提供新能力(如网页搜索、图像生成、日历、语音等)。
- 可独立安装、更新、移除,运行在沙箱中,有明确接口(能做什么、需要什么输入)。
- 技能存放在工作区的
skills/目录,并在openclaw.json中注册。
与 LangGraph 7. 技能 Skills 中的 Agent Skills 一致:技能以文件夹 + SKILL.md (或 OpenClaw 的 manifest.json)形式存在,包含元数据和使用说明;智能体通过发现 → 选择 → 加载 → 使用来调用。
2 三种能力类型:Built-in Tools / Skills / Plugins
| 类型 | 含义 | 来源 |
|---|---|---|
| Built-in Tools | 核心能力(文件、Shell、web_fetch 等) | 随 OpenClaw 默认提供(约 20 个) |
| Skills | OpenClaw 原生扩展格式 | ClawHub 或自建,符合 AgentSkills 规范 |
| Plugins | 基于 MCP 的集成 | 任意 MCP 兼容服务器 |
对多数用户而言,Skills 是扩展能力的主要方式。
3 ClawHub 与技能的安装/更新/移除
3.1 ClawHub
ClawHub 是 OpenClaw 的社区技能市场(类似 npm 对 JavaScript),截至 2026 年初已托管 5,700+ 社区技能。支持按分类、热度、时间浏览,以及安装、更新、移除。
3.2 安装
在 OpenClaw 的对话界面里输入:
text
/skills install @author/skill-name
安装后:
- 技能被添加到工作区(通常放入
skills/目录)。 - 在
openclaw.json中注册,例如:
json
{
"skills": {
"@niceperson/brave-web-search": {
"enabled": true,
"config": {
"apiKey": "${BRAVE_API_KEY}"
}
}
}
}
3.3 如何更新 Skills(重要)
更新通过命令完成:
text
/skills update @author/skill-name
/skills update --all
- 单技能更新 :从 ClawHub(或源)拉取该技能的最新版本,覆盖工作区中对应目录内容,并保持
openclaw.json中该技能的配置(如enabled、config等)。 - 全部更新:对所有已安装技能执行上述拉取与覆盖。
- 更新后,安装器会同步更新 SKILLS.md(见下节),使智能体在下一轮推理中看到最新能力描述。
注意:更新前应查看 changelog;技能更新可能改变行为、增加权限或破坏现有工作流。
3.4 移除
text
/skills remove @author/skill-name
会从工作区删除该技能目录,并从 openclaw.json 的 skills 中移除对应项;同样会重新生成 SKILLS.md,不再包含该技能。
4 SKILLS.md 与技能更新
4.1 SKILLS.md 的作用
SKILLS.md 属于 OpenClaw 的「记忆/能力可见性」设计:
- 文件中列出当前已安装的所有技能及其能力描述。
- 安装或更新技能时,安装器会更新 SKILLS.md,把新技能或更新后的描述写进去。
- 智能体在下一轮推理中会读取 SKILLS.md,从而看到最新可用能力,无需改代码。
这样能力列表是透明、可审计、可版本管理的。
4.2 更新流程小结
| 操作 | 对工作区的影响 | 对 openclaw.json | 对 SKILLS.md |
|---|---|---|---|
| install | 在 skills/ 下新增技能目录 |
在 skills 中增加一项(enabled、config 等) |
写入/追加该技能的能力描述 |
| update | 用最新版本覆盖该技能目录内容 | 一般保留原有配置 | 根据当前已安装技能重新生成或更新描述 |
| remove | 删除该技能目录 | 从 skills 中删除该项 |
重新生成,不再包含该技能 |
因此,OpenClaw 更新 skills 的机制可以概括为:
- 命令层 :
/skills update @author/skill-name或/skills update --all。 - 内容层 :从 ClawHub(或源)拉取最新技能包,覆盖本地
skills/<skill-id>/。 - 配置层 :
openclaw.json中该技能的enabled、config等通常保留。 - 可见性层 :安装器重新生成或更新 SKILLS.md,使 Agent 下一轮推理能看到最新技能列表与描述。
5 与 LangGraph 7. 技能 Skills(LangGraph Agent Skills)的对应关系
| 概念 | LangGraph 7. 技能 Skills(本仓库) | OpenClaw |
|---|---|---|
| 技能形态 | 文件夹 + SKILL.md(YAML frontmatter + 正文) | 文件夹 + SKILL.md 或 manifest.json + index.js/index.py |
| 技能库位置 | skills_library/ |
工作区 skills/ |
| 注册/配置 | 无统一注册表,仅扫描目录 | openclaw.json 的 skills 段(enabled、config、sandbox 等) |
| 能力可见性 | 发现时读 SKILL.md frontmatter | SKILLS.md 由安装器维护,列出已安装技能及能力 |
| 发现→选择→加载→使用 | 有(skill_loader) | 同思路,Agent 读 SKILLS.md 与 SKILL.md 执行 |
| 安装/更新/移除 | 需手动放文件 | `/skills install |
这里,我们写了一个例子, 在 LangGraph 7. 技能 Skills 的「发现→选择→加载→使用」基础上,复现 OpenClaw 的:
- openclaw.json 风格配置(已安装技能列表 + enabled/config);
- SKILLS.md 在 install/update/remove 时自动同步;
- 从「技能库/仓库」安装、更新、移除的模拟流程。
6 openclaw skills 复现内容概览
- 技能目录 :
skills/(对应 OpenClaw 工作区技能目录)。 - 模拟cloawhub,
clawhub_store文件夹中里面包含了一系列的skills。 - 配置 :
openclaw.json(或等价的skills_config.json),记录已安装技能及 enabled/config。 - 能力清单 :
SKILLS.md,由程序在 install/update/remove 后自动生成/更新,内容为当前已安装技能的名称与描述。 - 命令/接口 :
install_skill、update_skill、remove_skill、sync_skills_md(),以及基于 LangGraph 7. 技能 Skills 的discover_skills、load_skill、use_skill_with_llm(发现与使用仍基于 SKILL.md)。 - 运行方式 :见案例的
README文件。
通过该 demo 可直接体验:安装或更新技能后,SKILLS.md 如何被更新,以及 Agent 如何通过 SKILLS.md + SKILL.md 使用这些能力。
6.1 列出仓库中可安装技能
我们通过
bash
python main.py list
可以罗列clawhub_store文件夹中包含的所有skills(注意,clawhub_store文件夹这里用来模拟cloawhub)。比如:
bash
可安装技能(clawhub_store):
- algorithmic-art (algorithmic-art): Creating algorithmic art using p5.js with seeded randomness ...
- brand-guidelines (brand-guidelines): Applies Anthropic's official brand colors and typography to ...
- canvas-design (canvas-design): Create beautiful visual art in .png and .pdf documents using...
- claude-api (claude-api): Build apps with the Claude API or Anthropic SDK. TRIGGER whe...
- doc-coauthoring (doc-coauthoring): Guide users through a structured workflow for co-authoring d...
- docx (docx): Use this skill whenever the user wants to create, read, edit...
- frontend-design (frontend-design): Create distinctive, production-grade frontend interfaces wit...
- internal-comms (internal-comms): A set of resources to help me write all kinds of internal co...
- mcp-builder (mcp-builder): Guide for creating high-quality MCP (Model Context Protocol)...
- pdf (pdf): Use this skill whenever the user wants to do anything with P...
- pptx (pptx): Use this skill any time a .pptx file is involved in any way ...
- skill-creator (skill-creator): Create new skills, modify and improve existing skills, and m...
- slack-gif-creator (slack-gif-creator): Knowledge and utilities for creating animated GIFs optimized...
- summarize (summarize): Use this skill when the user wants to summarize, condense, o...
- theme-factory (theme-factory): Toolkit for styling artifacts with a theme. These artifacts ...
- web-artifacts-builder (web-artifacts-builder): Suite of tools for creating elaborate, multi-component claud...
- webapp-testing (webapp-testing): Toolkit for interacting with and testing local web applicati...
- xlsx (xlsx): Use this skill any time a spreadsheet file is the primary in...
6.2 安装技能
我们可以通过
bash
python main.py install [skill-name]
来安装skill。在这里,我们模拟安装skills为:从clawhub_store文件夹中找到对应的skill文件夹,然后复制黏贴到skills文件夹中。在实际应用,其实逻辑也是一样的。比如,我们在terminal中运行:
bash
python main.py install skill-creator
返回:
已安装技能: skill-creator,并已更新 openclaw.json 与 SKILLS.md。
6.3 移除技能
我们可以通过
bash
python main.py remove [skill-name]
来删除已经安装的 skill。
6.4 openclaw.json 与 SKILLS.md
我们来看一下 openclaw.json 与 SKILLS.md 的内容:
openclaw.json
json
{
"skills": {
"summarize": {
"enabled": true,
"config": {}
},
"docx": {
"enabled": true,
"config": {}
},
"skill-creator": {
"enabled": true,
"config": {}
}
}
}
md
# Installed Skills
本文档由 openclaw 风格安装器自动生成,列出当前已启用技能及其能力。
安装/更新/移除技能后会更新此文件。
## 技能列表
- **docx** (`docx`)
- Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce ...
- **skill-creator** (`skill-creator`)
- Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill...
- **summarize** (`summarize`)
- Use this skill when the user wants to summarize, condense, or extract key points from text. Preserve important information and source references when relevant.
在此案例的源码中,openclaw.json 与 SKILLS.md 的调用与作用如下。
openclaw.json
- 读写位置 :
_load_openclaw_config()读取、_save_openclaw_config()写入,默认路径为DEFAULT_OPENCLAW_JSON(即openclaw.json)。 - 作用 :作为已安装技能注册表 ,保存
skills: { "<skill_id>": { "enabled": true, "config": {} } }。- 发现阶段 :
discover_skills()会调用_load_openclaw_config()得到skills_config,对skills/下每个子目录,用其skill_id查表;当only_enabled=True时,仅当entry.get("enabled", True)为真才把该技能加入列表(见约 94、108--110 行)。 - 安装/更新/移除 :
install_skill()在复制技能到skills/后,向 config 的skills中写入或更新该项并_save_openclaw_config();update_skill()保留该技能原有配置再写回;remove_skill()从 config 的skills中删除该项并写回。
- 发现阶段 :
- 写入位置 :仅由
sync_skills_md()写入,默认路径为DEFAULT_SKILLS_MD(即SKILLS.md)。 - 作用 :作为当前已启用技能的能力清单 (面向人或 Agent 的可读列表)。
sync_skills_md()内部会调用discover_skills(..., only_enabled=True)(即结合skills/与 openclaw.json 中enabled为真的项),把每个技能的name、skill_id、description拼成 Markdown 并写入 SKILLS.md。- 调用时机 :在
install_skill()、update_skill()、remove_skill()末尾都会调用sync_skills_md();CLI 的python main.py sync则只调用sync_skills_md(),不执行安装/更新/移除。
- 调用时机 :在
因此,openclaw.json 决定「哪些技能已安装、是否启用、配置是什么」并驱动发现时的过滤;SKILLS.md 则是对「当前已启用技能及其能力」的同步快照,供下一轮推理或人工查看。
6.5 代码的实际运行
比如:
python main.py run "请总结下面这段话:问题(50 字内)
ReAct、Plan-and-Execute、Graph 等主流 Agent 架构,上手难度、调试成本、工程落地门槛差异在哪?新手该如何循序渐进?
问题描述(≥200 字,偏技术讨论向)
本问题旨在从实际开发与工程落地视角,对比当前主流的 Agent 架构(包括但不限于 ReAct、Plan-and-Execute、Graph 等)在上手难度、学习曲线、调试复杂度、状态管理、可扩展性等方面的真实差异。重点关注不同架构对新手的友好程度、是否需要复杂的中间件支持、在长流程与多工具调用场景下的稳定性与可观测性,以及从 Demo 到生产环境的改造成本。通过对比各架构的适用场景、坑点与最佳实践,帮助开发者明确学习顺序、技术选型依据,以及在实际项目中优先采用哪种架构更易落地、更易维护、更易迭代。"
返回:
powershell
用户任务:请总结下面这段话:问题(50 字内)
ReAct、Plan-and-Execute、Graph 等主流 Agent 架构,上手难度、调试成本、工程落地门槛差异在...
选中技能:summarize
已加载技能正文(约 598 字符)
正在使用技能执行任务...
--- 执行结果 ---
问题总结(50字内):
对比ReAct、Plan-and-Execute、Graph等Agent架构的上手难度、调试成本与工程落地门槛,为新手提供循序渐进的学习与选型路径。
7 小结
- OpenClaw 的 Skills 是自包含扩展,存放在
skills/,在 openclaw.json 中注册。 - 更新 skills 通过
/skills update @author/skill-name或/skills update --all完成:拉取最新包覆盖本地目录,并由安装器更新 SKILLS.md,使智能体下一轮推理可见最新能力。 - SKILLS.md 是「已安装技能及能力」的清单,随 install/update/remove 同步,与 LangGraph 7. 技能 Skills 的「仅从目录发现」形成对比;demo_codes 复现的正是这套注册表 + SKILLS.md 同步机制。