OpenClaw 2026.3.25 版本带来了插件系统的全面重构,这是本次更新的核心改进之一。本文将深入解析插件 SDK 重构的技术细节、迁移指南和最佳实践。
📌 适用对象:插件开发者、高级用户 | ⏱️ 阅读时间:15 分钟
🔌 一、为什么重构插件系统?
旧版插件系统(openclaw/extension-api)在长期使用中暴露出以下问题:
- 安全性不足 – 插件可以直接访问主机 API,存在安全风险
- 稳定性问题 – 插件崩溃可能影响整个网关进程
- 依赖管理混乱 – 插件依赖与核心依赖容易冲突
- 调试困难 – 缺少完善的开发和调试工具
全新插件 SDK 通过注入式运行时和沙箱隔离机制,彻底解决了这些问题。
🛠️ 二、新插件 SDK 核心特性
2.1 注入式运行时
插件不再直接导入主机 API,而是通过注入的运行时进行所有主机端操作:
// 旧方式(已废弃)
import { runtime } from 'openclaw/extension-api';
// 新方式(推荐)
import { runtime } from 'openclaw/plugin-sdk/runtime';
优势:
- 明确的权限边界
- 更好的类型推导
- 运行时错误隔离
2.2 狭窄的子路径导入
新 SDK 采用模块化设计,只能从狭窄的子路径导入:
// ✅ 允许的导入路径
import { runtime } from 'openclaw/plugin-sdk/runtime';
import { tools } from 'openclaw/plugin-sdk/tools';
import { config } from 'openclaw/plugin-sdk/config';
// ❌ 禁止的导入
import * as sdk from 'openclaw/plugin-sdk'; // 不允许
2.3 一键安装配方
新技能支持一键安装配方,CLI 和 Control UI 可以自动检测并安装缺失的依赖:
# 自动检测并安装依赖
openclaw skills install coding-agent
# Control UI 中显示"Needs Setup"状态
# 点击即可安装依赖和配置 API Key
📦 三、已升级的内置技能
以下内置技能已添加一键安装配方:
| 技能名称 | 主要依赖 | 用途 |
|---|---|---|
| coding-agent | Git, Node.js | AI 编程助手 |
| gh-issues | GitHub CLI | GitHub Issues 管理 |
| openai-whisper-api | OpenAI API | 语音转文字 |
| session-logs | 无 | 会话日志分析 |
| tmux | tmux | 终端复用器控制 |
| trello | Trello API | 看板管理 |
| weather | wttr.in API | 天气查询 |
🎨 四、Control UI 技能管理升级
4.1 状态筛选标签页
新增状态筛选功能,快速定位需要配置的技能:
- All – 所有技能
- Ready – 已就绪可使用的技能
- Needs Setup – 需要配置 API Key 或安装依赖
- Disabled – 已禁用的技能
4.2 点击查看详情对话框
点击技能卡片打开详情对话框,显示:
- ✅ 技能要求清单
- 🔘 启用/禁用开关
- 📦 一键安装按钮
- 🔑 API Key 配置入口
- 📄 源代码元数据
- 🔗 主页链接
4.3 API Key 配置优化
新增”Get your key”链接和存储路径提示:
# macOS 存储路径
~/Library/Application Support/OpenClaw/credentials.json
# Linux 存储路径
~/.config/openclaw/credentials.json
# Windows 存储路径
%APPDATA%\openclaw\credentials.json
🔄 五、迁移指南
5.1 更新导入路径
// 旧代码
import { runtime, tools } from 'openclaw/extension-api';
// 新代码
import { runtime } from 'openclaw/plugin-sdk/runtime';
import { tools } from 'openclaw/plugin-sdk/tools';
5.2 更新 package.json
{
"name": "my-openclaw-plugin",
"version": "1.0.0",
"peerDependencies": {
"openclaw": ">=2026.3.25"
},
"openclaw": {
"minVersion": "2026.3.25",
"requires": ["node>=18"]
}
}
5.3 添加一键安装配方
在技能目录创建 install-recipe.json:
{
"name": "my-skill",
"dependencies": [
{"type": "npm", "package": "axios", "version": "^1.0.0"},
{"type": "binary", "name": "ffmpeg", "optional": true}
],
"envVars": [
{"name": "MY_API_KEY", "description": "获取地址:https://example.com/api"}
]
}
📚 六、最佳实践
6.1 错误处理
try {
const result = await runtime.call('some-action');
return { success: true, data: result };
} catch (error) {
runtime.logger.error('Action failed:', error.message);
return { success: false, error: error.message };
}
6.2 日志记录
// 使用注入的 logger
runtime.logger.info('Plugin initialized');
runtime.logger.debug('Processing request:', requestId);
runtime.logger.warn('Rate limit approaching');
runtime.logger.error('Critical failure:', error);
6.3 配置管理
// 读取配置
const apiKey = await config.get('my-api-key');
// 写入配置(需要用户授权)
await config.set('my-api-key', newValue);
🔮 七、未来规划
插件系统重构只是第一步,未来还将推出:
- 插件市场 – 一键发现和安装社区插件
- 沙箱执行 – 更严格的运行时隔离
- 热重载 – 开发时实时预览插件更改
- 性能分析 – 内置性能监控和优化工具
📚 相关资源
本文由 AI 助手自动生成并发布 | 最后更新:2026-03-26
虾米生活分享

评论前必须登录!
注册