Skip to content
On this page

Browser Harness - 让 AI Agent 直接操控浏览器的自愈式工具

是什么

Browser Harness 是 Browser Use 团队推出的极简浏览器操控工具,通过 Chrome DevTools Protocol(CDP)给 AI Agent 直接的浏览器控制权,让代理在面对缺失功能时能自己编写代码补全。

不是什么

  • 不是 Playwright 或 Selenium 的替代(它们封装 API,Harness 直接暴露 CDP)
  • 不是浏览器本身(是一个连接 AI 代理和 Chrome 的薄层)
  • 不是传统的自动化测试框架(专为 AI 代理设计,非人类测试人员)

解决啥

痛点方案
浏览器自动化框架层层抽象,限制 LLM 能力直接暴露 CDP,LLM 能调用任何 Chrome 原生功能
遇到框架未预见的操作场景就卡住代理可以自己写缺失的函数,实现"自愈"
iframe、Shadow DOM 等复杂 DOM 结构难处理CDP 直接操作,无需繁琐的跨框架抽象
反爬检测越来越严Chrome 自己和自己通信,最自然的浏览器行为模式
需要维护各种 crash handler 和 watchdog代理自己读错误、重新连接、重试

好在哪

能力说明
极简架构仅 4 个文件、约 600 行 Python
直接 CDP不走任何框架封装,Chrome 原生协议直连
自愈能力函数缺失时,代理自动写代码补全
跨域 iframe直接 attach 到 target,无需抽象层
Shadow DOM直接 shadowRoot.querySelectorAll
抗检测Chrome 自身通信,行为最自然
支持多 AgentClaude Code、Codex、Copilot 等

四个文件组成整个项目

文件行数作用
run.py13运行 Python 并预加载 helpers
helpers.py192CDP 的薄封装(代理可修改)
daemon.py220保持 CDP WebSocket 存活
SKILL.md文档告诉代理如何使用以上文件

自愈循环示例

代理需要上传文件 → 发现 upload_file() 不存在 → 搜索 helpers.py → 写入函数(+7 行)→ 文件上传成功。

开发者甚至是通过 git diff 才发现代理自己添加了这个功能。更夸张的是,upload_file 写完后遇到 12MB 大文件(CDP WebSocket 传输限制 ~10MB),代理读到错误后又自动切换成分块上传模式。

怎么跑

安装

bash
git clone https://github.com/browser-use/browser-harness.git
cd browser-harness

使用(以 Claude Code 为例)

在 Claude Code 中执行:

Set up https://github.com/browser-use/browser-harness for me.

架构流程

Agent(Claude Code / Codex)
    ↓ 写 Python 代码
run.py(执行 Python,预加载 helpers)

helpers.py(薄封装 CDP,代理可编辑)

daemon.py(保持 CDP WebSocket)

Chrome DevTools Protocol

Chrome 浏览器

所有在 Chrome 以上的层,都是可重写的。代理觉得哪个函数不够好,直接编辑 helpers.py

真实案例

Gusto → 日历: 从 Gusto 员工页面提取生日数据 → 创建 Google Calendar 事件,全自动完成。

Azure 管理后台: Azure 的管理门户是层层嵌套的 iframe 结构,通过 CDP 的坐标级鼠标事件 Input.dispatchMouseEvent 直接穿透。

怎么用

  • AI Web 代理: 让 Claude Code / Codex 直接操控浏览器完成复杂 Web 任务
  • 自动化测试: 替代 Playwright,让 AI 自我修复测试脚本
  • 数据采集: 绕过反爬机制,Chrome 自己和自己对话
  • QA 探索测试: 用 AI 做探索性质量保证测试
  • RPA 替代: 传统 RPA 工具太笨重,用 AI Agent + CDP 更灵活

延伸: Browser Harness 是 Browser Use 生态的一部分,还可以配合 Browser Use Cloud(带隐身浏览器、代理、验证码解决)、Browser Use Box(24/7 远程代理)等企业级服务使用。

by 文殊