← 返回 WebRPA 官网
WebRPA WebRPA 插件开发文档

开发你的 WebRPA 插件

面向第三方开发者:把"针对特定网站 / 场景的自动化能力"封装成插件,上架到插件市场,供所有 WebRPA 用户一键安装使用。

核心理念:一个插件 = 一组「自定义模块」+ 元信息。安装后,插件贡献的模块会直接出现在编辑器侧栏, 可以像内置模块一样拖拽、配置、被工作流调用与执行。无需改动 WebRPA 源码。

一、插件能做什么

二、插件包格式(plugin.json)

插件是一个 JSON 文件,结构如下:

{
  "id": "douyin-backend",            // 唯一标识,仅允许字母/数字/-/_
  "name": "抖音后台自动化",            // 展示名
  "version": "1.0.0",
  "author": "你的名字",
  "description": "为抖音创作者后台封装的发布、数据采集模块",
  "homepage": "https://your-site.com",   // 可选
  "keywords": ["抖音", "电商", "运营"],    // 可选
  "knowledge": "抖音后台登录后…(给 AI 小助手的站点适配提示,可选)",
  "modules": [                        // 贡献的模块(数组,可多个)
    {
      "name": "douyin_publish",
      "display_name": "抖音-发布视频",
      "description": "在抖音创作者后台上传并发布一个视频",
      "icon": "🎬",
      "color": "#fe2c55",
      "category": "plugin",
      "parameters": [
        { "name": "videoPath", "label": "视频路径", "type": "string", "required": true },
        { "name": "title", "label": "标题", "type": "string" }
      ],
      "outputs": [
        { "name": "publishUrl", "label": "发布后的链接" }
      ],
      "workflow": {                   // 模块的内部实现:一段标准 WebRPA 工作流
        "nodes": [ /* ... 标准节点 ... */ ],
        "edges": [ /* ... 连线 ... */ ]
      }
    }
  ]
}

modules[].workflow 怎么来?

最简单的做法:在 WebRPA 编辑器里把功能搭成一条工作流,封装为「自定义模块」, 再用模块卡片的「导出」拿到它的 JSON;把导出的 parameters / outputs / workflow 等字段填进插件包即可。

字段说明
name模块内部名(同一插件内唯一)
display_name侧栏显示的名字
parameters用户可配置的输入参数
outputs模块产出的变量
workflow模块的实际执行逻辑(标准工作流 nodes/edges)

三、安装与调试

  1. 在 WebRPA 编辑器打开「工作流仓库 → 插件」标签页。
  2. 点击「从文件安装」,选择你的 plugin.json
  3. 安装成功后,插件贡献的模块会出现在编辑器侧栏(分类标签 plugin:<你的插件id>),可直接拖拽使用。
  4. 在「已安装」中可启用 / 禁用 / 卸载该插件。
禁用插件会移除其贡献的模块但保留安装包,再次启用可一键恢复;卸载会彻底删除。

四、上架到插件市场

插件市场通过一个「市场索引」JSON 提供可安装的插件列表。索引格式:

{
  "plugins": [
    {
      "id": "douyin-backend",
      "name": "抖音后台自动化",
      "version": "1.0.0",
      "author": "你的名字",
      "description": "...",
      "homepage": "https://your-site.com",
      "keywords": ["抖音"],
      "downloadUrl": "https://your-cdn.com/douyin-backend.plugin.json"
      // 或者直接内联完整包:  "package": { ...完整 plugin.json... }
    }
  ]
}
  1. 把上面的索引 JSON 部署到任意可公开访问的 URL(你的服务器 / GitHub Raw / 对象存储)。
  2. 在 WebRPA「全局配置」里把「插件市场索引地址」设为该 URL。
  3. 之后所有用户在「工作流仓库 → 插件 → 插件市场」里即可看到并一键安装你的插件。

未配置远程索引时,WebRPA 会显示内置示例插件,方便你参考结构。

五、扩展 API(后端 REST)

插件能力同样开放为 REST 接口,便于自动化集成:

