OpenClaw 中的 Skills 机制与复现

OpenClaw 中的 Skills 机制与复现 摘要OpenClaw 通过Skills与ClawHub扩展智能体能力技能以「目录 SKILL.md / manifest.json」形式存放在工作区skills/下并在openclaw.json中注册安装/更新/移除技能时会同步更新SKILLS.md使智能体在下一轮推理中可见新能力。本文说明 OpenClaw 的 skills 机制、如何更新 skills并结合 LangGraph 7. 技能 Skills 的 Agent Skills 规范在demo_codes中复现「注册表 SKILLS.md 同步」的流程。关键词OpenClawSkillsClawHubSKILLS.mdopenclaw.json技能更新Agent Skills参考Learn OpenClaw - Skills ClawHub案例源代码openclaw skills demo codesLanggraph 7. 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 个SkillsOpenClaw 原生扩展格式ClawHub 或自建符合 AgentSkills 规范Plugins基于 MCP 的集成任意 MCP 兼容服务器对多数用户而言Skills是扩展能力的主要方式。3 ClawHub 与技能的安装/更新/移除3.1 ClawHubClawHub 是 OpenClaw 的社区技能市场类似 npm 对 JavaScript截至 2026 年初已托管 5,700 社区技能。支持按分类、热度、时间浏览以及安装、更新、移除。3.2 安装在 OpenClaw 的对话界面里输入/skills install author/skill-name安装后技能被添加到工作区通常放入skills/目录。在openclaw.json中注册例如{skills:{niceperson/brave-web-search:{enabled:true,config:{apiKey:${BRAVE_API_KEY}}}}}3.3 如何更新 Skills重要更新通过命令完成/skills update author/skill-name /skills update --all单技能更新从 ClawHub或源拉取该技能的最新版本覆盖工作区中对应目录内容并保持openclaw.json中该技能的配置如enabled、config等。全部更新对所有已安装技能执行上述拉取与覆盖。更新后安装器会同步更新 SKILLS.md见下节使智能体在下一轮推理中看到最新能力描述。注意更新前应查看 changelog技能更新可能改变行为、增加权限或破坏现有工作流。3.4 移除/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.mdinstall在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. 技能 SkillsLangGraph Agent Skills的对应关系概念LangGraph 7. 技能 Skills本仓库OpenClaw技能形态文件夹 SKILL.mdYAML frontmatter 正文文件夹 SKILL.md 或 manifest.json index.js/index.py技能库位置skills_library/工作区skills/注册/配置无统一注册表仅扫描目录openclaw.json的skills段enabled、config、sandbox 等能力可见性发现时读 SKILL.md frontmatterSKILLS.md由安装器维护列出已安装技能及能力发现→选择→加载→使用有skill_loader同思路Agent 读 SKILLS.md 与 SKILL.md 执行安装/更新/移除需手动放文件/skills install这里我们写了一个例子 在 LangGraph 7. 技能 Skills 的「发现→选择→加载→使用」基础上复现 OpenClaw 的openclaw.json 风格配置已安装技能列表 enabled/configSKILLS.md在 install/update/remove 时自动同步从「技能库/仓库」安装、更新、移除的模拟流程。6 openclaw skills 复现内容概览技能目录skills/对应 OpenClaw 工作区技能目录。模拟cloawhubclawhub_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 列出仓库中可安装技能我们通过python main.py list可以罗列clawhub_store文件夹中包含的所有skills注意clawhub_store文件夹这里用来模拟cloawhub。比如可安装技能clawhub_store - algorithmic-art(algorithmic-art): Creating algorithmic art using p5.js with seeded randomness... - brand-guidelines(brand-guidelines): Applies Anthropics official brand colors and typography to... - canvas-design(canvas-design): Create beautiful visual artin.png and .pdf documents using... - claude-api(claude-api): Build apps with the Claude API or Anthropic SDK. TRIGGER whe... - doc-coauthoring(doc-coauthoring): Guideusersthrough a structured workflowforco-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): Asetof resources tohelpmewriteall kinds of internal co... - mcp-builder(mcp-builder): Guideforcreating high-quality MCP(Model Context Protocol)... - pdf(pdf): Use this skill whenever the user wants todoanything with P... - pptx(pptx): Use this skill anytimea .pptxfileis involvedinany way... - skill-creator(skill-creator): Create new skills, modify and improve existing skills, and m... - slack-gif-creator(slack-gif-creator): Knowledge and utilitiesforcreating animated GIFs optimized... - summarize(summarize): Use this skill when the user wants to summarize, condense, o... - theme-factory(theme-factory): Toolkitforstyling artifacts with a theme. These artifacts... - web-artifacts-builder(web-artifacts-builder): Suite of toolsforcreating elaborate, multi-component claud... - webapp-testing(webapp-testing): Toolkitforinteracting with and testinglocalweb applicati... - xlsx(xlsx): Use this skill anytimea spreadsheetfileis the primary in...6.2 安装技能我们可以通过python main.pyinstall[skill-name]来安装skill。在这里我们模拟安装skills为从clawhub_store文件夹中找到对应的skill文件夹然后复制黏贴到skills文件夹中。在实际应用其实逻辑也是一样的。比如我们在terminal中运行python main.pyinstallskill-creator返回已安装技能: skill-creator并已更新 openclaw.json 与 SKILLS.md。6.3 移除技能我们可以通过python main.py remove[skill-name]来删除已经安装的 skill。6.4 openclaw.json 与 SKILLS.md我们来看一下 openclaw.json 与 SKILLS.md 的内容openclaw.json{skills:{summarize:{enabled:true,config:{}},docx:{enabled:true,config:{}},skill-creator:{enabled:true,config:{}}}}SKILLS.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_enabledTrue时仅当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_enabledTrue)即结合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 到生产环境的改造成本。通过对比各架构的适用场景、坑点与最佳实践帮助开发者明确学习顺序、技术选型依据以及在实际项目中优先采用哪种架构更易落地、更易维护、更易迭代。返回用户任务请总结下面这段话问题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 同步机制。