本页内容
本页内容
插件 SDK 参考
插件 SDK DefineChannelPluginEntry 帮助程序
使用特定于通道的接线和模式门控回调包装 definePluginEntry 的入口助手。 插件入口点部分参考。
defineChannelPluginEntry
导入: openclaw/plugin-sdk/channel-core
使用特定于通道的接线包装 definePluginEntry:它自动调用 api.registerChannel({ plugin }),公开可选的根帮助 CLI 元数据接口,并在注册模式下控制功能和完整运行时回调。
| 字段 | 类型 | 必需的 | 默认值 |
|---|---|---|---|
id |
string |
是 | - |
name |
string |
是 | - |
description |
string |
是 | - |
plugin |
ChannelPlugin |
是 | - |
configSchema |
OpenClawPluginConfigSchema | () => OpenClawPluginConfigSchema |
No | 空对象 schema |
setRuntime |
(runtime: PluginRuntime) => void |
No | - |
registerCliMetadata |
(api: OpenClawPluginApi) => void |
No | - |
registerFull |
(api: OpenClawPluginApi) => void |
No | - |
registerCapabilities |
(api: OpenClawPluginApi) => void |
No | - |
每个注册模式运行的回调(注册模式下的完整表):
setRuntime在除"cli-metadata"和"tool-discovery"之外的所有模式下运行。在此处保存运行时引用,通常通过createPluginRuntimeStore完成。registerCliMetadata适用于"cli-metadata"、"discovery"和"full"。将其用作通道拥有的 CLI 描述符的主要位置,以便根帮助保持非激活状态,发现快照包括静态命令元数据,并且正常的 CLI 注册与完整插件加载保持兼容。registerFull仅在"full"和"tool-discovery"模式下运行。对于"tool-discovery",它会替代通道注册:OpenClaw 会完全跳过registerChannel/setRuntime,而是调用完整运行时回调,随后调用能力回调。将工具注册放在registerFull中,将能力提供者放在registerCapabilities中。registerCapabilities在"discovery"、"full"和"tool-discovery"模式下运行。在此处注册不产生副作用的已声明提供者,以便只读能力发现可以找到它们,而不会启动套接字、客户端、工作线程或服务。- Discovery注册是非激活的,不是免导入的:OpenClaw可以评估可信插件条目和通道插件模块来构建快照。保持顶级导入无副作用,并将套接字、客户端、工作人员和服务放在
"full"-only 路径后面。 - 与
definePluginEntry一样,configSchema可以是延迟工厂;OpenClaw 会在首次访问时缓存解析后的 schema。
CLI 注册:
- 将
api.registerCli(..., { descriptors: [...] })用于插件拥有的根 CLI 命令,您希望延迟加载而不从根 CLI 解析树中消失。描述符名称必须匹配字母、数字、连字符和下划线,以字母或数字开头; OpenClaw 在呈现帮助之前拒绝其他形状并从描述中去除终端控制序列。覆盖注册商公开的每个顶级命令根,并在插件清单的cliCommands字段中声明相同的名称、描述和子命令标记,以便根帮助不会导入插件代码。commands独自留在渴望兼容的道路上。 - Root 描述符可以为 JSON、JSONL 或其他不是由
--json单独选择的机器可读标准输出模式定义同步、纯machineOutput({ argv, stdoutIsTTY })解析器。使用openclaw/plugin-sdk/cli-argv中的getRootOptionAwareCommandPath解析命令令牌。将描述符保存在轻量级插件本地模块中,并从cli-metadata.ts和完整注册中重用它;不要导入运行时桶来构造元数据。会议运行时 shell 通过cli.descriptor接受该描述符。嵌套描述符不会公开machineOutput。 - 对于成对节点的功能命令,使用
api.registerNodeCliFeature(...),使其归入openclaw nodes下(等价于registerCli(registrar, { parentPath: ["nodes"], ... }))。 - 对于其他嵌套插件命令,添加
parentPath,并在传递给注册器的program对象上注册命令;OpenClaw 会在调用插件前将其解析为父命令。 - 对于通道插件,从
registerCliMetadata注册 CLI 描述符,并让registerFull专注于仅运行时相关的工作。 - 如果
registerFull还注册网关 RPC 方法,请将其置于插件专用前缀下。保留的核心管理命名空间(config.*、exec.approvals.*、wizard.*、update.*)始终会强制使用operator.admin。
本页有帮助吗?