最近一直在研究 Browser Use ,也尝试了几种让 Agent 操作浏览器的方案。目前来看,主流方案大致有三种:
1. CDP 协议( Playwright / Selenium )
优势是技术成熟、生态完善,基本上各种浏览器操作都能覆盖。
但实际使用中有个比较明显的问题:独立启动的 Chrome 没有日常浏览器的账号登录状态;如果想接管已经在使用的 Chrome ,又需要提前配置远程调试参数,使用起来不够自然。
2. 浏览器插件( Extension )
这是我个人比较看好的方案。
不需要修改 Chrome 启动参数,可以直接复用用户日常浏览器的登录状态,也更适合个人 Agent 的使用场景。
Anthropic 和 OpenAI 的部分 Browser Use 产品也采用了类似的技术路线。
但问题是,这些厂商的浏览器插件通常只服务于自家 Agent ,不会直接开放给第三方 Agent 接入。部分产品的实际可用性也还有待完善,比如今天测试 WorkBuddy 时,就没能正常跑通。
3. WebContentsView + JS 注入
这种方案灵活性比较高,可以自行控制浏览器容器和脚本执行逻辑。
缺点是需要自己维护 WebContentsView 及相关能力,而且和独立 Chrome 类似,也会面临用户日常账号会话无法直接复用的问题。
综合体验下来,我更倾向于浏览器插件这条路线。
但随之而来的问题是:
如果我们自己开发了一个 Agent ,能不能也像这些大厂的 Agent 一样,直接控制用户日常使用的 Chrome ?
为了解决这个问题,最近做了一个小工具:Xtaff Browser。
Chrome 插件地址: https://chromewebstore.google.com/detail/xtaff-browser/ojklapkgpijghmlifajbmldghnhmejfh
它的思路比较简单:通过 Chrome 插件提供浏览器操作能力,再通过 MCP 将这些能力开放给自己的 Agent 。
使用流程基本只有三步:
- 在 Chrome 中安装 Xtaff Browser 插件
- 给自己的 Agent 配置对应的 MCP
- 开始让 Agent 操作浏览器
比如浏览论坛、读取网页信息,或者操作一些已经登录的业务系统,都可以直接复用当前浏览器环境,不需要再单独启动一个 Chrome 。
除此之外,还做了两个辅助功能:
- 网站 Playbook:记录特定网站的操作流程,方便 Agent 后续复用。
- 会话暂存:保存操作过程中的会话上下文,方便后续继续执行任务。
目前插件不涉及向外部服务发送请求,相关数据均保存在浏览器本地。
更完整的图文介绍和实际使用效果放在这里:
https://x.com/qiwiview/status/2118566997126701380
项目还在持续完善中,欢迎交流,也欢迎反馈使用中遇到的问题。