BAIZE AI RESOURCE

通过 CDP 让 Agent 直接控制真实浏览器的技能

Browser-harness

通过 CDP 让 Agent 直接控制真实浏览器的技能

Browser-harness

资源介绍

Browser-harness 是 browser-use 团队开源的浏览器控制技能,定位为“最薄、最直接”的 Agent 与真实浏览器之间的连接层。它通过一条可编辑的 CDP WebSocket 把 LLM 接入本机正在运行的 Chrome/Chromium,而不是另起一个隔离的自动化浏览器,因此可以直接复用用户已登录的会话、Cookie 和浏览器配置。

工作方式上,Agent 以 `browser-harness` 命令加 heredoc 的方式执行 Python 片段,辅助函数已预导入;本地守护进程(daemon)在多次 CLI 调用之间保持标签页附着状态,任务开始时用 `new_tab(url)` 打开页面,之后通过 `list_tabs()`、`switch_tab()` 复用标签页。仓库内置 `SKILL.md` 教授浏览器工作流,`interaction-skills/` 覆盖 iframe、Shadow DOM、拖拽、上传下载、对话框、网络请求、截图、打印 PDF 等交互细节,`agent-workspace/domain-skills/` 则按站点(如 Amazon、GitHub、LinkedIn、小红书、BOSS 直聘等)提供领域技能,默认关闭,需设置 `BH_DOMAIN_SKILLS=1` 启用。

它适合需要登录态、JS 渲染或反爬页面的自动化任务,例如抓取个人账号下的内容、批量下载视频、填写后台表单;对于公开静态内容的简单抓取,官方建议直接用 curl 等 HTTP 工具。项目以 Python 3.11+ 实现,MIT 许可,同时提供 `browser-harness-mcp` 以 MCP 工具形式暴露浏览器控制能力。

Skill 能力

真实浏览器直连

通过单条可编辑的 CDP WebSocket 连接本机正在运行的 Chrome/Chromium,复用用户已登录的会话与 Cookie,而非启动隔离的自动化浏览器实例。

Agent 自写辅助函数

核心代码位于受保护的 src/browser_harness/,Agent 在 agent-workspace/agent_helpers.py 中按需编写可复用辅助函数,使 harness 随任务积累能力。

守护进程与标签页复用

本地 daemon 在多次 CLI 调用间保持附着标签页,提供 new_tab、current_tab、list_tabs、switch_tab 等接口,避免重复开标签页并支持后台截图与 CDP 输入。

交互技能库

Interaction-skills/ 目录覆盖 iframe、跨域 iframe、Shadow DOM、拖拽、下拉框、对话框、上传下载、网络请求、截图、滚动、视口、打印 PDF、录制视频等具体浏览器交互场景。

站点领域技能

按站点组织浏览器自动化技能文件,存放在 agent-workspace/domain-skills// 目录下,默认关闭,需设置 BH_DOMAIN_SKILLS=1 启用;启用后遇到站点相关任务时,应先读取对应站点目录下的全部技能文件再设计操作方案,例如 shopify-admin 目录提供 admin.shopify.com 及嵌入式 Shopify 应用的浏览器操作模式。

MCP 服务与诊断

Browser-harness-mcp 通过 stdio 把浏览器控制辅助函数暴露为 MCP 工具供任意 MCP 客户端调用;browser-harness --doctor 用于诊断守护进程连接问题。

资源配置

适用平台

Claude CodeCodexCursor通用 Agent

支持模型

模型无关

调用方式

命令调用Agent调用手动调用

安装与调用

  1. 使用 uv 与 Python 3.12 安装或升级 browser-harness,并通过 `browser-harness skill` 注册技能。

  2. 按 install.md 指引连接浏览器:Agent 会打开 chrome://inspect/#remote-debugging,首次需勾选复选框允许远程调试。

  3. 以 `browser-harness <<'PY' ... PY` 的 heredoc 形式执行 Python 片段,辅助函数已预导入,run.py 会在 exec 前调用 ensure_daemon()。

  4. 任务首次导航使用 new_tab(url),之后通过 current_tab()、list_tabs()、switch_tab() 复用标签页,避免重复打开同一 URL。

  5. 如需站点领域技能,设置环境变量 BH_DOMAIN_SKILLS=1,并先阅读 $BH_AGENT_WORKSPACE/domain-skills// 下的对应文件。

  6. 连接异常时运行 `browser-harness --doctor`;macOS 出现远程调试授权提示时,在另一终端以相同 BU_NAME 调用 `browser-harness mac-approve`。

使用案例

下载 X 账号最新视频

使用场景在已登录的 X 账号中批量获取个人视频内容

官方展示任务“打开我的 X 主页,找到最新 20 条视频帖子并下载”,演示了 harness 在登录态下完成多步浏览器操作的能力。

Shopify 后台自动化

使用场景驱动 admin.shopify.com 及嵌入式应用完成配置或表单填写

Domain-skills/shopify-admin 说明 Shopify 应用运行在 iframe 中,Polaris React 输入框拒绝合成值设置,需改用 CDP type_text;只读商品数据则建议改用 Storefront API。

通过 MCP 客户端驱动浏览器

使用场景在 Claude Code、Cursor 等 MCP 客户端中直接调用浏览器控制工具

Browser-harness-mcp 以 stdio 暴露浏览器控制辅助函数为 MCP 工具,客户端无需再自行实现一层 CDP 逻辑。

包含内容

browser-harness-source.zip
README-中文安装说明.md
LICENSE-MIT.txt
SHA256.txt