OpenProgram · Web Use

Web Use:只控制内置浏览器 Page

Agent 可以直接调用 web_use,也可以让 GUI Agent Harness 用同一接口连续执行。Runtime 绑定一个 exact Page,并在三个 browser backend 中固定一个执行。

目标名称:WEB_USE · 公开名称:WEB_USE · 仅浏览器运行时已实现

名称与边界

能力负责什么当前状态
Web Use内置浏览器的 BrowserContext、Page、tab、popup、分屏、跨窗口发现,以及 DOM/ARIA/viewport 操作。当前能力;公开名称为 web_use
Computer Use未来的桌面应用、整屏或应用窗口截图、OS 级鼠标键盘;需要操作网页时可以调用 Web Use。保留名称,当前不实现,也不预建配置或后台进程

系统结构

Agent、Web Use 与三个可选浏览器 backend 的分层关系Agent 可以直接调用 web_use,也可以通过 GUI Agent Harness 调用相同工具。Runtime 为当前 WebSession 固定 Playwright MCP、Chrome DevTools MCP 或 Open Claude in Chrome-compatible backend,并由选中的一个 backend 操作绑定的精确 Page。 AGENT / 控制 AI 任意 Agent选择 direct 或 harness 调用方直接工具 · GUI Harness 直接HARNESSMCP web_use OpenProgram MCP 运行时绑定一次,精确执行。 页面绑定•权限•验证 WebSession 创建后冻结 backend 执行 / 选择一种 每个 WEBSESSION 使用一个后端 DOM Playwright MCPDOM · ARIA · 元素引用默认:结构化页面操作 CDP Chrome DevTools MCPCDP · 快照 · 诊断通过 MCP adapter 接入 Runtime VIS Open Claude in Chrome工具契约 · 可视动作OpenProgram Electron / CDP 适配器 绑定页面 精确页面已绑定 同一个 Page · 分屏在任意方向 · 无需窗口置前

三个 backend 都是可选执行路径;Runtime 在 WebSession 创建时固定其中一个,并把所有动作限制到同一个 Page。

四个网页在一个窗口里怎样表示

三个顶部标签项包含四个可控制 Page同一个 BrowserContext 和 OpenProgram window 中,前两个顶部标签项各包含一个 Page,第三个顶部标签项是分屏组,包含左右两个 Page。list_pages 同时返回 tab_entries 布局和 pages 控制目标;Agent 最终只用某个 Page 的 token 建立 WebSession。 BROWSERCONTEXT ctx_1 · 窗口 win_1 Google · p1 GitHub · p2 Bilibili · p3YouTube · p4 tab_entry_1 · 单页 · 后台tab_entry_2 · 单页 · 后台tab_entry_3 · 分栏 · 活跃 左侧分栏右侧分栏 · 已聚焦 p3p4 BilibiliYouTube visible = truevisible = true · focused = true list_pages 分组感知清单 · 已实现 tab_entries3 个界面入口 单页p1 单页p2 分栏p3 + p4 pages4 个精确目标 p1后台 p2后台 p3分栏 / 左侧 p4分栏 / 右侧 p4 token → 精确 WebSession 顶部标签结构用于理解窗口;Page token 用于观察和操作。分屏不增加另一套 Agent command。

当前 list_pages 同时返回 tab_entries + pages:前者描述 single/split 与 pane 顺序,后者提供可独立控制的 exact Page token。跨窗口目标保持相同结构,在外层增加 windows[],每个 Page 继续携带原 window_id。完整字段见多 Page 数据模型。

Claude Code 的视觉坐标点击分支

Claude Code 浏览器插件视觉坐标点击流程本机 Claude Code 2.1.227 与 Chrome 扩展 1.0.85 的视觉分支先取得截图,再把模型选择的坐标经 MCP、Native Messaging 和 Chrome 扩展发送到目标 Tab;扩展绘制视觉光标,并以 CDP 鼠标事件完成实际点击。 Claude Codeclaude-in-chromeMCP 工具Native MessaginghostChrome 扩展服务 worker视觉光标内容脚本目标 TabCDP ① computer(screenshot, tabId)② 工具请求③ JSON / stdio④ Page.captureScreenshot⑤ 同一路径返回 PNG + viewport metadata⑥ computer(left_click, [x,y], tabId)⑦ 点击请求⑧ 校验 tab、权限与坐标映射⑨ UPDATE_PHANTOM_CURSOR⑩ Input.dispatchMouseEvent: moved → pressed → released 需要时在这里暂停并请求用户授权 页面上的光标只是视觉提示;真正的点击由 CDP 发给指定 Tab,不移动系统鼠标。

