browser-use/browser-use:让大语言模型直接控制真实浏览器完成交互任务 | 2026/10/03

行业痛点

大语言模型发展至今,已经能够完成大量文本生成、逻辑推理类任务,但始终存在一个难以突破的瓶颈:现有方案大多依赖网站提供的官方API,才能获取数据、完成操作。对于没有开放API的站点,或是需要多步骤交互、动态渲染的页面,传统方案要么需要开发者花费数天时间编写适配脚本,应对反爬机制、元素选择器变化,要么只能通过截图+OCR的方式模拟交互,准确性极差,无法应对复杂场景。

自动化测试领域的成熟工具,大多针对测试场景设计,需要手动编写大量定位规则,无法适配动态页面的随机变化,更不能结合大语言模型的理解能力自主完成任务。普通开发者想要让AI自动完成网页上的操作,比如填写表单、点击按钮、提取动态生成的内容,一直没有轻量易用的方案。

项目概述

该项目由browser-use开源组织开发,全部代码基于Python编写,是目前该组织下星数最高的核心项目,其余三个同组织项目均围绕该项目的生态扩展。项目从2024年底开始启动,上线后短时间内获得了开发者社区的大量关注,迭代速度保持每周至少一个小版本,核心功能已经趋于稳定。

该项目的核心定位,是提供一套可编程接口,让大语言模型能够直接控制真实的Chrome浏览器实例,自主解析网页结构,理解页面内容,完成用户指定的网页交互任务,不需要开发者提前编写元素定位规则,也不需要网站提供官方API。

技术架构深度分析

该项目的技术选型围绕易用性和扩展性两个核心目标设计,整体依赖Playwright控制浏览器实例,对接市面上所有主流的大语言模型API,包括OpenAI、Anthropic、Google Gemini以及各类兼容OpenAI接口格式的本地部署模型。选择Playwright而非Selenium,主要因为Playwright对现代动态网页的兼容性更好,自带等待元素渲染的机制,减少了不必要的交互错误,同时API设计更简洁,适合快速集成。

整体架构分为三层,最底层是浏览器控制层,封装了Playwright的原生接口,提供页面导航、元素点击、文本输入、内容提取这些基础操作,统一处理页面加载超时、元素找不到这类异常,给上层提供稳定的调用接口。中间层是网页解析层,负责将当前页面的DOM结构转换为大语言模型能够理解的文本摘要,会自动过滤掉无关的脚本、样式、广告元素,只保留可交互的节点和关键文本信息,降低大语言模型的上下文负担。最上层是任务调度层,接收用户的自然语言任务指令,调用大语言模型生成每一步的操作计划,依次调用底层接口执行,再将执行结果返回给大语言模型判断任务是否完成,循环直到任务结束或者超出最大步数限制。

这样分层设计的优势在于,每一层都可以独立替换升级,比如如果后续出现更高效的浏览器控制工具,只需要修改底层控制层的代码,中间层和上层完全不需要改动。如果出现更优的DOM压缩算法,也只需要更新网页解析层,不影响其他模块的功能。开发者如果需要扩展自定义操作,比如加入验证码识别、文件下载处理,只需要在控制层新增对应接口即可,接入成本很低。

核心功能详解

基于自然语言的任务拆解

用户只需要用自然语言描述需要完成的任务,不需要编写任何代码逻辑,项目会自动将整个任务拆解为多步浏览器操作。大语言模型会根据当前页面的内容判断下一步该点击哪个元素、填写什么内容,不需要开发者提前指定元素的选择器。该功能适用于一次性的自动化任务,比如批量抓取没有API的公开数据,自动填写多个网站的入职表单。

动态DOM结构自适应解析

项目会自动对当前页面的DOM树进行预处理,移除所有不可见元素、无关的元数据和广告节点,将剩余的可交互元素转换为结构化的文本描述。处理后的文本长度远小于原始DOM的大小,既能够保留足够的交互信息,又不会占用大语言模型太多的上下文窗口,降低token成本。该设计解决了动态网页元素选择器频繁变化,传统自动化脚本容易失效的问题。

全主流大模型兼容支持

项目内置了对接所有主流闭源大模型的适配器,也支持本地部署的开源大模型,只要接口符合OpenAI的格式规范就可以直接接入。用户只需要在配置文件中填入对应的API密钥和地址,就可以切换使用不同的模型,不需要修改任何业务代码。该设计让不同预算、不同需求的用户都可以使用,对数据隐私要求高的团队可以完全本地化部署,不需要将页面数据发送给第三方模型服务商。

真实浏览器环境运行

项目控制的是完整的真实Chrome浏览器实例,和普通用户使用的浏览器没有区别,可以执行页面上的JavaScript、渲染动态内容、处理Cookie和本地存储,也能绕过大部分基础的反爬机制。和基于模拟请求的爬虫方案相比,不需要手动处理Cookie拼接、签名参数生成这类问题,开发成本更低。和截图OCR方案相比,直接获取DOM信息的准确性高很多,出错率更低。

可扩展的自定义工具支持

项目提供了自定义工具扩展接口,开发者可以根据自己的需求新增大语言模型可以调用的工具,比如下载文件保存到本地、调用验证码识别API处理验证、将提取到的数据存入数据库。扩展工具的开发成本很低,只需要按照规范编写函数和描述,项目会自动将工具信息提供给大语言模型,让模型在需要的时候自动调用。该功能适合有特定需求的企业用户,可以根据业务场景定制能力。

任务状态和结果持久化

每一步任务执行的过程、操作结果、页面截图都会被记录下来,用户可以回溯整个任务执行的流程,排查出错的原因。任务支持暂停和恢复,如果执行过程中出现错误,会自动重试指定次数,不会直接中断整个流程。该设计方便开发者调试自定义任务,也让长时间运行的批量任务稳定性更高。

让大语言模型直接控制真实浏览器,自主完成自然语言描述的网页交互任务,不需要提前编写元素定位规则,支持所有主流大模型。项目基于Python开发,轻量易用,可扩展自定义能力,适用于各类无API网页自动化场景。

项目地址:https://github.com/browser-use/browser-use
⭐ Stars:117048
🔍 来源:GitHub

Agents that use the browser.

手机扫描二维码访问

微信扫一扫支付
微信logo微信扫一扫,打赏作者吧~
不喜欢2

本文链接:https://5x10.cn/post/691.html

猜你喜欢

网友评论