项目地址:GitHub - Einsia/Browser-BC · GitHub
论文:BrowserBC Paper


项目概述:一个让 Agent 学会用浏览器的方案

BrowserBC 是 Einsia AI 旗下 Navers Lab 最近开源的一个项目,解决的核心问题很简单:怎么让 AI Agent 更高效地使用浏览器完成任务

现在的 AI Agent 越来越强,但让它操作浏览器还是个麻烦事。每次让 Agent 去一个没去过的网站,它都得从零开始探索——点这里试试、点那里试试,效率很低,还经常出错。

BrowserBC 的思路很巧妙:把人类操作浏览器的过程录下来,用 LLM 转写成自然语言的"技能卡",然后 Agent 照着技能卡执行

一句话总结:人类点一遍,Agent 就能跑通。

这个方案在 WebArena-Hard 等基准测试上效果明显,任务成功率从 60% 提升到了 81%,而且支持跨模型迁移——大模型录制的技能,小模型也能用。


现有 Web Agent 方案的核心痛点

要让 Agent 操作浏览器,现在主流有几种方案,但都有明显的问题:

方案一:API 对接

  • 原理:调用网站开放的 API 接口
  • 问题:大量网站根本没有 API,也不会专门给 Agent 开放接口

方案二:视觉识别

  • 原理:让多模态模型看截图,识别页面元素
  • 问题:坐标很脆弱,页面布局稍微变一下就失效

方案三:DOM 选择器

  • 原理:用 CSS/XPath 定位页面元素
  • 问题:网站一更新,DOM 结构变了,选择器就挂了,维护成本高

方案四:脚本回放

  • 原理:录制操作序列,然后回放
  • 问题:绑定特定的页面状态,换个网站或换个页面就跑不通

这些方案有个共同的痛点:技能和执行耦合在一起。录下来的操作依赖具体的页面状态、具体的 DOM 结构、具体的坐标位置,换个环境就不行了。

BrowserBC 的解法

BrowserBC 的核心思路是把技能和执行解耦

  • 技能用自然语言描述("在搜索框输入城市名"),而不是代码("点击 #search-box > input")
  • Agent 执行时根据当前页面灵活调整,而不是死板地按脚本走

这样做的好处:

  • 不绑定具体页面结构:页面改了,只要语义没变,技能还能用
  • 跨模型兼容:大模型录的技能,小模型也能执行
  • 人类可审核:自然语言,非技术人员也能看懂和修改

BrowserBC 的设计思路:录制-转写-执行三步范式

BrowserBC 的设计分三步走:录制 → 转写 → 执行

第一步:录制

人类在浏览器里正常操作,系统把过程记录下来。但不是把所有东西都录下来,关键是只保留语义信息,丢掉脆弱的细节

