让 AI 真正“动手”:OpenClaw Skill 执行机制深度解析
从意图到行动,一文看懂智能体如何调用你的脚本
引子:脚本的“最后一公里”困境
每个开发者的硬盘深处都躺着几十上百个写好的脚本。它们解决了各种特定问题——PDF 处理、数据分析、文件批量重命名——但每次调用都需要手动切到终端、输入命令、拼接参数。
这些脚本就像被锁在黑匣子里的宝藏,只有编写者自己知道如何开启。AI 助手能看到它们,却无法真正使用它们。
OpenClaw Skill 体系,就是为了打通这“最后一公里”而生。
一、Skill 是什么?
Skill 本质上是一个标准化的能力描述层,它充当智能体和外部工具之间的桥梁。它不是黑盒插件,而是遵循固定规范的能力扩展包。
三级渐进式披露架构
OpenClaw Skill 采用独特的三级设计,确保即使安装了上百个 Skill,AI 也能高效找到最合适的那一个:
|
|
|
|
|---|---|---|
| 第一级:名片 |
|
|
| 第二级:说明书 | SKILL.md
|
|
| 第三级:执行逻辑 |
|
|
标准目录结构
skill-name/├── SKILL.md # 核心:元数据 + 使用指南├── scripts/ # 可执行脚本(Python/Shell/JS)├── references/ # API 文档、Schema└── assets/ # 模板、图片等资源
二、SKILL.md:给 AI 看的“操作手册”
SKILL.md 是 Skill 的灵魂,采用 YAML Frontmatter + Markdown 正文 的双层结构。
YAML 元数据:告诉 AI“你是谁”
name: pdf-rotatedescription: "旋转 PDF 页面,支持 90/180/270 度批量处理"metadata:openclaw:emoji: "📄"requires:bins: ["python3", "pdftk"]
关键字段:
-
description:触发核心,AI 据此判断是否调用 -
requires.bins:依赖声明,不满足则 Skill 不加载
Markdown 正文:告诉 AI“怎么用”
正文用自然语言详细描述:
-
何时使用 / 何时不用
-
操作步骤和命令示例
-
参数说明和常见问题
描述质量直接决定调用成功率。 AI 不调用或总出错,问题往往在描述文件,而非脚本本身。
三、完整执行链路:从意图到行动
当用户发起请求,整个链路分四步走:
用户提问 → 匹配 description → 加载 SKILL.md →调用 exec 执行脚本 → 返回结果
1️⃣ 发现阶段
OpenClaw Gateway 启动时,会读取所有 Skill 的描述信息作为“工具”提供给大模型。AI 根据description字段做初步匹配。
2️⃣ 决策阶段
匹配成功后,AI 加载 Skill.md 正文,理解使用方法和参数规则,然后生成完整的 Shell 命令。
3️⃣ 执行阶段:exec 工具接手
这是最关键的一环。AI 调用 exec 工具来执行具体命令(如 python3 rotate.py --angle 90)。
exec 两种执行模式:
-
前台模式(默认):等待命令结束,直接返回输出,适合快速任务
-
后台模式:适合耗时任务,可通过
background: true或yieldMs触发,立即返回sessionId供后续管理
关键参数:
|
|
|
|---|---|
workdir |
|
env |
|
timeout |
|
pty |
|
host |
gateway/sandbox/node |
安全控制
OpenClaw 提供多层安全机制:
-
依赖门控:
requires.bins不满足时 Skill 不加载 -
路径隔离:支持沙箱执行
-
变量保护:拒绝 PATH 和 LD_* 等关键变量覆盖
-
审批机制:高危命令可配置人工确认
四、执行环境的本质
exec 工具本身不包含 Python 执行能力。它的本质是在指定主机上运行 Shell 命令,最终调用的是本机安装的 Python 解释器。
脚本能正常运行的前提:
1. 目标主机已安装 Python
2. 依赖包已提前装好
3. SKILL.md中声明了所需工具
OpenClaw 的设计哲学是 “声明,而非强制安装” ——检查依赖是否满足,但不自动安装系统包。
五、一次完整的执行流程
用户:“帮我把这个 PDF 旋转 90 度”↓AI 扫描 Skill 描述,匹配到 pdf-rotate↓AI 读取 SKILL.md,获取使用方法↓AI 生成命令:python3 /path/to/rotate.py --angle 90 -f report.pdf↓AI 调用 exec 工具执行命令↓exec 在本机 Shell 中运行↓Python 解释器执行 rotate.py↓exec 捕获输出返回给 AI↓AI 回复:“PDF 已旋转 90 度,保存为 report_rotated.pdf”
结语:从“建议者”到“执行者”
Skill 的本质,是将“命令式执行”转化为“意图式响应”。
它让 AI 在合适的时机自动调用你的脚本,成为感知和改造世界的延伸器官。从此,AI 不再只是一个只会提建议的聊天机器人,而是一个能真正替你“动手”的数字助理。
而这,才是智能体该有的样子。
夜雨聆风