OpenClaw v2026.6.11 正式稳定了插件系统——现在你可以用 50 行 TypeScript 给 AI Agent 装上自定义工具,不需要 fork 源码。
为什么你需要关注 OpenClaw 插件系统
OpenClaw 是目前增长最快的开源 AI Agent 框架,截至 2026 年 7 月已突破 25 万 GitHub Stars。它的核心竞争力之一是插件生态系统——允许开发者创建可复用的 Agent 能力模块,就像给手机装 App 一样给 AI Agent 装技能。
v2026.6.11 版本(2026年7月发布)对插件系统做了关键修复:
- 官方插件安装与修复:openclaw plugin install 命令正式稳定
- 插件清单验证:安装前自动校验 openclaw.plugin.json 合法性
- 运行时隔离:插件崩溃不会拖垮整个 Agent 进程
对 AI 创业者来说,这意味着:
你可以把重复的运营流程(查竞品数据、监控关键词、自动发帖)封装成 OpenClaw 插件,让 Agent 7×24 小时自动执行。
核心概念:defineToolPlugin 是什么
OpenClaw SDK 提供了多条路径来创建插件,但对于 90% 的场景,defineToolPlugin 是最简单也最强大的入口。
// 导入 SDK
import { defineToolPlugin } from 'openclaw/plugin-sdk/tool-plugin';
import { Type } from '@sinclair/typebox';
export default defineToolPlugin({
id: 'my-first-plugin',
name: 'My First Plugin',
description: 'A plugin that does something useful.',
// 可选:插件配置项
configSchema: Type.Object({
apiKey: Type.Optional(Type.String({ description: 'API key.' })),
}),
// 定义工具
tools: (tool) => [
tool({
name: 'hello',
label: 'Say Hello',
description: 'Greet someone by name.',
parameters: Type.Object({
name: Type.String({ description: 'Name to greet.' }),
}),
execute: async ({ name }, config) => {
return `Hello, ${name}! Your API key is ${config.apiKey ? 'set' : 'not set'}.`;
},
}),
],
});
50 行代码,一个功能完整的 Agent 插件就写好了。
关键特性:
- TypeBox 自动生成 JSON Schema —— 无需手写参数校验
- execute 返回纯字符串,SDK 自动包装为标准 tool-result 格式
- 工具名、描述、参数全部静态声明,Agent 能自动理解何时调用
实战:构建「竞品监控」插件
下面我们做一个真正有用的插件——让 OpenClaw Agent 能自动查询 GitHub 仓库的最新 Release 信息。
Step 1:创建插件项目
mkdir openclaw-competitor-monitor
cd openclaw-competitor-monitor
npm init -y
npm install @sinclair/typebox
Step 2:创建 openclaw.plugin.json 清单
这是 OpenClaw 在加载代码前先读取的元数据文件:
{
"id": "competitor-monitor",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
⚠️ 注意:
configSchema是必填字段,哪怕为空对象也要写。缺失会导致插件被标记为错误状态。
Step 3:写插件入口 src/index.ts
import { defineToolPlugin } from 'openclaw/plugin-sdk/tool-plugin';
import { Type } from '@sinclair/typebox';
export default defineToolPlugin({
id: 'competitor-monitor',
name: 'Competitor Monitor',
description: 'Monitor competitor GitHub repos for new releases.',
tools: (tool) => [
// 工具1:获取最新 Release
tool({
name: 'check_latest_release',
label: 'Check Latest Release',
description: 'Get the latest release info from a GitHub repo.',
parameters: Type.Object({
owner: Type.String({ description: 'Repo owner (e.g. NousResearch)' }),
repo: Type.String({ description: 'Repo name (e.g. hermes-agent)' }),
}),
execute: async ({ owner, repo }) => {
const url = `https://api.github.com/repos/${owner}/${repo}/releases?per_page=1`;
const resp = await fetch(url, {
headers: { 'Accept': 'application/vnd.github+json' }
});
const data = await resp.json();
if (!data.length) return `No releases found for ${owner}/${repo}.`;
const latest = data[0];
return [
`📦 ${owner}/${repo}`,
`🏷️ ${latest.tag_name}`,
`📅 ${latest.published_at}`,
`📝 ${latest.name || 'No title'}`,
`🔗 ${latest.html_url}`,
].join('\n');
},
}),
// 工具2:对比两个仓库的发布频率
tool({
name: 'compare_release_frequency',
label: 'Compare Release Frequency',
description: 'Compare how often two repos release updates.',
parameters: Type.Object({
owner1: Type.String({ description: 'First repo owner' }),
repo1: Type.String({ description: 'First repo name' }),
owner2: Type.String({ description: 'Second repo owner' }),
repo2: Type.String({ description: 'Second repo name' }),
}),
execute: async ({ owner1, repo1, owner2, repo2 }) => {
const fetchCount = async (owner: string, repo: string) => {
const url = `https://api.github.com/repos/${owner}/${repo}/releases?per_page=100`;
const resp = await fetch(url, {
headers: { 'Accept': 'application/vnd.github+json' }
});
return (await resp.json()).length;
};
const [count1, count2] = await Promise.all([
fetchCount(owner1, repo1),
fetchCount(owner2, repo2),
]);
return [
`📊 最近100个Release对比:`,
`• ${owner1}/${repo1}: ${count1} releases`,
`• ${owner2}/${repo2}: ${count2} releases`,
`🏆 ${count1 > count2 ? repo1 : repo2} 更新更频繁`,
].join('\n');
},
}),
],
});
Step 4:配置 package.json 入口
{
"name": "openclaw-competitor-monitor",
"version": "1.0.0",
"openclaw": {
"extensions": ["./src/index.ts"]
}
}
Step 5:安装到 OpenClaw
# 全局安装
openclaw plugin install ./openclaw-competitor-monitor
# 验证安装
openclaw plugins list
# 输出应包含: competitor-monitor Competitor Monitor ✅
# 检查插件详情
openclaw plugins inspect competitor-monitor
安装成功后,Agent 对话中就能直接调用这两个工具了:
你: "帮我查一下 NousResearch/hermes-agent 和 openclaw/openclaw 谁最近更新更频繁"
Agent: [自动调用 compare_release_frequency 工具]
📊 最近100个Release对比:
• NousResearch/hermes-agent: 18 releases
• openclaw/openclaw: 43 releases
🏆 openclaw 更新更频繁
进阶:definePluginEntry 全能型插件
当你的插件需要不止是工具时(比如注册新的模型提供商、消息渠道),改用 definePluginEntry:
import { definePluginEntry } from 'openclaw/plugin-sdk/plugin-entry';
export default definePluginEntry({
id: 'my-advanced-plugin',
name: 'Advanced Plugin',
description: 'Multi-capability plugin.',
register(api) {
// 注册自定义工具
api.registerTool({ /* ... */ });
// 注册新的 LLM 提供商
api.registerProvider({ /* ... */ });
// 注册 Web 搜索提供商
api.registerWebSearchProvider({ /* ... */ });
// 注册生命周期钩子
api.registerHook({ /* ... */ });
},
});
api 对象提供 20+ 种注册方法,覆盖从模型推理到语音合成的全部能力。
对 AI 创业者的三大实战场景
场景1:自动化运营监控
插件功能:定时检查竞争对手的定价页/产品页变化
Agent 行为:发现变化 → 自动生成分析报告 → 推送到 Telegram
节省时间:从每周手动检查 2 小时 → 全自动 0 分钟
场景2:客户数据管道
插件功能:连接 Stripe API + 内部数据库
Agent 行为:用户说 "这个月收入多少" → Agent 调插件查 Stripe → 生成收入报表
节省时间:从登录后台拉数据 10 分钟 → 一句话 5 秒
场景3:内容发布流水线
插件功能:封装微信公众号草稿 API + 封面图生成
Agent 行为:给 Agent 一段长文 → 自动分段、配图、排版 → 提交草稿箱
节省时间:从 45 分钟手动排版 → 插件 3 分钟全自动
💡 OpenClaw 插件可以发布到 ClawHub 市场,如果你做的是一个通用插件(比如「Stripe 收入查询」),可以上架让其他 OpenClaw 用户安装,形成 SaaS 化的插件商业模式。
常见问题
Q: 插件支持 TypeScript 还是必须编译成 JS?
A: 两者都支持。开发时用 .ts 源码即可(extensions 字段),生产建议编译到 dist/ 并通过 runtimeExtensions 指向 JS 产物,避免运行时 TypeScript 编译开销。
Q: 插件能访问 OpenClaw 的内部状态吗?
A: 工具插件(defineToolPlugin)收到的是隔离的 config 对象,无法访问 Agent 内存或会话。如需深度集成,用 definePluginEntry 的 api.runtime 命名空间。
Q: 插件报错会怎样?
A: v2026.6.11 新增了插件隔离机制——工具执行报错不会崩溃 Agent,错误信息会以 tool-result 格式返回给 Agent,Agent 可以自我纠正或换方案。
Q: 如何调试插件?
A: openclaw plugins inspect <id> 查看插件形态(shape),openclaw plugins build 生成静态清单后提前校验工具签名。
行动建议
- 今天:克隆 OpenClaw 官方插件模板仓库,跑通
defineToolPlugin的最小示例 - 本周:选一个你每天重复做的运营任务,用插件自动化(推荐从 GitHub API 或 RSS 监控开始)
- 本月:把插件发布到 ClawHub,让 25 万 OpenClaw 用户发现你的作品
本文基于 OpenClaw v2026.6.11 文档撰写。插件 SDK 快速迭代中,最新 API 参考 docs.openclaw.ai/plugins。
