项目研究:Browser Harness
> 仓库:https://github.com/browser-use/browser-harness > 维护方:browser-use 团队(GitHub 24k+ 星的 browser-use 项目作者) > Star:7.2k(截至 2026-06) > 核心代码:~1k 行,4 个 Python 文件 > 创建:2026-04
---
「这是什么」一句话定性
让 LLM 像新手学徒一样直接摸你电脑上的 Chrome——用着发现少了个动作,就当场把代码补进去,下次还会用。
> 不是把浏览器操作"包成 API 给 AI 调用",而是把 Chrome 的一根 WebSocket 拉到本地,让 AI 自己看着办。
---
「它怎么转」逻辑全景图
├─ 触发层:什么情况下需要用它?
│ ├─ AI 任务涉及浏览器:填表、抓数据、跨站点操作
│ ├─ 现有 RPA/Playwright 框架太重、改不动
│ └─ 想要"用着用着越来越聪明"的工具
│
├─ 核心层:4 个文件 + 1 个工作区
│ ├─ _ipc.py (8.9K)
│ │ └─ Unix socket / TCP loopback 通信协议
│ │ 一行 JSON 一个请求/响应,{method, params, session_id}
│ │
│ ├─ daemon.py (19K)
│ │ └─ 守护进程:保活 Chrome 连接、命名空间(BU_NAME)
│ │ 支持本地 Chrome + Browser Use 云浏览器
│ │
│ ├─ admin.py (35K)
│ │ └─ 启动器 + 健康检查 + 自动更新 + PID 指纹防误杀
│ │ 关键设计:跨平台用 process start time 识别同一进程
│ │ 避免 PID 复用把无辜进程当 daemon 干掉
│ │
│ └─ run + agent-workspace/
│ ├─ agent_helpers.py ← AI 自己改的代码
│ └─ domain-skills/ ← 站点套路库(linkedin/, github/...)
│
├─ 输出层:怎么判断做对了?
│ ├─ 浏览器按 LLM 意图动起来
│ ├─ agent_helpers.py 越长越聪明
│ └─ domain-skills/ 积累出可复用 playbook
│
└─ 卡点层:新手最容易在哪里卡住?
├─ Chrome 144+ 首次连接要手动点弹窗的 Allow
├─ Chrome 136+ 用默认 user-data-dir 时 --remote-debugging-port 被静默忽略
├─ Way 2 模式复制默认 profile 后 cookies 全失效(加密键绑了原目录)
├─ 改了源码没提交时 browser-harness --update 直接拒绝
└─ domain skills 不能手写——必须 AI 在实战中"发明"出来才合规范
为什么这么设计:作者在 The Bitter Lesson of Agent Harnesses 里讲透了——20 年浏览器自动化范式(DOM 提取 → 元素 ID → 包装器调用)现在是被 LLM 干翻的对象。别给 AI 包装层,给它 Chrome 自己,让它边干边学。
---
「怎么升级」三段位路线图
入门段(能用)
- 跑通uv tool install -e . + browser-harness
- 在 Chrome 里勾选 chrome://inspect/#remote-debugging(一次就好)
- 让 AI 跑 page_info() 看到自己登录态里的页面 → 信任就建立起来了进阶段(用好)
- 学会看agent_helpers.py 怎么被 AI 自动改写
- 给高频任务攒 domain skills(PR 回去也是贡献方式)
- 用 BU_NAME 起多个隔离会话(工作 / 测试 / 抓数据分开)
- Way 2 用于无人值守任务,Way 1 用于"AI 帮你点自己浏览器"高手段(用活)
- 把 Browser Use Cloud 浏览器接入,AI 在云端浏览器里操作、本地完全干净 - 跨会话编排:一个 AI 调度多个 harness 实例跑并行任务 - 把领域套路编成可复用 Playbook,自己做"AI 操作顾问"普通用户和高手的本质差距:不是会不会调用,而是敢不敢让 AI 改你的代码。这一脚迈出去,harness 才有自愈;迈不出去,就还是个远程浏览器。
---
「能用在哪」场景迁移建议
场景 1:日常自动化(最直接)
自动填表 / 跨系统数据搬运 —— ERP、CRM、表单系统 - 迁移变量:表单结构多变,AI 自己截图判断 + 写新 helper - 风险:误填线上系统,先在 Way 2 隔离 profile 跑通场景 2:动态数据采集
传统爬虫搞不定的 SPA、登录墙、验证码 - 迁移变量:登录态会过期,靠 AI 重新识别 - 风险:面对反自动化识别强度高的站点会更难,这工具走的是真浏览器指纹,相对更难被识别场景 3:Web E2E 测试
用 harness 代替 Playwright/Cypress 写测试用例 - 迁移变量:测试要可重复,AI 写 helper 时要带断言 - 风险:AI 改写可能让测试飘移,断言要严格部署参考
好处:
- 日常 Chrome 的登录态、扩展、书签全部继承(Way 1)
- 不依赖 Browser Use 云,本地全跑也成
- 跟 Claude Code / Codex 无缝集成(就是 SKILL.md 一行 import)
注意事项 / 风险:
- Way 1 模式下,AI 进程能操纵你登录的所有网站(银行、邮箱、内部系统)—— 别在生产环境裸跑
- 让 AI 改 agent_helpers.py 意味着你的工作区代码随时在变—— 提交频率要高
- 跨平台有差异:macOS 用 ps -o lstart=,Windows 走 ctypes,作者对 PID 指纹识别做了细致处理
- 云浏览器是付费服务(Browser Use Cloud ),不传 API key 就用不了
---
一句话总结
它的灵魂:不要替 AI 决定它该会什么,给它 Chrome 自己和一沓白纸,让它在实战中自己长出能力。
附带引用两句关键设计哲学(来自 README / Bitter Lesson 文章): > "The harness improves itself every run." > "Skills are written by the harness, not by you."