插件系统概述
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
| 类型 | 说明 | 示例 |
|---|---|---|
PluginToolRegistration | Agent 可用工具 | GitHub 工具、浏览器工具 |
PluginChannelRegistration | 通道插件 + dock | Telegram、Discord |
PluginHookRegistration | 生命周期钩子 | 消息拦截、审计日志 |
PluginHttpRegistration | HTTP 路由 | 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
}章节导航
- 插件 SDK — OpenClawPluginApi、工厂模式、上下文
- Extension 加载 — 动态导入、manifest 解析
- Hooks 机制 — 生命周期钩子、事件系统