本图来自本机 Claude Code 2.1.227 与 Chrome 扩展 1.0.85 的安装包观察,只描述视觉坐标分支,不是官方稳定内部接口。computer 也支持使用页面 ref 点击;该分支不要求先截图。

Chat 渲染稳定性

存在 live normal assistant reply 或对应 runtime card 已存在时,Web Use 的 tree update 不得触发 transcript reload。standalone run 缺少 persisted runtime card 时允许首次单次 hydrate。该约束确保已有历史 message element identity 保持不变,避免流式回复、滚动位置和消息操作状态被重置。

可以复用到什么程度

结论组件OpenProgram 处理
直接使用Microsoft Playwright MCP、Playwright、MCP SDK开源依赖;固定版本后接入。
直接调用接口CDP、Electron webContents.debugger、Chrome debugger / Native Messaging不需要复制 Claude 代码;内置浏览器直接使用 Electron/CDP,不需要另装 Chrome 扩展。
可选 backendChrome DevTools MCP通过 MCP adapter 接入统一 Runtime,并绑定 exact Page。
可选 backend兼容 Open Claude in Chrome采用其工具契约与视觉操作方式;由 OpenProgram Electron/CDP adapter 绑定 exact Page。
OpenProgram 层exact Page adapter、统一权限、verification 与 backend selector三个 backend 共用;单个 WebSession 只允许一个 backend 执行动作。

任务结果与观察证据

浏览器任务成功时,同时返回通过验证的帧所对应的有大小限制、经过密码脱敏的观察内容、断言和准确页面身份。观察仅作为调用方读取事实的上下文,不授予复用已关闭会话的权限,也不代表页面所有字段均通过验证。上层可以直接报告已观察的字段,无需为获取被结果适配器丢弃的数据再次发起浏览器任务。失败、过期、取消或隐私检查失败时,不返回成功观察。

单页面任务执行器使用运行时已经验证的绑定。规划提示明确区分“没有开放页面清单接口”和“页面清单为空”,在工具不支持时不要求重新发现或切换页面。页面身份和权限由运行时管理,模型根据提供的观察选择操作。

验收使用已安装 App 中的真实任务:选择已授权文件,观察并验证网站回执,再通过 GUI Agent 委派返回所需页面事实和验证证据。仅选中文件不能作为网站已接受的证据。只读验证成功时,修改步数为零是正常结果。网络断连或 App 重启应与无效目标、操作不支持分别报告。

未绑定页面时,浏览器任务使用与 web_use 相同的已注册页面清单和命令执行器,不回退到广播寻找当前可见窗口。已有明确页面绑定时保留原生控制器;明确禁用的页面仍然拒绝访问。目标选择和切换使用受所有者范围约束的页面清单凭据。

绑定暂时失败与外部文件输入引用

桌面确认超时只结束当前命令,保留页面绑定和 WebSession,取消旧观察的操作权限。再次 act 或 verify 前必须成功 observe。真实断连、过期、所有权或目标版本变化仍撤销访问,不自动重复任何修改操作。

MCP 引用和控制器引用属于不同编号空间,即使均为 e 开头也不能互换。每次成功观察在 elements 中暴露原生文件输入框,使用不透明的 file_ 引用,保留标签、禁用状态和已选文件名。引用仅限当前会话及当前观察,只支持 upload 和 file_selected 验证。适配器映射到已经观察到的准确原生句柄,不按标签、顺序或 MCP 引用猜测目标。上传前不要点击 Choose File。上传与验证均在控制器所属线程使用同一套受保护实现,保留文件读取权限、大小限制、新鲜度、取消和选择结果不确定时的禁止重放行为。选中文件不等于服务器已接受文件。

实现状态:组件测试覆盖两个 MCP 适配器的引用冲突、重新观察撤销、跨会话引用、陈旧引用和权限拒绝;真实 Chromium 集成测试覆盖文件选择及独立验证,不使用个人材料或真实注册网站。