Skip to content

插件系统概述

OpenClaw 的插件系统让通道、工具、Hooks 和 HTTP 路由都能以可插拔的方式注册和加载。34 个 extension 和 52 个 skill 都是通过这套系统接入的。

源码位置

src/plugins/
├── registry.ts          # 插件注册表
├── types.ts             # 核心类型定义
├── loader.ts            # 动态加载器
├── hooks.ts             # Hooks 系统
└── *.test.ts            # 测试文件

extensions/              # 34 个扩展
├── msteams/
├── matrix/
├── memory-lancedb/
├── diagnostics-otel/
└── ...

skills/                  # 52 个技能
├── github/
├── gmail/
├── google-calendar/
└── ...

插件注册架构

五种注册类型

Source: src/plugins/registry.ts

类型说明示例
PluginToolRegistrationAgent 可用工具GitHub 工具、浏览器工具
PluginChannelRegistration通道插件 + dockTelegram、Discord
PluginHookRegistration生命周期钩子消息拦截、审计日志
PluginHttpRegistrationHTTP 路由Webhook 端点
PluginServiceRegistration后台服务定时同步、消息轮询

PluginRecord

typescript
// src/plugins/registry.ts (simplified)
interface PluginRecord {
  id: string;            // Unique plugin identifier
  name: string;          // Display name
  version: string;       // Semantic version
  kind: PluginKind;      // "extension" | "skill" | "core"
  origin: string;        // Source path or package name
  manifest: PluginManifest;  // Plugin manifest data
}

章节导航

  1. 插件 SDK — OpenClawPluginApi、工厂模式、上下文
  2. Extension 加载 — 动态导入、manifest 解析
  3. Hooks 机制 — 生命周期钩子、事件系统

OpenClaw 源码学习教程