方法 / 路径说明
GET /api/plugins/installed已安装插件列表
GET /api/plugins/market插件市场列表
POST /api/plugins/install安装本地插件包 {package:{...}}
POST /api/plugins/install-from-market/{id}从市场安装
POST /api/plugins/{id}/enable启用/禁用 {enabled:true|false}
DELETE /api/plugins/{id}卸载插件
POST /api/plugins/market-url设置市场索引地址 {url}
GET /api/plugins/{id}/export导出市场就绪包 JSON
POST /api/plugins/{id}/publish一键发布/上架 {hubUrl?}
GET /api/plugins/{id}/reviews获取评分/评论(本地与 hub 合并)
POST /api/plugins/{id}/reviews提交评分 {rating:1-5, comment, user}

六、最佳实践

— 进阶开发 —

上面是入门:会搭工作流、会导出模块就能做插件。下面是真正决定插件“好不好用、能不能上架被人长期使用”的进阶内容。

七、模块内部:参数注入与产出回传

每个插件模块的 workflow 就是一条标准 WebRPA 工作流(等价于一个“子流程”)。理解参数/产出如何与内部工作流打通,是写出可复用模块的关键:

// 一个“登录并返回 cookie”模块的思路:
parameters: [ {name:"username"}, {name:"password"} ]   // 外部传入 → 内部可用 {username}/{password}
outputs:    [ {name:"loginCookie"} ]                    // 内部「设置变量 loginCookie=...」→ 回传给外层
workflow:   打开页面 → 输入 {username} → 输入 {password} → 点击登录 → 取 cookie → 设置变量 loginCookie
最稳妥的做法仍是:在编辑器里把功能搭成工作流 → 封装为「自定义模块」并定义好参数/产出 → 用模块卡片「导出」拿到完整 JSON,直接作为 modules[] 的一项。手写容易漏字段。

八、参数类型与高级控件

参数不止 string。在编辑器「创建自定义模块」面板里可为每个参数选择控件类型,导出后即体现在 parameters[].type 上,让使用者填得更省心、更不易出错:

类型呈现的控件适用场景
string单行文本选择器、URL、关键词
text / 多行多行文本框消息正文、JSON、脚本片段
number数字输入 / 滑块数量、阈值、超时
boolean复选框开关项(是否无头、是否覆盖)
select / 多选下拉(单选 / 多选)固定可选值(画质、格式)

每个参数都建议给 label(中文显示名)、required(是否必填)、default(默认值),并在 description 里写清填写示例。良好的默认值能极大降低别人的上手成本。

九、一个插件,多个模块

modules 是数组——一个插件可以贡献一整套相关模块,构成某网站/场景的“工具箱”。例如「某 CRM 适配」插件可同时提供:登录、创建客户、查询订单、导出报表。安装后它们会一起出现在侧栏,并带统一的分类标签 plugin:<你的插件id>,方便用户成组识别。

十、命名空间与冲突规避(自动)

为避免和用户已有模块、或其它插件撞名,安装时 WebRPA 会自动处理命名空间,你无需手动加前缀

因此你在 plugin.json 里用简洁的模块名即可,平台保证全局唯一。

十一、版本升级与启用 / 禁用机制

十二、搭建你自己的插件中心(Hub)

除了把单个 plugin.json 放到任意 URL 当作市场索引,你也可以自建一个中心化插件仓库(WebRPA 提供了参考实现 frameworkHub)。后端按以下约定与 Hub 交互,把地址填到「全局配置 → 插件市场索引地址」即可:

方法 / 路径说明
GET /api/plugins返回市场索引 { plugins:[ {id,name,version,...,downloadUrl} ] }
GET /api/plugins/{id}/download返回该插件的完整包 JSON(供一键安装拉取)
POST /api/plugins/publish接收完整插件包以上架(对应编辑器/接口的“发布”)
POST /api/plugins/reviews接收评分 {pluginId, rating, comment, user}
GET /api/plugins/reviews/{id}返回某插件的评分/评论 {reviews:[...]}

市场索引里每个插件可二选一提供安装来源:downloadUrl(指向完整包)或直接内联 package(完整 plugin.json)。配置了 Hub 后,发布 会把包 POST 到 {hub}/publish评分 会与 Hub 双向合并。

十三、让 AI 小助手帮你开发插件

WebRPA 小助手内置了完整的插件开发技能,可以用自然语言驱动“开发 → 校验 → 隔离测试 → 发布”闭环:

这让没有后端经验的人也能做出可上架的插件。

十四、能力边界、安全与合规

十五、联系与反馈

开发中遇到问题,欢迎联系作者彭明航:QQ 2124691573 · 微信 QyPmh20061026 · QQ 群 115069513。

← 返回 WebRPA 官网