只有 592 行 Python,却能让 AI 替你操作浏览器——这个开源项目正在重新定义"自动化"
你不再需要手写 Selenium 脚本。把浏览器交给 AI,它会自己学会怎么用。
你有没有经历过这样的绝望:打开浏览器,登录某个网站,填表、搜索、复制数据、切换页面、再填表……明明只是一个重复操作,却耗掉整个下午。
你也想过写脚本。但 Selenium 太笨重,Playwright 要写选择器,每个网站的 DOM 结构还不一样。写完脚本两周后,网站改版了,选择器全废了。
Browser Harness 说:别写了,让 AI 自己来。
一句话解释它是什么
Browser Harness 是一个极薄的桥梁,只做一件事——在你的浏览器和你常用的 AI 编程工具(Claude Code / Codex)之间建立一条直达通道。
没有中间层,没有抽象封装,没有复杂的 API。
一个 WebSocket 直连 Chrome,剩下的交给 AI。
592 行 Python,凭什么?
整个核心包不到 600 行 Python。它不教 AI 怎么操作浏览器,它只是把 Chrome DevTools Protocol(CDP)原封不动地暴露给 AI,然后让 AI 自己写自己需要的代码。
传统框架 vs Browser Harness:传统方案在"作者编写时"就把能力冻结了;Harness 的能力是在"运行时"由 AI 塑造的。
这是它最颠覆的设计——自愈循环:
AI 代理: 我要上传一个文件 │agent-workspace/agent_helpers.py → 还没有这个功能 │AI 代理自己写了一个 upload_file() 函数 agent_helpers.py │ + 自定义辅助函数✓ 文件上传成功
AI 在运行中修改自己的工具库。 每一次任务都不是一次性的——它留下的代码,下次直接能用。
开发团队分享了两个让人起鸡皮疙瘩的瞬间:
文件上传。团队忘记写 upload_file()。AI 执行到一半碰到文件输入框,grep 了 helpers.py 发现没有,直接写了这个函数——用的是原始 DOM.setFileInputFiles。团队是从 git diff 里发现的。
分块上传。写完 upload_file 后,AI 遇到了一个 12MB 的文件。CDP WebSocket 单次载荷上限约 10MB。AI 碰到限制、读了错误信息、自动切换到分块上传模式。没人告诉它要这么做。
架构有多简单?
四个文件,一条直线:
| | |
|---|
run.py | | |
helpers.py | | |
daemon.py | | |
SKILL.md | | |
AI 写 Python → helpers 封装 CDP → daemon 维护连接 → Chrome 执行。Chrome 以上的一切,AI 都可以改写。
真正的"越用越聪明":Domain Skills
这个项目的另一个核心理念是 Domain Skills(领域技能)。
当 AI 在某个网站上琢磨出一个非显而易见的技巧——比如某个下拉框其实是 React 组合框,必须按 Escape 才能提交;又或者发现了一个私有的 JSON API,比 DOM 抓取快 10 倍——它会自动把这些经验写成 skill 文件,提交到仓库里。
人类在一个网站上犯一次错,终身不忘。为什么 AI 不能?
现在可以了。
没有技能时,每次任务都为"探索"付出全部成本。有了技能,探索成本只付一次,在所有后续任务中摊销。
案例:Duo 二次验证
每个大学学生登录 Canvas 都会碰到 Duo 2FA。第一个 AI 花了 8 次额外调用才搞明白设备信任弹窗怎么处理。它发现按钮有一个稳定的 DOM ID:dont-trust-browser-button。技能系统把这个发现变成了一条 recipe:检测弹窗 → 点击按钮 → 轮询直到跳转。
254 个后续 AI 直接使用,没有一个需要重新摸索。
技能不是简单的"点赞/踩"。AI 会留下文字反馈:
一个带理由的踩不仅仅是降分——技能系统会根据反馈修改技能本身。Duo 技能经历了 3 个版本迭代。分数降到 -3 以下自动退役,近似技能自动合并。
技能安全吗?
每个技能在保存前都会经过一个专门的 PII 检查 LLM,自动拦截包含邮箱、令牌和用户隐私数据的内容。安全性和正确性都由系统机制保证。
下一步:从 UI 到 HTTP
当前技能教 AI 操作 UI——选择器、表单、下拉框。但 UI 只是 HTTP 请求之上的抽象层。每一次按钮点击、每一次表单提交,底层都是一个请求。
团队正在构建 HTTP 级别的技能:技能系统观察任务的 HTTP 流量,逆向工程底层 API,直接保存原始请求。下一个 AI 直接发 API 调用,完全跳过 UI。
目前已有 70+ 网站技能
GitHub、LinkedIn、Gmail、YouTube、TikTok、Amazon、eBay、Spotify、Steam、StackOverflow、小红书、Medium、Reddit、IMDb、Glassdoor、Zillow、SoundCloud、Eventbrite、Coursera、HackerNews、ProductHunt、Expedia、Walmart……
这意味着——你下一次让 AI 去 LinkedIn 搜人,它已经有现成的"经验"了。
团队说:"请不要手写 skill 文件。AI 生成的文件反映的是真正在浏览器中有效的操作。"
一秒钟上手
安装只需一句 prompt,粘贴到 Claude Code 里:
Set up https://github.com/browser-use/browser-harness for me.
AI 会自动 clone 仓库、安装依赖、连接你的 Chrome 浏览器、打开验证页面。
之后,日常使用就变成了一句话:
browser-harness -c 'new_tab("https://docs.browser-use.com")wait_for_load()print(page_info())'
想截个图?一行:
capture_screenshot("~/Desktop/page.png")
想填表、点击、滚动、上传文件、读取数据?同样简洁。
还有免费的远程浏览器
本地跑还不够?Browser Use 提供了免费远程浏览器——无需绑卡:
拿到 API Key 后,一行代码启动远程浏览器:
browser-harness -c 'start_remote_daemon("my-session", proxyCountryCode="de")'
为什么这件事重要?
Rich Sutton 在《The Bitter Lesson》中写过:依靠算力增长的通用方法,最终总是击败依靠人类知识的专用方法。
Browser Harness 是这个理念的完美体现:
- 传统方案:人类手写每个网站的选择器 → 不断维护 → 网站改版就坏
- Browser Harness:AI 自己理解页面结构 → 自己写适配代码 → 自动沉淀经验
它不假设任何网站结构。它让 AI 像人一样看网页,然后像人一样操作。只是更快、更准、不会累。
团队自己也经历了血的教训:几个月前他们还写了一篇博客主张"不要把 CDP 的复杂性暴露给 AI"。后来发现错了。CDP 的复杂性不是该隐藏的——是应该让 AI 看到的。
适合谁用?
写在最后
Browser Harness 不追求大而全。它追求足够薄——薄到你可以完全理解它的每一行代码,薄到 AI 可以自如地在上面构建任何东西。
它的野心不是"又一个浏览器自动化框架",而是:让你再也不需要亲手操作浏览器。
11,000+ Star、70+ 网站技能、一个活跃的开源社区——现在正是上车的好时机。
项目地址:github.com/browser-use/browser-harness
免费 API Key:cloud.browser-use.com
推荐阅读:
- The Bitter Lesson of Agent Harnesses
- Web Agents That Actually Learn