目录

Browser Harness:让 AI Agent 直接操控浏览器的极简方案

Browser Harness 是一个开源的浏览器操控工具,由 Browser Use 团队开发,核心理念是摒弃传统浏览器自动化框架的封装层,让 LLM Agent 直接通过 Chrome DevTools Protocol(CDP)操控浏览器,并在运行过程中自我完善。项目创建于 2026 年 4 月,仅两个多月就在 GitHub 上获得超过 16,000 颗星,反映了开发者社区对「薄封装、高自由度」Agent 工具链的强烈需求。1)

核心理念:The Bitter Lesson of Agent Harnesses

2025 年,Browser Use 团队发表了一篇颇有影响力的文章《The Bitter Lesson of Agent Frameworks》,指出不应用抽象层包裹 LLM,而应给 Agent 最大的行动空间。但团队随后意识到,他们自己的工具——即使摒弃了复杂框架——依然在用 click()、type()、scroll() 等 helper 函数限制 Agent。2)

每一层 wrapper 都是你在替模型做决定。Agent 在训练阶段已经见过数以百万计的 CDP 调用——Page.navigate、DOM.querySelector、Runtime.evaluate——它「知道」如何直接与浏览器对话。

由此诞生了 Browser Harness 的原则:不给 Agent 封装好的 API,只给它一个 WebSocket 连接和修改自己工具链的能力。

架构:四个文件,不到 600 行

Browser Harness 的核心极其精简,仅由四个文件组成:3)4)

  1. run.py — 13 行,加载 helpers 后执行 Python 代码
  2. helpers.py — 192 行,CDP 的薄封装层,Agent 可自行修改
  3. daemon.py — 220 行,保持 CDP WebSocket 连接的后台守护进程
  4. SKILL.md — 告知 Agent 如何使用上述工具

全项目约 1000 行 Python 代码,核心依赖仅 4 个:cdp-use、fetch-use、pillow、websockets。5)

架构工作流:Agent 编写 Python 脚本 → run.py 执行 → 调用 helpers.py 中的函数 → 通过守护进程的 CDP WebSocket 发给 Chrome → Chrome 执行动作。这之上的一切(包括 helpers)都是 Agent 可以重写的。

Self-Healing:Agent 自己写工具

这是 Browser Harness 最独特的特性。当 Agent 需要一个尚不存在的 helper 时——比如需要上传文件但没有 upload_file() 函数——它会像任何一个编程 Agent 那样:搜索 helpers.py,发现缺失,自己写一个,然后继续执行。

团队在博客中分享了一个真实案例:他们在开发过程中忘了添加文件上传功能,结果 Agent 在执行任务时,自己 grep 了 helpers.py,发现没有上传函数,便直接用 DOM.setFileInputFiles 写了上去。更要命的是,当它试图上传一个 12MB 的文件时,遇到了 CDP WebSocket 10MB 的载荷上限,于是又自动改为分块上传模式。6)

Self-healing 的关键在于:Agent 不是从零写代码,而是在现有代码库中补上缺失的函数——这和任何一个 Claude Code 或 Codex 用户日常做的「修 import 错误」没有本质区别。

与 Playwright / Puppeteer 的区别

Browser Harness 和传统的浏览器自动化工具走的是截然不同的路线:

Playwright / Puppeteer(传统路线):

  1. 为人类编写测试用例而设计
  2. 封装了 CDP 的复杂性,提供 click()、fill()、goto() 等高层 API
  3. 通过 Node.js 服务器中转 WebSocket 通信,多一层网络延迟
  4. 浏览器状态由框架管理,Agent 只能调用框架暴露的有限接口

Browser Harness(Agent 优先路线):

  1. 直接暴露 56 个 CDP 域、652 个方法和全部事件
  2. Agent 自行决定用哪个 CDP 调用,而非通过预设的工具函数
  3. 点击通过 Input.dispatchMouseEvent 在合成器层级模拟,可穿透 iframe 和 Shadow DOM
  4. Agent 可自行扩展 helper,无需等待框架更新7)

需要指出的是,Browser Harness 并非要替代 Playwright 在 QA 测试中的作用——它的目标场景是 AI Agent 驱动的浏览器自动化,而非人类编写的端到端测试。

同场对比:browser-use 与 browser-harness-js

browser-use(105,000+ stars)是 Browser Harness 的「老大哥」,它仍然走的是传统 Agent 框架路线——提供预定义的工具函数、DOM 索引器和元素提取器。Browser Harness 则更进一步,完全放弃了这些抽象。两者定位不同:browser-use 适合希望「马上能用预设工具」的场景,browser-harness 则适合需要「最大自由度」的高级 Agent 操作。8)

browser-harness-js 是 Browser Harness 的 TypeScript 版本(473 stars),将纯 CDP 理念推到了极致:它甚至没有 click()、goto()、upload_file() 等任何高层方法,只提供 56 个域的 652 个类型化 CDP 调用。Agent 自己决定用哪个 API。9)

Domain Skills:一次学习,处处复用

Browser Harness 内置了一个「领域技能」系统。当 Agent 完成一个任务后,系统会分析执行轨迹,提取出可复用的操作模式——包括 URL 模式、CSS 选择器、操作步骤——保存为 skill 文件供后续任务直接使用。10)

目前已积累的 domain skills 涵盖 Amazon、GitHub、Bilibili、LinkedIn、IMDb、Wikipedia、Reddit、Yahoo Finance 等数十个常见网站,并且社区持续通过 PR 贡献新的技能。11)

技能系统有两个关键设计:

  1. PII 过滤:保存的技能会经过专门的 LLM 审查,剔除其中的邮件、Token、用户特定数据
  2. 评分淘汰:社区对技能进行评分(附带书面理由),低于阈值的技能自动淘汰,重复技能自动合并

这套机制形成了一个「Agent 社交网络」——一个 Agent 创建技能,其他 Agent 在使用后留下反馈,系统据此迭代优化。无需 RL 微调,纯靠 Agent 自组织。

v0.1.6:录制与视频能力

最新版本 v0.1.6(2026 年 7 月 17 日发布)新增了浏览器任务录制功能。Agent 可以录制执行过程的真实浏览器帧、点击轨迹、光标移动和键盘输入,然后在任务完成后压缩为带字幕的总结视频,清晰展示每一步的操作和纠错过程。12)

安装与快速开始

安装极其简单,一条命令即可:13)

uv tool install --python 3.12 --upgrade --force browser-harness

然后在 Chrome 中打开 chrome://inspect/#remote-debugging,勾选「允许远程调试」,再给 Agent 一个设置提示即可连接。

对于需要在云端运行或并发多任务的场景,Browser Use Cloud 提供了免费的托管浏览器(3 个并发实例,无需绑定信用卡)。14)

社区反响

Browser Harness 在 Hacker News 上获得了 134 分的热度支持15),YouTube 上也有多篇对比评测视频16)17)。项目在 GitHub 上每周约 17 次提交,版本迭代速度较快(v0.1.2 → v0.1.6 在不到一个月内完成),社区参与度高。

资源

Browser Harness 代表了一种新的 AI Agent 工具设计哲学:不给 Agent 预设的 API,而是让它自己决定用什么 API,并在运行中不断完善自己的工具链。 它不适合作为人类 QA 工程师的测试框架,但如果你是正在构建 AI Agent 应用的开发者,希望让 Agent 拥有最大限度的浏览器操控自由,Browser Harness 值得一试。