浏览器与桌面自动化

wesgine 的三层浏览器/桌面自动化架构:Headless Browser、Playwright、Desktop Agent。


三层架构

层adapterCellSpec运行时位置典型用途
Headless Browseradapter/headless-browser/.HeadlessBrowser服务端(chromedp)匿名爬取
Playwrightadapter/playwright/.Playwright服务端子进程 + 用户浏览器用户登录态浏览
Desktop Agentadapter/desktop/.Desktop客户端 binary(AX-5)桌面自动化

Headless Browser

服务端运行 chromedp(无头 Chrome),用于不需要登录态的匿名网页抓取。

CellSpec 声明

CellSpec{
  HeadlessBrowser: &HeadlessBrowserConfig{...},
}

非 nil 即启用。

API

GET /headless-browser/state    # 状态查询

Playwright

管理 Playwright MCP 子进程,支持两种模式:

模式用途
sandbox隔离环境浏览
user + extension用户浏览器(保留登录态)

CellSpec 声明

CellSpec{
  Playwright: &PlaywrightConfig{...},
}

API

GET /playwright/status         # 连接状态
PUT /playwright/token          # 更新扩展 auto-connect token

安全阀:browser_wait_for_user

浏览器自动化内置 HITL 安全阀——browser_wait_for_user。当浏览器操作需要人类干预时(如验证码、登录确认),Agent 触发此工具暂停等待用户操作。

此工具在 Cell boot 时无条件注册(AlwaysOn),不受 CellSpec 配置控制。


Desktop Agent

桌面自动化 Device Agent SDK,二进制运行在客户端(运行时隔离,AX-5 物理边界)。

CellSpec 声明

CellSpec{
  Desktop: &DesktopConfig{
    Command: "/path/to/device-agent",
    Transport: "stdio",  // 或 "sse"
  },
}

API

GET /desktop/status            # 连接状态

与 Playwright 的关系

二者正交,可同时启用。


各产品使用方式

产品HeadlessPlaywrightDesktop
wescode按需可选IDE Device Agent
wesclaw desktop按需可选wesclaw-device-agent
wesclaw SaaS按需——
wescraft按需可选scaffold
teleclaw按需可选(sandbox/user)transport: sse

运行时位置(AX-5)

wesgine 提供 adapter 代码(共享维护),但 Desktop binary 运行在客户端:

wesgine 服务端
  ├── Headless Browser(chromedp,服务端进程内)
  ├── Playwright MCP(服务端子进程 + 可选用户浏览器)
  └── Desktop adapter 代码(编译在消费应用中)
        ↓ stdio / sse
客户端设备
  └── Device Agent binary(运行时在客户端)

安全约束


相关文档