需按规范编写JSON定义文件并注册:一、创建含id/name/triggers/action字段的my_skill.json;二、HTTP型设type为http并配url/method;三、Script型需同名JS文件导出async函数;四、通过日志面板调试匹配与执行;五、用版本化id实现灰度部署。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您希望在WorkBuddy中扩展其自动化能力,通过编写自定义技能来响应特定指令或触发业务逻辑,则需了解其Skills的结构规范与注册机制。以下是实现自定义Skills的具体操作路径:
一、理解Skills基础结构
WorkBuddy的自定义Skill以JSON文件形式定义,包含唯一标识符、触发关键词、执行动作类型及参数映射规则。该文件必须符合平台预设的schema,否则无法被加载识别。
1、新建纯文本文件,命名为my_skill.json。
2、在文件中填入标准字段:必需包含id(字符串,全局唯一)、name(显示名称)、triggers(数组,含至少一个keyword)、action(对象,指定type为http或script)。
3、确保id值不与系统内置Skill或其他已安装Skill重复,重复ID将导致加载失败且无提示。
二、使用HTTP类型Skill调用外部API
此方式适用于无需本地计算、仅需转发请求并解析响应的场景,Skill本身不执行代码,依赖WorkBuddy发起HTTP请求。
1、在action字段中设置{"type": "http", "url": "https://api.example.com/v1/process", "method": "POST"}。
2、在triggers中添加{"keyword": "查订单状态", "case_sensitive": false}。
3、通过parameters字段声明输入映射,例如[{"name": "order_id", "source": "last_word"}],表示将用户指令末尾单词作为order_id传入请求体。
4、保存文件后,进入WorkBuddy管理后台的Skills → 本地导入,选择该JSON文件上传,上传后需手动点击“启用”才生效。
三、使用Script类型Skill执行JavaScript逻辑
该方式允许在WorkBuddy运行时环境中执行轻量JavaScript代码,适用于数据格式转换、条件判断或组合多个API调用。
1、创建同名JS文件my_skill.js,内容需导出默认函数,形如module.exports = async (context) => { return { text: `订单${context.order_id}已发货` }; };。
2、在对应JSON文件的action中改为{"type": "script", "file": "my_skill.js"}。
3、确保JS文件与JSON文件位于同一目录,并在管理后台导入JSON时,系统自动关联同名JS文件。
4、脚本中禁止使用require、import、setTimeout等Node.js特有API,仅支持ES2020语法子集。
四、调试自定义Skill输出
WorkBuddy提供实时日志查看功能,用于验证触发匹配与执行结果,避免盲目修改配置。
1、在管理后台打开Skills → 日志面板,勾选“显示调试信息”。
2、向WorkBuddy发送一条匹配trigger keyword的消息,例如“查订单状态 123456”。
3、观察日志中是否出现Matched skill: my_skill,随后显示Executed action type: http或script及返回内容片段。
4、若未匹配,检查triggers.keyword是否含不可见空格,中文标点与英文标点被视为不同字符。
五、部署多版本Skill进行灰度验证
当需对同一功能迭代更新时,可通过版本号隔离新旧逻辑,避免全量覆盖引发误触发。
1、在JSON文件的id字段末尾添加版本标识,例如"my_skill_v2",而非覆盖原"my_skill"。
2、为新版本设定独立triggers,如"keyword": "查订单状态v2",确保测试期间互不干扰。
3、导入新JSON文件后,在后台的Skills列表中可同时看到两个条目,分别启用/禁用以控制可见性。
4、同一id只能存在一个启用状态的Skill,重复启用会静默禁用前一个。










