需用TypeScript编写符合Skills模块规范的插件:一、确认版本并安装依赖;二、在skills/下创建TS文件并导出SkillDefinition;三、在Agent中显式导入并注册;四、启用DEV模式调试热重载;五、编译后通过CLI双签发布至镜像仓库。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为OpenClaw智能体扩展特定业务能力,例如自动解析邮件附件、调用本地API或生成结构化报告,则需通过TypeScript编写符合其Skills模块规范的自定义插件。以下是实现此目标的具体步骤:
一、理解OpenClaw Skills插件架构
OpenClaw的Skills模块采用声明式注册机制,每个插件必须导出一个符合SkillDefinition接口的对象,包含唯一id、可选description、输入参数schema(基于ArkType定义)及执行函数execute。插件运行于隔离沙箱中,仅能通过预设的context对象访问Gateway转发的请求与Memory读写接口。
1、确认OpenClaw运行时已加载@openclaw/skills-core v2026.3.31及以上版本。
2、在项目根目录下创建skills/子目录,用于存放所有自定义技能文件。
3、执行npm install @openclaw/skills-core @arktype/arktype --save-dev安装依赖。
二、创建基础技能插件文件
每个技能插件需以独立TypeScript文件存在,文件名即为技能ID前缀,且必须导出默认对象。系统通过文件路径自动识别技能归属,不支持动态导入。
1、在skills/目录下新建email-parser.ts文件。
2、顶部添加类型导入:import { SkillDefinition } from '@openclaw/skills-core'; import { type } from '@arktype/arktype';
3、定义输入校验Schema:const inputSchema = type({ rawEmail: 'string', includeHeaders: 'boolean?' });
4、编写执行逻辑函数,确保返回Promise并捕获所有同步异常:
5、导出完整SkillDefinition对象,其中id字段必须与文件名一致(不含扩展名):
三、注册技能至OpenClaw Agent
Skills需通过Agent启动时显式加载,未注册的插件不会被网关路由识别。注册过程要求提供绝对路径引用,禁止使用通配符或动态字符串拼接。
1、打开Agent主入口文件src/agent/index.ts。
2、在imports区块末尾添加:import emailParserSkill from '../skills/email-parser';
3、定位到createAgent()调用位置,在配置对象的skills数组中插入该插件引用:
4、保存文件后重启Agent进程,控制台将输出[SKILL] Registered: email-parser (v1.0.0)日志。
四、调试与热重载配置
OpenClaw v2026.3.31支持Skills模块的运行时热重载,但需满足文件系统监听条件与签名验证规则。调试阶段应禁用生产签名检查以避免加载失败。
1、在Agent启动命令后追加环境变量:OPENCLAW_DEV_MODE=true npm run start。
2、修改任意已注册技能文件并保存,观察控制台是否出现[HOTRELOAD] email-parser reloaded提示。
3、向Gateway发送测试请求,Payload中skill字段值设为email-parser,input字段传入合法JSON对象。
4、若返回状态码200且响应体含parsedContent字段,则表明插件已成功执行。
五、打包发布至OpenClaw镜像仓库
正式部署需将技能编译为ESM兼容格式,并上传至OpenClaw中国镜像站指定命名空间。镜像站强制校验TypeScript源码哈希与编译产物一致性,防止中间篡改。
1、在项目根目录执行npx tsc --project tsconfig.skills.json,生成dist/skills/目录。
2、进入dist/skills/目录,运行openclaw-cli publish --namespace myorg --token <strong><font color="green">YOUR_MIRROR_TOKEN</font></strong>。
3、CLI将自动计算email-parser.js与email-parser.ts的SHA256值并提交双签认证。
4、上传成功后,返回的registryId形如myorg/email-parser@2026.4.24.1,该ID可用于跨节点统一部署。


















