最新消息: 找到一个合适的灵魂(SOUL)和相处方式(AGENTS)是开启AI私人助理的第一步。

OpenClaw 中 Plugins(插件)和 Skills(技能)的区别

85 浏览 0 条评论 openclaw

根据官方文档,我来总结一下 OpenClaw 中 Plugins(插件)和 Skills(技能)的区别

📊 核心区别对比

维度 Plugins (插件) Skills (技能)
本质 TypeScript 代码模块,运行在 Gateway 进程中 Markdown 文档文件夹,教导 AI 如何使用工具
作用 扩展 Gateway 功能(新工具、新命令、新渠道等) 教会 AI 代理如何使用现有工具完成任务
运行位置 Gateway 进程内(in-process) 系统提示词中(作为 AI 的指令)
文件格式 .ts / .js + openclaw.plugin.json SKILL.md (YAML frontmatter + Markdown 说明)
安装方式 openclaw plugins install clawhub install
配置位置 plugins.entries. skills.entries.
是否需要重启 ✅ 是 ❌ 否(会话级热加载)

🔌 Plugins(插件)

插件是代码级别的扩展,可以:

  • ✅ 注册新的 Gateway RPC 方法
  • ✅ 注册 HTTP 路由(如 webhook 接收)
  • ✅ 添加新的 Agent 工具(tools)
  • ✅ 注册 CLI 命令
  • ✅ 添加新的 通信渠道(如 Mattermost、Teams)
  • ✅ 注册 后台服务
  • ✅ 提供 OAuth 认证流程
  • ✅ 包含 Skills(插件可以打包技能)

示例插件:

  • @openclaw/voice-call — 语音通话功能
  • @openclaw/msteams — Microsoft Teams 渠道
  • @openclaw/matrix — Matrix 协议支持

插件结构:

extensions/voice-call/
├── index.ts              # 主入口
├── openclaw.plugin.json  # 插件清单(含 configSchema)
├── package.json
└── skills/               # 可选:包含的技能
    └── voice-call/
        └── SKILL.md

📚 Skills(技能)

技能是文档级别的指导,用于:

  • ✅ 教导 AI 如何使用特定工具
  • ✅ 提供任务的步骤说明
  • ✅ 定义工具调用的最佳实践
  • ✅ 设置环境依赖和安装说明

技能不能:

  • ❌ 直接添加新功能或工具
  • ❌ 修改 Gateway 行为
  • ❌ 注册新的 API 或命令

示例技能:

  • weather — 教 AI 使用 wttr.in 查询天气
  • video-frames — 教 AI 使用 ffmpeg 提取视频帧
  • nano-pdf — 教 AI 使用 nano-pdf CLI 编辑 PDF

技能结构:

skills/weather/
└── SKILL.md              # 包含 YAML frontmatter + 使用说明

SKILL.md 示例:

---
name: weather
description: 获取天气信息
metadata:
  {"openclaw": {"requires": {"bins": ["curl"]}}}
---

# Weather Skill

当用户询问天气时:
1. 使用 web_search 或 wttr.in API
2. 格式化输出为易读的天气预报
...

🔄 两者关系

┌─────────────────────────────────────────────────────────┐
│                    OpenClaw Gateway                      │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐  │
│  │   Plugin    │    │   Plugin    │    │   Plugin    │  │
│  │ voice-call  │    │  msteams    │    │   matrix    │  │
│  │  (代码模块)  │    │  (代码模块)  │    │  (代码模块)  │  │
│  └──────┬──────┘    └──────┬──────┘    └──────┬──────┘  │
│         │                  │                  │          │
│         ▼                  ▼                  ▼          │
│  ┌─────────────────────────────────────────────────────┐ │
│  │              新增的工具/命令/渠道                      │ │
│  └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
                          ▼
┌─────────────────────────────────────────────────────────┐
│                      AI Agent                            │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐  │
│  │   Skill     │    │   Skill     │    │   Skill     │  │
│  │   weather   │    │  video-     │    │   nano-     │  │
│  │  (文档指导) │    │   frames    │    │    pdf      │  │
│  └─────────────┘    └─────────────┘    └─────────────┘  │
│         │                  │                  │          │
│         └──────────────────┴──────────────────┘          │
│                           ▼                              │
│              教会 AI 如何使用这些工具                       │
└─────────────────────────────────────────────────────────┘

简单理解:

  • Plugin = 给系统添加新能力(新工具、新功能)
  • Skill = 教 AI如何使用已有能力(使用说明书)

💡 实际例子

场景:添加语音通话功能

  1. 安装插件 @openclaw/voice-call

    • 添加 voice_call 工具
    • 添加 openclaw voicecall CLI 命令
    • 添加 Twilio 集成代码
  2. 插件自动包含 Skill

    • 教导 AI 何时使用 voice_call 工具
    • 说明参数格式和最佳实践

场景:添加天气查询

  1. 无需插件 — 已有 web_searchweb_fetch 工具
  2. 只需安装 Skill weather
    • 教 AI 使用 wttr.in API
    • 格式化天气输出

总结:插件是"硬实力"(添加功能),技能是"软实力"(指导使用)

与本文相关的文章