概述

每个插件导出一个默认入口对象。SDK 提供三个辅助函数创建它们:definePluginEntry、defineChannelPluginEntry、defineSetupPluginEntry。

核心 API

definePluginEntry

导入: openclaw/plugin-sdk/plugin-entry

用于 Provider 插件、工具插件、钩子插件等非消息渠道类插件。

字段类型必填
idstring是
namestring是
descriptionstring是
kindstring否(独占插槽用:"memory" 或 "context-engine")
configSchemaOpenClawPluginConfigSchema | () => ...否
register(api: OpenClawPluginApi) => void是

defineChannelPluginEntry

导入: openclaw/plugin-sdk/channel-core

包装 definePluginEntry,自动调用 api.registerChannel({ plugin }),并按注册模式分流。

字段类型说明
pluginChannelPluginChannel 插件对象
setRuntime(runtime: PluginRuntime) => void存储运行时引用
registerCliMetadata(api) => voidCLI 描述符(在 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 对象