OpenClaw养虾插件清单与使用指南
在OpenClaw生态中,插件是扩展其核心能力的关键。而这一切的起点,都始于一份清晰、规范的插件清单(Plugin Manifest)。这份清单定义了插件的身份、能力和行为准则,确保网关能够正确识别、加载并与之交互。今天,我们就来深入拆解OpenClaw插件清单的构成要素与开发约定。
package.json 要求
每个OpenClaw插件的身份证明,都内置于其package.json文件中。一个合规的最小化结构示例如下:
{
"name": "@openclaw/my-plugin",
"version": "1.0.0",
"description": "我的 OpenClaw 插件",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"openclaw": {
"type": "tool",
"displayName": "我的工具插件",
"minGatewayVersion": "0.5.0",
"permissions": ["network", "file-read"]
},
"keywords": ["openclaw", "openclaw-plugin"],
"license": "MIT"
}
关键在于那个特殊的openclaw字段,它是网关识别插件的唯一标识。
清单字段详解
让我们聚焦于openclaw节点下的各个字段,它们共同勾勒出插件的轮廓。
openclaw 节点字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
string | ✅ | 插件类型:channel、tool、hook |
displayName |
string | ✅ | 面向用户的友好显示名称 |
minGatewayVersion |
string | ❌ | 插件运行所要求的最低网关版本 |
permissions |
string[] | ❌ | 插件运行所需的能力权限列表 |
configSchema |
object | ❌ | 用于定义插件配置项的JSON Schema对象 |
multiInstance |
boolean | ❌ | 是否支持同时运行多个实例(默认 false) |
其中,permissions字段的声明尤为重要。它相当于插件的“能力说明书”,让用户在安装前就能清晰了解插件会访问哪些系统资源,例如网络(network)、文件读取(file-read)、文件写入(file-write)或执行命令(exec)。这是一种建立信任的良好实践。
插件类型
OpenClaw插件主要分为三种类型,每种都有其特定的接口和用途。
Channel(渠道插件)
这类插件负责与外部消息平台(如微信、钉钉、Slack)对接,处理消息的接收与发送。其基本结构如下:
import { ChannelPlugin } from '@openclaw/sdk'
const plugin: ChannelPlugin = {
type: 'channel',
name: 'my-channel',
async onMessage(message, context) {
// 处理来自渠道的消息
},
async sendMessage(to, content, context) {
// 向渠道发送消息
}
}
export default plugin
Tool(工具插件)
工具插件用于扩展AI模型的能力,使其能够调用外部API或执行特定任务。一个工具插件可以包含多个工具:
import { ToolPlugin } from '@openclaw/sdk'
const plugin: ToolPlugin = {
type: 'tool',
tools: [{
name: 'my_tool',
description: '工具描述',
parameters: { /* JSON Schema */ },
handler: async (params, ctx) => {
return { result: 'done' }
}
}]
}
export default plugin
Hook(钩子插件)
钩子插件用于在消息处理的生命周期中注入自定义逻辑,实现拦截、修改或增强功能。
import { HookPlugin } from '@openclaw/sdk'
const plugin: HookPlugin = {
type: 'hook',
hooks: {
'message:before': async (message, ctx) => {
// 消息处理前的拦截逻辑
return message
},
'message:after': async (response, ctx) => {
// 消息处理后的后处理逻辑
}
}
}
export default plugin
导出约定
这里有一个必须遵守的硬性规则:插件必须使用默认导出(export default)。网关在加载时只会识别默认导出的对象,命名导出将被忽略。
// ✅ 正确
export default plugin
// ❌ 错误
export { plugin }
生命周期钩子
为了让插件能够优雅地管理资源,OpenClaw SDK提供了一系列生命周期钩子。实现这些方法可以让插件在加载、就绪、卸载等关键时刻执行相应操作。
| 钩子 | 触发时机 | 典型用途 |
|---|---|---|
onLoad |
插件被加载时 | 初始化数据库连接、加载配置文件等资源 |
onReady |
网关完全就绪后 | 执行依赖网关其他组件的启动后逻辑 |
onUnload |
插件被卸载时 | 关闭连接、释放内存、清理临时文件 |
onConfigChange |
用户修改插件配置后 | 实现配置的热更新,无需重启插件 |
一个简单的实现示例:
export default {
type: 'tool',
async onLoad(config, gateway) {
console.log('插件加载完成')
// 初始化逻辑
},
async onUnload() {
console.log('插件已卸载,资源已释放')
// 清理逻辑
}
}
本地测试
在发布之前,充分的本地测试至关重要。OpenClaw CLI提供了便捷的链接命令,允许你将本地开发的插件目录链接到网关中进行实时调试:
openclaw plugins link ./my-plugin
执行此命令后,以调试模式启动网关,即可加载并测试你的本地插件。
发布到 npm
当插件开发测试完毕,就可以准备发布到npm仓库,供他人使用了。流程非常标准:
# 构建生产代码
npm run build
# 登录 npm 账户
npm login
# 发布包(公开)
npm publish --access public
在点击发布按钮前,建议对照以下清单做最后确认:
- ✅
package.json中的版本号已按语义化版本规范更新。 - ✅
openclaw字段完整且正确。 - ✅ 项目包含清晰的README文档。
- ✅ 所有测试用例均已通过。
遵循上述规范,你就能构建出结构清晰、行为可靠、易于分发的OpenClaw插件,从而为整个生态贡献你的独特能力。
相关攻略
当使用OpenClaw AI批量生成标题时,如果发现结果与目标平台的调性不符,或者偏离了用户的预期,这通常不是工具本身的问题,而更可能是指令的“模糊地带”在作祟。模糊的提示词、缺失的关键语义锚点,或是未生效的格式约束,都会让模型的“自由发挥”跑偏方向。别担心,通过下面这套系统性的方法,你可以精准地“
当您搭建端到端自动化内容创作流程时,如果遇到OpenClaw框架无法正常生成内容、格式化文档或执行发布任务的情况,问题根源通常集中在几个核心环节。模型连接异常、关键技能模块失效、浏览器自动化环境故障或记忆索引损坏,都可能导致整个工作流中断。无需担忧,这类系统性问题大多可以通过结构化排查来解决。遵循以
在复杂工具操作、长周期任务执行以及动态人机协作等智能体应用场景中,一个普遍存在的挑战是:如何将单个智能体探索获得的成功经验有效沉淀,并使其能够被其他智能体轻松复用与继承。传统方法,如直接保存原始操作日志、记录线性工作流或进行事后总结,往往存在信息冗杂、结构松散、迁移成本高等问题。这好比一位技艺精湛的
想要精准控制Claude的输出格式,确保生成内容结构严谨、无冗余信息?这确实是许多开发者和内容创作者在利用AI辅助工作时遇到的核心痛点。Claude虽然功能强大,但有时其“自由发挥”的特性会导致输出包含不必要的解释或偏离预设框架。无需担忧,掌握以下五个核心技巧,就能像为Claude设定精确指令集一样
部署了OpenClaw,却发现AI绘画和语音交互功能用不了?这通常不是核心框架的问题,而是相关的多模态插件没有就位,或者依赖的本地服务没有正确配置。简单来说,你需要为系统“安装”上眼睛和耳朵。下面,我们就来一步步打通这两个关键能力的配置链路。 一、配置AI绘画能力(图像生成) 想让OpenClaw根
热门专题
热门推荐
今年三月,谷歌DeepMind高级科学家Alexander Lerchner发表了一篇重磅论文,其核心结论清晰而深刻:基于算法的符号操作在结构上注定无法产生真正的意识——无论未来模型规模如何庞大、架构如何精巧,甚至是否为其配备仿生身体,这一根本性限制或许都无法被跨越。 仔细审视这一论断,它并非一个关
研究针对AI助手难以执行复杂屏幕操作的问题,构建了CUActSpot评测基准,通过代码渲染自动生成含精确坐标的多样化训练数据,并训练了一个40亿参数模型。实验表明,提升训练数据多样性比单纯扩大数据规模更能有效增强模型通用操作能力,并展现出跨任务泛化潜力。
《迷你世界》于2026年5月15日发布全新激活码,玩家可凭兑换码领取酷炫角色装扮、迷你币及稀有道具,请及时复制有效激活码前往游戏内使用。
《我的世界》于2026年5月17日发布免费兑换码EMMMyxhjVHMApsb2,可兑换游戏道具与装饰。兑换码常有时间或次数限制,请尽快使用。更多兑换码可查看官方汇总页面。





