概述
每个插件导出一个默认入口对象。SDK 提供三个辅助函数创建它们:definePluginEntry、defineChannelPluginEntry、defineSetupPluginEntry。
核心 API
definePluginEntry
导入: openclaw/plugin-sdk/plugin-entry
用于 Provider 插件、工具插件、钩子插件等非消息渠道类插件。
| 字段 | 类型 | 必填 |
|---|---|---|
id | string | 是 |
name | string | 是 |
description | string | 是 |
kind | string | 否(独占插槽用:"memory" 或 "context-engine") |
configSchema | OpenClawPluginConfigSchema | () => ... | 否 |
register | (api: OpenClawPluginApi) => void | 是 |
defineChannelPluginEntry
导入: openclaw/plugin-sdk/channel-core
包装 definePluginEntry,自动调用 api.registerChannel({ plugin }),并按注册模式分流。
| 字段 | 类型 | 说明 |
|---|---|---|
plugin | ChannelPlugin | Channel 插件对象 |
setRuntime | (runtime: PluginRuntime) => void | 存储运行时引用 |
registerCliMetadata | (api) => void | CLI 描述符(在 cli-metadata/discovery/full 模式下运行) |
registerFull | (api) => void | 仅在 full 模式下运行 |
defineSetupPluginEntry
导入: openclaw/plugin-sdk/channel-core
用于轻量级 setup-entry.ts,仅返回 { plugin },无运行时或 CLI 接线。
注册模式(api.registrationMode)
| 模式 | 时机 | 应注册内容 |
|---|---|---|
"full" | 正常 Gateway 启动 | 全部 |
"discovery" | 只读能力发现 | Channel 注册 + 静态 CLI 描述符 |
"setup-only" | 禁用/未配置 channel | 仅 Channel 注册 |
"setup-runtime" | 带运行时的 setup 流程 | Channel 注册 + 轻量运行时 |
"cli-metadata" | 根帮助/CLI 元数据捕获 | 仅 CLI 描述符 |
插件形状分类
| 形状 | 描述 |
|---|---|
plain-capability | 单一能力类型(如仅 provider) |
hybrid-capability | 多种能力类型(如 provider + speech) |
hook-only | 仅钩子,无能力 |
non-capability | 工具/命令/服务,无能力 |
使用示例
// Provider 插件
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
export default definePluginEntry({
id: "my-plugin",
name: "My Plugin",
description: "Short summary",
register(api) {
api.registerProvider({ /* ... */ });
},
});
// Channel 插件
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
export default defineChannelPluginEntry({
id: "my-channel",
name: "My Channel",
description: "Short summary",
plugin: myChannelPlugin,
setRuntime: store.setRuntime,
registerCliMetadata(api) { api.registerCli(/* ... */); },
registerFull(api) { api.registerGatewayMethod(/* ... */); },
});相关页面
- concepts/plugin-sdk-overview — 注册 API 与子路径参考
- concepts/plugin-sdk-runtime —
api.runtime完整参考 - concepts/plugin-sdk-setup — 清单、setup 入口、延迟加载
- concepts/plugin-sdk-channel-plugins — 构建 ChannelPlugin 对象