OpenClaw进阶篇:Tool、Skill、Plugin——一文讲清它们的区别
Tool是OpenClaw的底层执行单元,是AI真正能调用的功能。// OpenClaw内置的Tool示例description: "查询指定城市的天气",description: "发送邮件",description: "生成图片",Skill是调用配置包什么时候触发(trigger)调用哪个Tool参数怎么构造结果怎么返回---description: 查询城市天气trigger:- 北京天气
·
很多初学者容易混淆OpenClaw的三个核心概念:Tool、Skill、Plugin。
今天用一篇文章彻底讲清楚。
一句话概括
- Tool = 底层能力(AI能调用的具体功能)
- Skill = 能力说明书(告诉AI什么时候、怎么用Tool)
- Plugin = 扩展入口(为OpenClaw添加新能力)
为什么要区分它们?
看一个比喻:
你有一个工具箱(Plugin)
里面有很多工具(Tool)
但你得给AI写说明书(Skill)
它才知道什么时候用什么工具
这是OpenClaw的设计哲学:能力与调用分离。
深入理解 Tool
什么是Tool?
Tool是OpenClaw的底层执行单元,是AI真正能调用的功能。
// OpenClaw内置的Tool示例
{
name: "weather-query",
description: "查询指定城市的天气",
params: { city: "string" }
}
{
name: "email-send",
description: "发送邮件",
params: { to: "string", subject: "string", body: "string" }
}
{
name: "image_generate",
description: "生成图片",
params: { prompt: "string", model: "string" }
}
Tool的特点
- 底层执行 — 直接调用API或系统命令
- 无状态 — 不记上下文,只管执行
- 原子性 — 每个Tool只做一件事
- 内置+自定义 — 可自己开发新Tool
Tool从哪里来?
┌─────────────────────────────────────┐
│ Tool 来源 │
├─────────────────────────────────────┤
│ 1. OpenClaw 内置Tool │
│ (message, browser, exec, image) │
│ │
│ 2. Plugin 提供 │
│ (飞书插件提供 feishu.send) │
│ │
│ 3. Skill 暴露 │
│ (通过SKILL.md声明) │
└─────────────────────────────────────┘
深入理解 Skill
什么是Skill?
Skill是调用配置包,告诉AI:
- 什么时候触发(trigger)
- 调用哪个Tool
- 参数怎么构造
- 结果怎么返回
---
name: weather-query
description: 查询城市天气
trigger:
- 北京天气
- 上海天气
- weather
tools:
- name: weather-query
---
# 当用户说"北京天气"时:
# 1. 触发这个Skill
# 2. 调用 weather-query Tool
# 3. 提取城市名"北京"作为参数
# 4. 返回格式化结果
Skill的核心作用
1. 触发条件匹配
# 精确匹配
trigger: "北京天气"
# 包含匹配(任意包含"天气"都会触发)
trigger: "天气"
# 正则匹配
trigger: /.*天气.*/
2. 参数提取
Skill能从用户输入中自动提取参数:
# 用户说"查一下北京后天天气"
# Skill自动提取:
# - city: "北京"
# - date: "后天"
3. 结果格式化
Tool返回原始数据,Skill负责美化输出:
// Tool返回
{ temp: 15, humidity: 65, condition: "晴" }
// Skill格式化输出
北京今日天气:
🌡️ 温度:15°
💧 湿度:65%
🌤️ 天气:晴
Skill vs Tool 对比
| 维度 | Tool | Skill |
|---|---|---|
| 定位 | 底层执行单元 | 调用配置包 |
| 触发 | AI自主判断 | 关键词/正则触发 |
| 参数 | 需要显式指定 | 自动提取 |
| 结果 | 原始数据 | 格式化输出 |
| 复用 | 高(通用) | 中(特定场景) |
| 开发 | 需要写代码 | 写配置即可 |
举个例子
没有Skill(直接调Tool):
用户:查下北京天气
AI:调用 weather-query Tool(city="北京")
Tool返回:{temp:15, condition:"晴"}
AI:给你查到了,北京现在15度,晴天
有Skill(智能触发):
用户:北京天气咋样
AI:匹配到 weather Skill,触发
Skill自动提取城市、调用Tool、格式化输出
AI:北京今日天气:🌡️ 15° | 💧 65% | 🌤️ 晴
深入理解 Plugin
什么是Plugin?
Plugin是功能扩展包,为OpenClaw添加全新能力:
- 新渠道(飞书、Telegram、Discord插件)
- 新模型(Claude、DeepSeek插件)
- 新Tool(天气API、数据库操作插件)
Plugin架构
┌─────────────────────────────────────────────┐
│ OpenClaw Gateway │
├─────────────────────────────────────────────┤
│ 渠道 Plugin │ 模型 Plugin │ Tool插件 │
│ ───────────── │ ───────────── │ ──────── │
│ • 飞书 │ • Claude │ • 天气 │
│ • Telegram │ • Gemini │ • 数据库 │
│ • Discord │ • DeepSeek │ • 邮件 │
└─────────────────────────────────────────────┘
↓
Tool集合(供Skill调用)
Plugin vs Skill
| 维度 | Plugin | Skill |
|---|---|---|
| 定位 | 功能扩展 | 能力配置 |
| 范围 | 整个OpenClaw | 当前Agent |
| 开发 | 需要写代码 | 写配置即可 |
| 粒度 | 粗(渠道/模型/Tool) | 细(特定场景) |
三者协作流程
用户输入 → Skill匹配 → Skill调用Tool → Tool执行 → Skill格式化 → AI回复
│ │ │
│ │ └────────── 来自Plugin
│ │
│ └────────────────────── 来自Skill配置
│
└────────────────────────────────── 触发条件
完整示例
# weather-skill/SKILL.md
---
name: weather-reminder
description: 天气查询并发送提醒
trigger: 天气提醒
tools:
- name: weather-query
- name: email-send
---
# 执行逻辑(JavaScript)
const weather = await callTool('weather-query', { city });
if (weather.includes('雨')) {
await callTool('email-send', {
to: user.email,
body: '记得带伞!'
});
}
return '已发送提醒!';
执行流程:
用户:"帮我提醒北京天气到 xxx@email.com"
↓
Skill "weather-reminder" 匹配触发
↓
调用 Plugin 提供的 weather-query Tool
↓
调用 Plugin 提供的 email-send Tool
↓
Skill 格式化返回结果
↓
AI:"✅ 已查询北京天气,发送了带伞提醒!"
常见误区
❌ 误区1:Tool = Skill
很多人把两者混为一谈。
纠正:Tool是"工具",Skill是"说明书"。Tool本身不知道什么时候该用,只有配上Skill才智能。
❌ 误区2:Skill只能调用一个Tool
纠正:一个Skill可以调用多个Tool,这正是进阶篇要讲的多Tool协同。
❌ 误区3:Plugin太复杂,不需要
纠正:Plugin是能力来源。飞书接入、天气查询、图片生成——都是Plugin提供的。
什么时候用什么?
| 场景 | 需要做的 |
|---|---|
| 想接入新渠道(飞书/Telegram) | 安装 Plugin |
| 想让AI学会新能力(查天气/股票) | 开发 Skill |
| 想增强现有能力(格式化输出) | 优化 Skill |
| 想调用外部API | Plugin + Skill |
总结
今天我们学会了:
- ✅ Tool — 底层执行单元,AI真正调用的功能
- ✅ Skill — 调用配置包,告诉AI何时、如何用Tool
- ✅ Plugin — 功能扩展包,提供Tool来源
- ✅ 三者协作流程
- ✅ 常见误区澄清
记住这个比喻:
Plugin是工具箱,Tool是箱里的具体工具,Skill是说明书。
有了说明书,AI才知道什么场景用什么工具。
原创不易,欢迎转发分享。
更多推荐




所有评论(0)