Skip to main content
Zeus AI Backend 通过 WebSocket 网关管理所有节点连接。三类客户端通过不同的 WebSocket 端点连接,使用 JSON-RPC 2.0 协议进行工具调用通信。

WebSocket 端点


连接参数

Browser Extension / Desktop App

string
必填
客户端 ID。格式为 user_{user_id}(浏览器扩展)或 desktop_{user_id}(桌面应用)。服务端会自动解析提取 user_id
string
节点 ID,唯一标识该设备。如果不提供,服务端会自动生成(ext_{user_id}desktop_{user_id})。

Web Client

string
必填
用户 ID,用于路由消息到正确的用户。

连接生命周期


消息类型

1. 节点注册 (register)

浏览器扩展和桌面应用连接后,应发送 register 消息注册节点信息: 客户端 → 服务端:
string
必填
节点唯一 ID
string
节点显示名称(默认 “Unknown Node”)
string
必填
节点类型:extensiondesktop
string
操作系统名称
string
操作系统版本
string
客户端应用版本
string[]
节点能力列表,如 ["browser_control", "screenshot", "file_system"]
string[]
可用工具列表,如 ["click", "type", "screenshot", "navigate"]
integer
最大并发任务数(默认 3)
服务端 → 客户端:

2. 心跳机制 (heartbeat)

节点定期发送心跳以维持连接状态。服务端会更新 NodeManager 中的节点状态。 客户端 → 服务端:
string
节点状态:onlinebusyoffline(默认 online
integer
当前正在执行的任务数(默认 0)
服务端 → 客户端:

3. Ping/Pong 保活

所有三种客户端(Extension、Desktop、Web)都支持 ping/pong 保活: 客户端 → 服务端:
服务端 → 客户端:
对于 Extension 和 Desktop 客户端,ping 消息会同时触发 NodeManager 心跳更新。

4. 工具调用(JSON-RPC 2.0)

服务端通过 WebSocket 向节点发送 JSON-RPC 2.0 请求来调用工具。这是 MCP(Model Context Protocol)格式。 服务端 → 客户端(请求):
string
必填
请求 ID(UUID),用于匹配响应
string
必填
固定为 tools/call
string
必填
要调用的工具名称
object
必填
工具参数
string
关联的会话 ID(可选)
客户端 → 服务端(成功响应):
客户端 → 服务端(错误响应):

MCP Result 内容类型

result.content 数组中的每个项可以是:
服务端解析响应时,会提取 textimage_screenshot 字段,并将 isError 映射为 success 状态。默认超时时间为 60 秒。

5. Legacy MCP 响应 (mcp_response)

此格式已废弃,仅为向后兼容保留。新客户端应使用 JSON-RPC 2.0 格式。

6. 状态更新 (status)

客户端可以发送状态更新消息:

7. Workflow 执行

Web 客户端请求 Workflow 列表

Web 客户端 → 服务端:
服务端会将请求转发给浏览器扩展。扩展返回的 workflows_list 消息会自动转发给 Web 客户端。如果扩展未连接,返回:

Web 客户端执行 Workflow

Web 客户端 → 服务端:
服务端 → Web 客户端(确认启动):
服务端 → Web 客户端(执行完成): 当扩展发送 task_complete 消息后,服务端会通知 Web 客户端:

扩展端 Workflow 完成通知

Extension → 服务端:
Workflow 执行的默认超时时间为 300 秒(5 分钟)。

错误处理

连接拒绝

当缺少必要参数时,服务端会关闭连接:

断线处理

当 WebSocket 连接断开时,服务端会自动:
  1. 从 ConnectionManager 中移除连接
  2. 从 NodeManager 中注销节点(Extension/Desktop)
  3. 清理所有挂起的请求

ConnectionManager API

ConnectionManager 是 WebSocket 网关的核心单例,管理所有连接的生命周期。

连接管理

连接查询

消息发送

工具调用

连接统计 (get_stats)


数据结构

多节点连接模型

ConnectionManager 使用嵌套字典管理连接,支持每个用户拥有多个节点:
  • Extension / Desktop:每个用户可连接多个节点(多设备),通过 node_id 区分
  • Web:每个用户可有多个 Web 客户端(多标签页),使用 Set 存储

NodeType 枚举

NodeStatus 枚举


连接示例

JavaScript (Browser Extension)

Python (Desktop App)