OpenClaw 中的 Skills 机制与复现

摘要 :OpenClaw 通过 SkillsClawHub 扩展智能体能力,技能以「目录 + 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 中该技能的配置(如 enabledconfig 等)。
  • 全部更新:对所有已安装技能执行上述拉取与覆盖。
  • 更新后,安装器会同步更新 SKILLS.md(见下节),使智能体在下一轮推理中看到最新能力描述。

注意:更新前应查看 changelog;技能更新可能改变行为、增加权限或破坏现有工作流。

3.4 移除

text 复制代码
/skills remove @author/skill-name

会从工作区删除该技能目录,并从 openclaw.jsonskills 中移除对应项;同样会重新生成 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 的机制可以概括为:

  1. 命令层/skills update @author/skill-name/skills update --all
  2. 内容层 :从 ClawHub(或源)拉取最新技能包,覆盖本地 skills/<skill-id>/
  3. 配置层openclaw.json 中该技能的 enabledconfig 等通常保留。
  4. 可见性层 :安装器重新生成或更新 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.jsonskills 段(enabled、config、sandbox 等)
能力可见性 发现时读 SKILL.md frontmatter SKILLS.md 由安装器维护,列出已安装技能及能力
发现→选择→加载→使用 有(skill_loader) 同思路,Agent 读 SKILLS.mdSKILL.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_skillupdate_skillremove_skillsync_skills_md(),以及基于 LangGraph 7. 技能 Skillsdiscover_skillsload_skilluse_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": {}
    }
  }
}

SKILLS.md

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.jsonSKILLS.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 中删除该项并写回。

SKILLS.md

  • 写入位置 :仅由 sync_skills_md() 写入,默认路径为 DEFAULT_SKILLS_MD(即 SKILLS.md)。
  • 作用 :作为当前已启用技能的能力清单 (面向人或 Agent 的可读列表)。sync_skills_md() 内部会调用 discover_skills(..., only_enabled=True)(即结合 skills/ 与 openclaw.json 中 enabled 为真的项),把每个技能的 nameskill_iddescription 拼成 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 同步机制。
相关推荐
mCell7 小时前
关于 Openclaw,最近的一点思考。
人工智能·安全·aigc
qq_171538858 小时前
纳采问名定佳期:中国传统订婚文化的千年传承与地域风华
人工智能
zzb15808 小时前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
uzong8 小时前
315晚会曝光“AI大模型被投毒”,让AI听话,GEO是什么,带给我们什么思考
人工智能
V搜xhliang02468 小时前
机器人建模(URDF)与仿真配置
大数据·人工智能·深度学习·机器学习·自然语言处理·机器人
房产中介行业研习社8 小时前
2026年3月哪些房源管理系统功能全
大数据·运维·人工智能
Shining05968 小时前
CUDA 编程系列(三)《内存模型与规约优化》
人工智能·学习·其他·学习方法·infinitensor
lisw058 小时前
基于图像的恶意软件分类方法!
人工智能·机器学习
L-影8 小时前
AI中的Transformer:从RNN的困境到横扫一切的革命(下篇)
人工智能·rnn·ai·transformer