浏览器控制

一个 MV3 扩展把你现在正在用的真实 Chrome 交给 Agent 和编辑器:登录态、标签页、Cookie 全部沿用,Agent 与编辑器直接在这个会话里干活。

对比项无头脚本(Playwright 等)Ai Lubricant CDP 桥接
浏览器实例每次新起一个临时实例你正在用的 Chrome,Agent 与编辑器共用
登录态 / Cookie默认没有,需自己注入沿用你已登录的会话
生命周期脚本跑完即销毁常驻,Agent / 编辑器随时接管当前标签
操作方式写死在脚本里Agent 实时决定读页、执行 JS、切标签、截图、抓网络;编辑器任务也能用同一浏览器

功能:浏览器交给编辑器一起用

浏览器交给编辑器一起用
截图待补
把截图放到该路径,或把 src 改成实际图片地址
assets/screenshots/cap-browser/editor-share.png
能力行为
同一浏览器,两个使用者CDP client 接入后,Agent(工具调用 / 网页内对话)与编辑器任务共用这条已登录的真实 Chrome 会话——不用为编辑器另开一套浏览器环境
网页内 code_runAgent 级 browser_code_run_enabled 开关打开后,网页内对话可在浏览器侧跑代码;带审批协调器(approval timeout 可配),关闭时直接拒绝并在文案里提示
会话级隔离每帧按连接身份校验:Agent 是否对该 client 授权、页面是否属于该 client——多人多 Agent 不串台

功能:12 个 CDP 工具

工具能力
browser_get_tabs列出已连接的浏览器标签页(ID/URL/标题)
browser_scan返回当前活动标签的优化 HTML/文本及标签列表
browser_execute_js在页面执行 JavaScript,捕获结果与 DOM 变化
browser_navigate导航活动标签到指定 URL
browser_switch_tab切换 MCP 活动标签(不改变可见 Chrome 标签)
browser_focus_tab把某标签带到前台并聚焦其窗口
browser_screenshot截取活动标签(返回 base64 PNG)
browser_batch一次请求执行多个扩展/CDP 命令
browser_wait等待某 JavaScript 条件返回真值
browser_network_start / get / stop启动/读取/停止标签网络请求捕获(附加调试器、缓冲事件、返回捕获)
新任务开新标签新任务或独立站点用 browser_open_tab 开新 tab,同站内跳转才用页内点击——避免把当前会话的上下文覆盖掉。

功能:网页内直接和 Agent 对话

网页内直接和 Agent 对话
截图待补
把截图放到该路径,或把 src 改成实际图片地址
assets/screenshots/cap-browser/chat.png

一套 chat_* 帧协议复用同一条扩展 WebSocket,按帧 type 前缀与 CDP 驱动帧分流:

帧用途
chat_list_agents / chat_send / chat_abort选择 Agent、发送消息、中断
chat_new_conversation / chat_load_conversation / chat_list_conversations会话生命周期管理
chat_event对话流回传;chunked 传输截断时有专门收尾处理

每帧按连接身份校验:Agent 是否对该 client 授权、页面是否属于该 client(会话级隔离)。

功能:两类 token 不能混用

token用途绑定对象
连接 token扩展 ↔ 平台的 WebSocket 握手单个扩展连接
MCP 访问 token访问 /mcp/cdp-bridge/sse必须绑定具体 CDP client;未绑定报 "not authorized to operate any CDP client"

怎么用

  1. 在 /console/resources 创建 CDP 客户端,拿到绑定该 client 的 MCP token。
  2. Chrome 安装 MV3 扩展并用连接 token 握手(使用隔离 Chrome profile,不连个人日常浏览器)。
  3. 把该 client 授权给要用的 Agent;Agent 即可调用 12 个工具操作你的真实浏览器。
  4. 改完 CDP 明细必须 resync,把新快照推给活着的 driver,否则不生效。

技术白皮书:12 个 CDP 工具与两类 token 隔离 → · 网页内 Agent 帧协议 → · CDP 隔离治理 →