网页操作
让 AI Agent 像人一样操作网页、自动完成在线任务的框架,该赛道头部
Browser Use 能做什么?
Browser Use 让 AI 代理像你一样使用网页浏览器——它能打开页面、点击按钮、输入文字、填写表单。你描述任务,它就能完成。例如,你可以让它:
📋 填写表单
任务:“用我的简历和信息填写这份求职申请。”
🍎 提取数据
任务:“提取关于我关注者的结构化数据,并导出为 CSV。”
https://github.com/user-attachments/assets/93714c75-98f4-4cfc-add1-69c38b5138b5
💻 QA 自动化
任务:“QA 测试我的本地网站,报告任何 bug、可用性问题以及视觉不一致之处。”
快速开始
如果你想在你的代理(Claude Code、Codex、Cursor、Hermes、OpenClaw 等)中使用 Browser Use,粘贴以下提示,它会自动完成所有设置:
使用 Python 3.12 通过 uv 安装或升级 browser-use 到最新的稳定版本,运行 `browser-use skill install` 注册技能,并将其连接到我的浏览器。如果设置或连接失败,请按照 https://github.com/browser-use/browser-harness/blob/main/install.md 操作。
然后告诉你的代理你想做什么。
Python 库:自动化网页的最简单方式
想大规模自动化网页操作,从你自己的代码出发,支持任何 LLM?使用 Python 库:
1. 安装 Browser Use(Python >= 3.11):
uv add browser-use
# 或:pip install browser-use
2. 将你的 LLM API 密钥添加到 .env。 可以从 Browser Use Cloud 获取一个,或者使用你自己的提供商密钥:
# .env
BROWSER_USE_API_KEY=你的密钥
# GOOGLE_API_KEY=你的密钥
# ANTHROPIC_API_KEY=你的密钥
3. 运行你的第一个代理:
import asyncio
from browser_use import Agent, ChatBrowserUse
async def main():
agent = Agent(
task="查找 browser-use 仓库的星标数",
llm=ChatBrowserUse(model='openai/gpt-5.5'),
# llm=ChatBrowserUse(model='bu-2-0'), # Browser Use 优化模型
# llm=ChatOpenAI(model='gpt-5.5'),
# llm=ChatAnthropic(model='claude-opus-4-8'), # Sonnet 也表现不错
)
history = await agent.run()
if __name__ == "__main__":
asyncio.run(main())
开源版 vs 云版
我们在 100 个真实世界浏览器任务上对 Browser Use 进行了基准测试。完整基准是开源的:browser-use/benchmark。
Browser Use 也是 Odysseys 排行榜第一名,平均分 87.4%,领先于 OpenAI、Anthropic、Google 和 Microsoft 的计算机使用代理。Odysseys 衡量代理在 200 个长周期网页任务上的性能。
使用开源代理
- 免费,运行在你自己的机器上
- 深度代码级集成和控制:选择你的 LLM,自定义代理行为
- 我们建议将其与我们的云浏览器配对使用,以获得领先的隐身性、代理轮换和扩展能力
使用完全托管的云代理(推荐)
- 对于复杂任务,代理更强大(见上图)
- 最易于上手和扩展
- 通过代理轮换和验证码解决获得最佳隐身性
- 1000+ 集成(Gmail、Slack、Notion 等)
- 持久化文件系统和记忆
集成、托管、自定义工具、MCP 等更多内容,请查看我们的文档 ↗
常见问题
我应该使用 CLI 还是 Python 库?
使用 CLI:如果您已经有一个希望它能为您完成浏览器任务的 agent(例如 Claude Code、Codex、Cursor、Hermes、OpenClaw 等),请使用 CLI。agent 只需安装一次技能(参见快速入门),之后即可控制浏览器。例如:
- “将此视频上传到 YouTube”
- “比较这三款笔记本电脑,并给我一个包含价格的表格”
- “用我的简历填写这份工作申请”
使用 Python 库:当您正在构建自动化网络的软件时,请使用 Python 库。例如:
- 按计划或并行运行大量任务(爬取、监控、质量保证)
- 将浏览器 agent 嵌入到您自己的产品中
- 自定义工具、自定义系统提示、结构化输出、精细的浏览器控制
经验法则:通过 agent 完成一次性任务 → 使用 CLI。在代码中实现可重复的自动化 → 使用 Python 库。
使用哪种模型最好?
我们专门针对浏览器自动化任务优化了 ChatBrowserUse()。平均而言,它以 SOTA 准确率完成任务的速率是其他模型的 3-5 倍。
关于定价和其他 LLM 提供商,请参阅我们的支持的模型文档。
我可以通过 ChatBrowserUse 使用 Claude / GPT / Gemini 吗?
可以。ChatBrowserUse 接受带提供商标记的模型 ID,因此单个 BROWSER_USE_API_KEY 即可连接所有这些模型——无需单独获取 OpenAI/Anthropic/Google 的密钥:
from browser_use import Agent, ChatBrowserUse
llm = ChatBrowserUse(model='anthropic/claude-sonnet-4-6') # 或 'openai/gpt-5.5', 'google/gemini-3-pro'
agent = Agent(task='...', llm=llm)
为了获得最佳速度和成本,我们仍然推荐默认的 bu-* 模型。
我应该在使用开源预览模型时使用 Browser Use 系统提示吗?
是的。如果您使用 ChatBrowserUse(model='browser-use/bu-30b-a3b-preview') 配合普通的 Agent(...),Browser Use 仍会为您发送其默认的 agent 系统提示。
您不需要仅仅因为切换到了开源预览模型就添加一个单独的“Browser Use 系统消息”。只有当您有意为任务自定义默认行为时,才使用 extend_system_message 或 override_system_message。
如果您想要最佳的默认速度/准确率,我们仍然推荐较新的托管 bu-* 模型。如果您想要开源预览模型,除了 model= 的值外,设置保持不变。
我可以使用自定义工具与 agent 配合吗?
当然可以!您可以添加自定义工具来扩展 agent 的能力:
from browser_use import Tools
tools = Tools()
@tools.action(description='Description of what this tool does.')
def custom_tool(param: str) -> str:
return f"Result: {param}"
agent = Agent(
task="Your task",
llm=llm,
browser=browser,
tools=tools,
)
我可以免费使用它吗?
可以!Browser-Use 是开源的,并且可以免费使用。您只需要选择一个 LLM 提供商(例如 OpenAI、Google、ChatBrowserUse,或者使用 Ollama 运行本地模型)。
如何处理身份验证?
查看我们的身份验证示例:
- 使用真实浏览器配置文件 - 重用您现有的 Chrome 配置文件及已保存的登录信息
- 如果您希望使用带有收件箱的临时账户,请选择 AgentMail
- 要将您的身份验证配置文件与远程浏览器同步,请运行
curl -fsSL https://browser-use.com/profile.sh | BROWSER_USE_API_KEY=XXXX sh(将 XXXX 替换为您的 API 密钥)
这些示例展示了如何无缝维护会话并处理身份验证。
如何解决 CAPTCHA?
对于 CAPTCHA 处理,您需要更好的浏览器指纹和代理。请使用 Browser Use Cloud,它提供隐身浏览器,旨在避免检测和 CAPTCHA 挑战。
如何投入生产?
Chrome 可能会消耗大量内存,并且同时运行多个 agent 可能难以管理。
对于生产用例,请使用我们的 Browser Use Cloud API,它可以处理:
- 可扩展的浏览器基础设施
- 内存管理
- 代理轮换
- 隐身浏览器指纹
- 高性能并行执行
引用
如果您在研究或项目中使用了 Browser Use,请引用:
@software{browser_use2024,
author = {Müller, Magnus and Žunič, Gregor},
title = {Browser Use: Enable AI to control your browser},
year = {2024},
publisher = {GitHub},
url = {https://github.com/browser-use/browser-use}
}
