插件系统
OpenClaw 的插件系统支持扩展渠道、Provider、工具和功能。插件通过标准清单文件描述自身能力。
安装与管理
# 安装插件
openclaw plugins install @openclaw/feishu
openclaw plugins install @openclaw/voice-call
# 查看已安装插件
openclaw plugins list
# 卸载插件
openclaw plugins uninstall @openclaw/feishu插件清单
每个插件通过 manifest 声明自身能力。清单是 JSON 文件,包含以下字段:
| 字段 | 必填 | 说明 |
|---|---|---|
| id | 是 | 唯一标识符 |
| configSchema | 是 | 配置 JSON Schema |
| kind | 否 | 插件类型 |
| channels | 否 | 提供的渠道 |
| providers | 否 | 提供的模型 Provider |
| skills | 否 | 提供的 Skills |
| name / description / version | 否 | 元数据 |
插件 kind 通过 slot 选择功能位置,如 memory(记忆引擎)、context-engine(上下文引擎)等。
开发 Agent 工具
插件可以注册自定义工具供 Agent 使用。工具使用 TypeBox Schema 定义参数:
// 基本工具注册
export function registerTools(ctx) {
ctx.registerTool({
name: "my_tool",
description: "自定义工具",
parameters: Type.Object({
input: Type.String()
}),
execute: async ({ input }) => {
return { result: "done" };
}
});
}工具默认需要通过允许列表启用:
{
agents: {
defaults: {
tools: {
alsoAllow: ["my_tool"]
// 或通过插件 ID: "plugin:my-plugin"
// 或通过工具组: "group:custom"
}
}
}
}渠道与 Provider 插件
插件可以扩展 OpenClaw 支持新的渠道平台或模型供应商。内置插件包括:
- @openclaw/feishu — 飞书/Lark 渠道(已内置)
- @openclaw/voice-call — 语音通话
- @openclaw/zalouser — Zalo 渠道
社区插件可通过 npm 包名安装。
开发注意
- 工具名称建议使用 snake_case,避免与内置工具冲突
- 有副作用的工具(发送消息、写入文件)应标记为需要审批
- 配置验证在启动时执行,Schema 不匹配会阻止加载
- 可选工具(opt-in)需要在允许列表中明确启用