不保留的东西

  • 精确的像素坐标(x=342, y=518)
  • CSS 选择器(#search-box > div > input)
  • XPath(/html/body/div[2]/form/input)
  • 临时 DOM ID、登录态 Cookie、密码、Token

保留的东西

  • 元素的语义描述("搜索输入框"、"提交按钮")
  • 操作的意图("输入目的地城市"、"点击搜索")
  • 页面的状态变化("搜索结果已加载")

这个思路很聪明——丢掉的是容易变的东西,留下的是稳定的语义。

第二步:转写(核心创新)

这一步是 BrowserBC 最有意思的地方:用 LLM 把录制的操作轨迹,转写成自然语言描述的技能卡

举个例子,人类在预订网站搜索民宿的操作,转写后的技能卡大概长这样:

技能名称:搜索住宿

步骤1:定位搜索输入框,输入目的地城市名称
  - 验证:输入框显示正确的城市名
  - 异常处理:如果搜索框不可见,检查是否需要先关闭弹窗

步骤2:选择入住日期和退房日期
  - 验证:日期已显示在表单中
  - 异常处理:如果日期不可选(已满),尝试前后一天

步骤3:选择入住人数
  - 验证:人数已正确显示
  - 异常处理:如果人数选择器为下拉框,点击展开后选择

步骤4:点击搜索按钮
  - 验证:页面跳转到搜索结果页,显示多个结果
  - 异常处理:如果无结果,尝试调整日期或人数

步骤5:按评分排序,选择评分最高的选项
  - 验证:已进入详情页
  - 异常处理:如果最高评分不可订,选次高评分

成功标准:
- 搜索结果页面已加载
- 至少显示3个可选住宿
- 最终选择了评分>=4.5的选项

适用场景:
- 任何支持搜索的预订网站
- 目的地、日期、人数可变

注意看——这不是代码,是自然语言。这意味着:

  • 不绑定任何编程语言或框架
  • 不依赖任何具体的 DOM 结构
  • 任何 LLM 都能读懂
  • 人都能审核和修改

第三步:执行

Agent 拿到技能卡后,在真实页面上执行任务。

关键点:技能卡是参考指南,不是死板脚本。Agent 会根据当前页面的实际情况灵活调整。

比如技能卡说"点击搜索按钮",但页面上搜索按钮的位置变了,Agent 能通过语义理解找到它,而不是靠固定的坐标或选择器。如果某个步骤失败了(比如日期不可选),Agent 会按技能卡里的异常处理建议尝试替代方案。

技能图:让技能库可控扩张

BrowserBC 不只是单条技能卡,而是把技能组织成图结构(Skill Graph)。

技能分三层:

  • 基础技能层:click_button、fill_form、submit_form 等原子操作
  • 组合技能层:search_accommodation、book_flight 等由多个基础技能组合而成
  • 高级技能层:cross_site_comparison、multi_step_approval 等复杂流程

当新技能加入时,系统会自动计算语义向量,找到相似技能建立关联,识别组合关系。这样技能库可以持续扩张而不会变成一团乱麻。


基准测试验证:成功率提升 20%+

两个基准测试的数据:

WebArena-Hard

  • 基线成功率:60.5%(156/258)
  • 注入技能后:81.4%(210/258)
  • 提升 +20.9%

ClawBench(更严格,用的是真实线上网站,页面会变化):

  • 基线成功率:32.9%(50/152)
  • 注入技能后:68.4%(104/152)
  • 提升 +35.5%

几个关键发现:

  1. 技能让成功率几乎翻倍——ClawBench 上提升尤其明显
  2. 有技能时 Agent 更快完成任务——步数更少,不瞎摸索
  3. 技能支持跨模型迁移——大模型录制的技能,小模型也能用
  4. 技能不依赖记忆——ClawBench 的页面会变化,排除了"靠背答案"的可能

与主流 Web 自动化方案的对比

维度 BrowserBC Browser Use Playwright Selenium
定位 技能蒸馏框架 浏览器自动化库 自动化测试工具 自动化测试工具
操作定义 自然语言技能卡 代码/函数调用 代码脚本 代码脚本
页面变化适应 语义级适应 选择器级 选择器级 选择器级
跨模型迁移 支持 不支持 N/A N/A
技能复用 技能图管理
上手门槛 低(自然语言) 中(Python)

BrowserBC 的核心区别在于:它不是在"怎么写自动化脚本"这个层面做文章,而是在"怎么让 Agent 学会操作"这个层面解决问题。


对 Agent 开发者的启发与思考

作为一个正在学 Agent 开发的 Java 后端,BrowserBC 给了我几个比较深的启发:

1. Web Agent 的新思路

以前做 Web 自动化,思路是"怎么写脚本"。BrowserBC 提供了另一种思路:"怎么让 Agent 学会操作"。

如果你的项目里有用到浏览器自动化(爬虫、RPA、自动测试),这种"录制→转写→执行"的范式值得关注。特别是需要跨多个网站工作的场景,技能卡的复用价值很大。

2. 自然语言作为中间层的价值

BrowserBC 用自然语言做技能的载体,看似"不精确",实际解决了几个问题:

  • 跨模型兼容:任何 LLM 都能读懂,不被某个模型绑定
  • 人类可审核:非技术人员也能看懂和修改
  • 泛化能力强:不绑定具体实现细节

在做 Agent 开发时,不是所有东西都需要精确到代码级别。有时候自然语言的模糊性反而是优势——它让系统更灵活、更鲁棒。

3. 技能复用是规模化的关键

单个技能解决单个问题,但技能多了怎么管理?BrowserBC 用"技能图"来组织技能,支持语义检索和组合复用。

如果你的 Agent 需要处理大量不同类型的任务,这种组织方式值得参考。不然技能库大了之后,检索和管理都会成为问题。

4. 可以关注的方向

  • 结合 Spring AI 做 Java 侧的集成:BrowserBC 主要是 Python 实现,Java 生态目前还没有类似的成熟方案
  • 用 pgvector 存储技能向量:做语义检索,找到最相关的技能
  • 多 Agent 协作场景:浏览器 Agent 可以作为其中一个 specialized agent,和其他 Agent 协作

典型应用场景

  • Web 自动化测试:录制测试流程,转成技能卡,后续自动执行
  • 跨站数据采集:不同网站结构不同,但语义层面的操作可以复用
  • 内容发布自动化:多平台发布,技能卡适配不同平台
  • RPA 场景:传统 RPA 靠脚本维护成本高,BrowserBC 靠语义,维护更简单

总结

BrowserBC 的核心贡献是提出了"录制-转写-执行"的三步范式,把人类操作蒸馏成自然语言技能卡,让 Web Agent 不用再从零探索。

对开发者来说,这个项目最大的价值不是具体的技术实现,而是设计思路:

  1. 用自然语言做中间层,解耦技能和执行
  2. 用技能图组织技能,支持规模化复用
  3. 利用 LLM 的语义理解,替代脆弱的选择器定位

参考资料

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