关键词:SKILL.md|工具自描述|Markdown 解析|函数调用|动态注册|开发者友好
在传统 AI 系统中,为智能体添加新能力(如“查询数据库”或“部署服务”)通常需要:
- 编写 TypeScript 函数
- 注册到工具列表
- 更新提示词(prompt)
- 重启服务
这一过程对开发者不友好,更无法由非技术人员参与。OpenClaw 提出一种全新范式:技能即文档(Skill-as-Documentation)。
其核心载体是 —— 一个纯 Markdown 文件,既可被人类阅读,也能被 AI 和系统解析,自动注册为可用工具。无需代码、无需重启,只需写一篇清晰的说明文档,AI 就能学会新技能。
本文将详解 的设计哲学、语法规范、解析机制与工程价值。

让任何懂业务的人(开发者、运维、产品经理)都能通过写文档,教会 AI 新能力。
每个 文件包含三个标准化区块:
- 标题 = 工具名称()
- 描述 = 工具功能摘要(注入 prompt)
- 使用 格式
- 支持类型:、、、
- 可选标记:、
- 可包含:
- Shell 命令(由 执行)
- HTTP 请求(由内置 HTTP 客户端执行)
- 调用其他技能(组合技能)
- 支持 Mustache 模板变量:
一份文档,三重用途:人类阅读、AI 理解、系统执行。
- 每个智能体拥有独立 目录
- 文件名自动转为工具 ID(下划线命名)
- OpenClaw 启动时扫描所有
- 热重载支持:文件修改后自动重新解析(无需重启)
- 解析失败时记录警告,不影响其他技能
所见即所得,改完即生效。
负责将 转为结构化工具定义:
- 按标题分割区块
- 提取参数
- 识别执行指令
- 若以 或 开头 → HTTP 工具
- 若包含 或 → Shell 工具
- 否则视为描述性文本(仅用于 prompt)
输出可直接注入 LLM 的 字段。
- 自动注入环境变量(如 → )
- 支持 POST/PUT,自动序列openclaw skills 教程化 JSON body
- 交由 执行(继承三层隔离模型)
- 自动申请权限提升(如需)
- 系统识别 xxx“ 模式
- 自动编排多步工具调用
- 支持中间结果传递
技能可组合,能力可叠加。
虽然易写,但安全不容妥协:
- 仅允许引用预定义的 env 变量:
- 禁止 、 等敏感变量
- 可配置允许的域名:
- 所有 Shell 技能默认需用户审批(即使写在 中)
开放不等于放任。
- OpenClaw 自动加载,注册新工具
用户:“订单 ORD-2024-089 商品破损,请退款。”
AI 行为:
- 识别意图 → 调用
- 自动填充 为当前客服 ID
- 发送 HTTP 请求
- 返回:“退款已提交,预计 3 个工作日内到账。”
从需求到上线,只需写一篇文档。

的本质,是将“工具定义”从代码中解放出来,使其成为一种声明式、可协作、自包含的知识单元。它模糊了“文档”与“程序”的边界,让 AI 的能力扩展变得像写 Wiki 一样简单。
这不仅是工程优化,更是人机协作范式的升级——未来,教会 AI 做事,或许只需说一句:“我写了个 SKILL.md,你看看能不能用。”
在下一篇中,我们将探讨 OpenClaw 的 Web UI 架构,解析其如何实现低延迟、高一致性的多端体验。
下一篇预告:
第 14 篇:Web UI 架构 —— 如何实现与 CLI/WhatsApp 一致的交互体验
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/281233.html原文链接:https://javaforall.net
