浏览器代理执行层

BAP是一个高性能浏览器代理执行层,位于AI代理与浏览器之间,提供低延迟(10-25ms/动作)、结构化观察和会话持久化功能,适用于自动化测试、数据抓取等场景。

  • by browseragentprotocol
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 browseragentprotocol/bap

使用说明

浏览器代理协议(BAP)

浏览器代理的执行层。每个动作10-25ms,零令牌开销,LLM实际可以使用的结构化观察。

BAP位于您的AI代理和浏览器之间。代理人决定 什么 要做到这一点,BAP会立即、可靠地使用语义选择器和会话持久性。

CLI  ·  MCP  ·  Python  ·  Docs  ·  Apache-2.0


为什么选择BAP

代理管道中的每个浏览器操作都有成本——延迟、令牌和美元。

                  per action    per 20-action task    1000 tasks/day
Stagehand          800ms, $0.01      $0.20                 $200
Browser Use       1500ms, $0.02      $0.40                 $400
BAP (in-process)    20ms, $0.00      $0.00                   $0

Stagehand Browser Use通过LLM发送每次点击和填写。BAP不会——你的经纪人的法学硕士决定行动,BAP直接通过剧作家执行。LLM调用发生一次(在代理中),而不是每次操作(在浏览器层)。

BAP适用于想要控制情报的团队。 你带LLM,BAP带浏览器。

BAP给你的代理人什么

无BAP 有BAP
LLM看到了什么 原始HTML(10000+标记) @submit button: "Submit", @email textbox: "Email" (50个代币)
每次操作的延迟 800-1500ms(循环中的LLM) 10-25ms(直接执行)
会话状态 转弯之间丢失 持续存在——浏览器保持温暖
当选择器断开时 代理失败 通过uSEID回退进行自我修复
可重复性 非确定性 DBAR确定性回放

开始使用

npm i -g @browseragentprotocol/cli
bap install-skill

或者跑 bap demo 进行引导式演练。

然后给你的代理人一个任务:

Use BAP to open https://example.com, find the pricing page, and extract the plan names and prices.

快速示例

# Navigate and observe — one fused call
bap goto https://example.com --observe

# Agent sees structured output:
#   @navPricing link: "Pricing"
#   @heroSignup button: "Get Started"
#   @searchInput textbox: "Search..."

# Agent decides to click pricing — BAP executes in 15ms
bap act click:@navPricing --observe

# Extract structured data
bap extract --fields="plan,price,features"

运作原理

Your LLM Agent          ← decides what to do (planning, reasoning)
    ↓
BAP (MCP or CLI)        ← executes it (10-25ms, structured observations)
    ↓
Playwright              ← handles the browser (auto-wait, smart inputs)
    ↓
Chrome/Firefox/WebKit   ← renders the page

BAP是Playwright之上的一个薄协议层。它补充道:

  • 结构性观察 --带有引用、角色和操作提示的交互式元素,而不是原始HTML
  • 语义选择器 — role:button:"Submit", text:"Sign in", @ref 而不是脆弱的CSS
  • 熔断操作 — goto --observe 节省了往返行程, act --observe 链条动作+观察
  • 会话持续 --浏览器在代理轮换期间保持活动状态,无需重新启动
  • 自愈选择器(uSEID) --当页面加载之间的元素发生变化时,BAP会退回到语义身份匹配
  • 确定性回放(DBAR) --记录浏览器会话,以相同的方式回放以进行测试和CI

接口

接口 安装 最适合
MCP(进程中) npx @browseragentprotocol/mcp --in-process 最快——10-25ms/动作,零WebSocket开销
MCP(独立) npx @browseragentprotocol/mcp 标准MCP客户端(Claude、Cursor、Codex)
CLI+技能.md npm i -g @browseragentprotocol/cli 具有shell访问权限的编码代理
TypeScript SDK npm i @browseragentprotocol/client 应用程序和代理后端
开发包 pip install browser-agent-protocol Python代理和笔记本

基准

在真实网站上测量(维基百科、黑客新闻)-- 浏览:

Action           CDP-raw   Playwright   BAP MCP    BAP CLI    PW CLI
─────────────────────────────────────────────────────────────────────
navigate           68ms       593ms       26ms      1490ms     590ms
observe            14ms         7ms        8ms       145ms     591ms
fill                1ms        18ms       13ms       148ms     588ms
extract             0ms         8ms        5ms       164ms     604ms
─────────────────────────────────────────────────────────────────────
tokens/call          0           0         35          155        0
pass rate          100%        100%       100%        100%     100%

BAP MCP(进程内)是原始CDP的2倍,与Playwright的直接API匹配,同时为您的代理提供结构化观察、语义选择器和会话持久性。

何时使用什么

用例 建议
已知站点上的已知工作流 (抓取、测试、数据输入) BAP MCP或Playwright——你知道选择器,每个动作的人工智能没有任何价值
陌生网站上的代理 (查找定价,浏览文档) BAP用于执行+LLM用于规划。结构化观测使LLM更便宜、更准确
不想构建规划层 Stagehand——捆绑LLM+执行,但速度慢40倍,每天200美元以上
复杂的多步骤目标 浏览器使用——最高抽象,最高成本
规模(100+并发浏览器) 基础设施浏览器+自动化层BAP

看实际效果


Navigate → click → browse: 3 commands, one workflow


Multi-site workflow: browse GitHub → open skills.menu → paste & score

提示

  • BAP默认为具有持久会话的令人头疼的Chrome。
  • 使用 --headless 用于CI或后台运行。
  • 使用 --no-profile 如果您的Chrome个人资料正忙。
  • 使用 --slim 将工具定义切割为约600个标记(而Playwright MCP为约4200个)。
  • 使用 bap close-all 停止守护进程和所有会话。

文档

贡献

许可证

阿帕奇-2.0。看 许可证 了解详情。