📌 项目地址:browser-use/browser-use | ⭐ 96,144 颗星 | 🔧 Python | 📜 MIT
一个自然语言驱动的浏览器代理
browser-use 是一个 Python 库,核心是让 AI 像人一样操作浏览器:你告诉它“去 GitHub 查一下这个仓库有多少 stars”,它就会打开浏览器、搜索、定位元素、读出数字。不需要写 CSS 选择器或 XPath,只要一句自然语言。
项目刚发布不久就冲到 9 万多星,因为这种“语言 → 动作”的转化确实切中了很多人的需求——自动填表、数据抓取、跨网站流程(比如比价、下单、申请工作)。但 star 多不代表你一定能用好,关键要分清它提供的两种模式。
开源代理 vs 云托管代理,先选对再动手
README 里有一张基准测试图(benchmark 100 个真实浏览器任务),结果很直接:
- 开源代理:能胜任大部分常规任务,但复杂场景(需要登录、验证码、跨多个网站协作)准确率明显下降。
- 云托管代理:性能高出一截,自带反爬(proxy 轮换、验证码解决)、持久化文件系统和内存,还预装 1000+ 应用集成(Gmail、Slack、Notion 等)。
你怎么选?
- 如果你只想在本地跑简单任务,不想折腾基础设施,选开源就行。但项目方建议:即使你跑开源,也可以把浏览器连接到它们的云服务(用
use_cloud=True),这样本地逻辑自己写,反爬能力交给云端。 - 如果你的任务涉及多步登录、跨平台操作,或者需要高频运行(比如小时级监控),直接上云托管更省心。README 里也说了云版本是“recommended”。
两种模式并不互斥——开源代理可以调用云浏览器,代码改一行就行。
最快 3 分钟跑起来
依赖只有一个:Python 3.11+,推荐用 uv 包管理器(比 pip 快很多)。
uv init && uv add browser-use && uv sync
# 如果没装 Chromium,运行 uvx browser-use install
然后创建一个 .env 文件,填入 LLM 的 API Key。你可以选三种模型:
BROWSER_USE_API_KEY=your-key # 项目自带的模型
# GOOGLE_API_KEY=your-key # gemini-3-flash-preview
# ANTHROPIC_API_KEY=your-key # claude-sonnet-4-6
接下来写一个最简单的 agent。下面这个例子让 AI 去查这个项目自己的 stars 数:
from browser_use import Agent, Browser, ChatBrowserUse
import asyncio
async def main():
browser = Browser()
agent = Agent(
task="Find the number of stars of the browser-use repo",
llm=ChatBrowserUse(),
browser=browser,
)
await agent.run()
if __name__ == "__main__":
asyncio.run(main())
这里三个关键组件:
Browser:封装实际的浏览器实例(默认用本地 Chromium)。设置use_cloud=True就切换到云浏览器。Agent:大脑,调用 LLM 解析任务、分解步骤、执行动作。ChatBrowserUse(或ChatGoogle、ChatAnthropic):LLM 接口。README 里的注释表明你可以自由切换模型——不同模型对复杂任务的推理能力不一样,如果任务失败,换个模型再试是常见调试手段。
任务字符串可以是任何自然语言指令。AI 会自己决定打开哪个页面、搜索什么、怎么提取数据。实际执行时你会在浏览器窗口里看到它一步步操作(如果 headless=False)。
两个真实用例告诉你它能做什么
README 里提到了两个例子,代码都在仓库里。
1. 自动填写求职申请(examples/use-cases/apply_to_job.py)
把这个任务扔给 agent:“用我的简历和信息填写这份工作申请表”。它会打开招聘网站,按顺序填字段,上传附件(如果需要)。这种多步骤、跨页面的操作正是它的主打场景。
2. 线上购买杂货(README 里有一张 GIF,没写具体任务描述,但显然是对应一个购物场景)
比如“按照我的购物清单在 Instacart 上下单”。这种任务涉及搜索商品、比较价格、添加购物车、进入结算流程——每一步都可能触发模态框、滚动加载等,开源代理的完成度取决于模型和任务复杂度,云代理会靠谱得多。
这两个例子有一个共同点:它们不是单页抓取,而是需要登录、表单交互、甚至处理弹窗。而这正是 browser-use 相比传统 Selenium/Playwright 脚本的优势——你不用预先写死每一步,AI 帮你决策。
文档在哪里
官方提供了两套文档,别搞混:
- 开源库用法、自定义工具、浏览器远程连接等 → docs.browser-use.com/open-source/introduction
- 云托管服务的具体使用、计费、高级功能(持久化、内存等) → docs.cloud.browser-use.com
另外他们还维护了一个基准测试仓库 browser-use/benchmark,你可以看到 100 个任务的详细结果,省得自己评估。
最后说一个我觉得有用的技巧:如果本地跑 agent 总是失败,别急着改代码,先换 LLM 试试。README 里提供了三种模型,你可以在 Agent(llm=...) 里快速切换。毕竟浏览器操作这类视觉+逻辑任务,不同模型的表现差异很大。