RPA 工作流
Zeus Desktop 支持将录制并参数化的浏览器操作工作流 发布为标准的 MCP(JSON-RPC 2.0)工具,让 AI Agent 能够像调用普通函数一样驱动浏览器执行业务操作。概述
整体架构
设计原则
| 原则 | 说明 |
|---|---|
| 终端不开放端口 | 所有通信通过终端主动建立的 WebSocket 连接完成 |
| 标准协议 | 严格遵循 JSON-RPC 2.0 / MCP 协议规范 |
| 动态注册 | 工作流发布后自动注册为可调用工具,无需重启 |
| 静默执行 | 浏览器可在后台静默运行,不干扰用户 |
| 严格流程 | 工作流按步骤顺序执行,不允许探索性操作 |
发布工作流为工具
发布流程
- 完成录制:录制浏览器操作并保存为工作流
- 参数化:将需要动态传入的值标记为变量(参见 流程录制 - 参数化)
- 发布工具:在工作流编辑器中点击 发布 Tool 按钮
- 配置元信息:
- 工具名称(
toolName):Agent 调用时使用的标识,如query_power_data - 工具描述(
toolDescription):告诉 Agent 这个工具的用途
- 工具名称(
- 确认发布:保存后工具立即可用
发布对话框
发布对话框会自动提取工作流中所有参数化操作,生成工具参数列表:| 字段 | 来源 | 说明 |
|---|---|---|
| 参数名 | variableName | 变量名作为工具入参名 |
| 描述 | paramDescription | 参数用途说明 |
| 默认值 | defaultValue | 可选的默认值 |
| 是否必填 | 无默认值 → 必填 | 无默认值的参数为必填 |
生成的工具定义
发布后,系统自动生成符合 MCP 规范的工具定义:Agent 调用流程
工具发现
Agent 通过 MCP 的tools/list 方法获取终端上可用的所有工具:
工具调用
Agent 决定调用某个工作流工具时,发送标准的tools/call 请求:
执行结果
内置工具
除了动态注册的工作流工具,Desktop 还提供以下内置 MCP 工具:desktop_exec
在终端执行 Shell 命令。browser_read
从浏览器页面提取数据,支持多种提取方式:| Action | 说明 | 返回值 |
|---|---|---|
text | 提取页面或元素的文本内容 | 纯文本字符串 |
table | 解析 HTML 表格为结构化数据 | 二维数组(表头 + 行数据) |
form | 提取表单字段当前值 | 字段名-值映射 |
html | 获取元素或页面的 HTML | HTML 字符串 |
url | 获取当前页面 URL | URL 字符串 |
screenshot | 截取页面截图 | Base64 PNG 图片 |
workflow_query_power_data 进入数据页面,再用 browser_read 提取页面上的表格数据进行分析。
hitl_prompt
在自动化流程中请求用户手动输入,适用于验证码、短信码等无法自动获取的场景。- 系统弹出通知提醒用户
- 在 Desktop 界面弹出输入对话框
- 用户输入后,值返回给 Agent
- 超时未输入则返回超时状态
| 优先级 | 方式 | 说明 |
|---|---|---|
| 1 | Renderer 弹窗 | Desktop 主窗口可见时,在渲染进程中展示对话框 |
| 2 | 原生对话框 | 主窗口不可见时,使用 Electron 原生对话框 |
| 3 | 超时 | 超过设定时间无响应,返回超时状态 |
静默浏览器模式
当 Agent 远程调用工作流工具时,浏览器会以 静默模式 启动,不会在用户屏幕上显示浏览器窗口:静默模式特性
| 特性 | 说明 |
|---|---|
| 窗口不可见 | 浏览器窗口定位在屏幕外(-2400, -2400) |
| 固定视口 | 窗口大小固定为 1280×720 |
| 最小资源 | 禁用 GPU、扩展、弹窗和通知 |
| 独立配置 | 使用指定的浏览器 Profile,隔离 Cookie 和状态 |
静默模式启动参数
动态工具注册
注册时机
Desktop 在以下时机将工具信息同步到后端:- WebSocket 连接建立时:发送注册消息,包含所有可用工具列表
- 工作流发布/取消发布时:通知后端更新工具列表
注册消息
后端工具创建
AI Backend(Python)收到工具列表后,为每个工作流工具动态创建 LangChainStructuredTool:
典型业务场景
场景一:电力数据采集
场景二:需要验证码的操作
场景三:批量数据处理
Agent 可以循环调用工作流工具,处理批量任务:- 调用
workflow_login登录系统 - 循环调用
workflow_query_data(传入不同参数)提取多页数据 - 调用
browser_read获取页面数据 - 汇总分析,调用
workflow_generate_report生成报告
错误处理
错误码
| 错误码 | 说明 |
|---|---|
-32001 | 工具执行错误 |
-32002 | 工作流执行错误 |
-32003 | 工作流未找到 |
-32004 | 浏览器未运行 |
回放引擎容错
| 机制 | 参数 | 说明 |
|---|---|---|
| 元素等待 | 最长 10s | 等待目标元素出现在 DOM 中 |
| 操作重试 | 3 次,间隔 1s | 操作失败自动重试 |
| 超时保护 | 30s/操作 | 单个操作超时后继续下一步 |
执行结果
工作流执行完成后返回结构化结果:兼容性
Windows 7 支持
由于部分终端运行 Windows 7 系统,需注意:- Electron 22.x 是最后支持 Win7 的版本
- 需要使用对应版本的 Chromium 内核
- 部分现代 Web API 可能不可用
信创系统支持
信创终端(UOS / 麒麟)兼容方案:| 平台 | 架构 | 分发格式 |
|---|---|---|
| UOS | x64 / arm64 | .deb |
| 麒麟 | x64 / arm64 | .rpm / .deb |
| 通用 Linux | x64 | .zip (便携版) |
相关文档
- 流程录制 - 录制、编辑、参数化工作流
- Desktop 概览 - Desktop 应用总览
- 流程录制方案 - 视频 + 音频 + 事件多层录制技术方案