以自然语言实现AI自动化Browser-use 详细介绍与使用指南
Browser-use 简介
Browser-use 是一款基于 Python 的开源 AI 自动化工具,旨在通过集成大型语言模型(LLM)与浏览器自动化技术,让 AI 智能体具备“浏览网页、抓取信息、动态交互”的能力。只需简单配置与少量代码,即可快速构建浏览器自动化智能体,广泛适用于数据采集、网页测试、自动化任务执行等场景。目前项目在 GitHub 已获得 45.1K Stars,是智能体应用开发领域的热门工具。
1. 概述
1.1 核心定位
Browser-use 本质是“AI 智能体与浏览器的连接器”,通过封装 LangChain(AI 智能体框架)和 Playwright(浏览器自动化工具),解决了 LLM 无法直接与真实网页交互的问题,让智能体可自主决策浏览器操作(如导航、点击、输入、数据提取),无需人工干预。
1.2 关键信息
类别 | 地址/说明 |
---|---|
GitHub 仓库 | browser-use/browser-use |
官方网站 | browser-use.com |
官方文档 | docs.browser-use.com/introduction |
最低 Python 版本 | Python >= 3.11 |
核心依赖 | LangChain(智能体框架)、Playwright(浏览器自动化)、dotenv(环境变量管理) |
1.3 技术栈
- AI 层:基于 LangChain 支持多类 LLM,提供智能决策与任务规划能力;
- 执行层:通过 Playwright 实现浏览器无头启动、页面交互、DOM 操作;
- 工程层:异步 I/O 架构提升效率,dotenv 管理敏感配置(如 API Key);
- 扩展层:支持自定义工具、结构化输出、GIF 录制等功能。
2. 核心特性
Browser-use 凭借模块化设计与高扩展性,具备以下核心能力:
2.1 简单易用的 Agent 接口
Agent 是 Browser-use 的核心入口,通过简洁的类定义即可创建具备浏览器交互能力的智能体,无需关注底层浏览器控制逻辑。关键参数包括:
- 必传参数:
task
(任务描述,如“抓取某网页的 h2 标签”)、llm
(LangChain 兼容的 LLM 实例,如 GPT-4o、DeepSeek); - 常用参数:
use_vision
(是否启用视觉分析,支持截图理解网页)、generate_gif
(是否录制浏览器操作为 GIF)、max_steps
(最大执行步骤,防止死循环)。
2.2 多 LLM 兼容
支持主流商用与开源模型,无需修改核心逻辑即可切换模型,适配不同场景需求:
模型类型 | 支持模型示例 | 配置方式 |
---|---|---|
商用模型 | GPT-4o(OpenAI)、Claude(Anthropic) | 配置对应 API Key(如 OPENAI_API_KEY) |
国产模型 | DeepSeek-V3/R1 | 指定 base_url(如 https://api.deepseek.com/v1 ) |
本地模型 | Ollama(如 Llama 3) | 安装 Ollama 后直接调用 |
云服务模型 | Azure OpenAI、Google Gemini | 按 LangChain 文档配置对应实例 |
2.3 强大的浏览器自动化能力
基于 Playwright 封装,覆盖网页交互全场景:
- 基础操作:页面导航、元素点击、文本输入、表单提交;
- 高级功能:多标签页管理、持久会话(保留 cookies/localStorage)、DOM 元素精准定位;
- 兼容性:支持 Chromium、Firefox、WebKit 浏览器,默认使用无头 Chromium 提升效率。
2.4 结构化输出与自我纠正
- 结构化数据:通过 Pydantic 定义输出模型(如“书籍信息包含标题、作者、评分”),智能体可自动提取并返回规范数据;
- 错误重试:内置失败重试机制(默认最大失败次数 3 次),遇到限流或操作错误时自动等待重试;
- 动态规划:可选
planner_llm
独立负责任务规划,用轻量模型降低成本,主 LLM 专注操作执行。
2.5 多部署与可视化支持
- 部署方式:支持本地部署(需配置 Python 与 Playwright)、云端托管(无需本地环境);
- 可视化测试:内置 Gradio UI 示例,通过网页界面输入任务即可测试智能体,实时查看浏览器操作日志;
- 调试友好:支持保存对话历史到本地文件,便于排查任务执行问题。
3. 技术架构
Browser-use 采用分层架构设计,各组件职责清晰,协同实现“AI 决策→浏览器执行→结果反馈”的闭环。
3.1 核心组件
组件 | 职责描述 |
---|---|
Agent | 核心协调者:接收任务、初始化组件、调度 LLM 决策、管理执行流程; |
Controller | 动作执行者:注册/执行浏览器操作(如 open_tab 、input_text ),是 Agent 与 Browser 的桥梁; |
Browser | 浏览器控制器:封装 Playwright 实例,负责浏览器启动、页面管理、状态维护; |
DomService | DOM 处理器:提取网页 DOM 结构、识别可交互元素(如按钮、输入框); |
MessageManager | 消息管理器:维护 LLM 对话历史(系统提示、任务描述、执行日志); |
ProductTelemetry | 遥测组件:可选记录执行事件(如步骤数、成功率),用于优化与分析; |
3.2 执行流程
Browser-use 的任务执行分为三个阶段,形成完整闭环:
阶段 1:初始化
- 用户创建 Agent 实例,传入
task
、llm
等参数; - Agent 初始化 MessageManager(设置系统提示)、Controller(注册默认浏览器操作);
- 自动启动浏览器实例(或复用已有实例),准备执行环境。
阶段 2:执行循环(核心)
循环执行“状态获取→LLM 决策→动作执行→状态更新”,直到任务完成或达到限制:
- 获取浏览器状态:Browser 通过 DomService 提取当前页面 DOM、URL、可交互元素;
- 准备 LLM 输入:MessageManager 整合任务描述、浏览器状态、历史日志,生成 LLM prompt;
- LLM 决策:LLM 分析输入,输出下一步操作(如“打开 Bing 搜索页”);
- 执行动作:Controller 调用 Browser 执行操作(如
open_tab
打开链接),返回执行结果; - 更新状态:记录执行日志,判断任务是否完成(如“是否已提取所有目标数据”)。
阶段 3:结束
- 任务完成后,Agent 生成结构化结果(如文本、JSON);
- 可选生成 GIF 录制文件(若启用
generate_gif
); - 关闭浏览器实例,返回结果给用户。
4. 环境准备
4.1 基础环境要求
- Python 版本:>= 3.11(推荐 3.12,低版本会导致依赖安装失败);
- 虚拟环境:建议使用
venv
、conda
或pyenv
隔离环境,避免依赖冲突。
(可选)用 conda 创建虚拟环境
conda create --name browser_use python=3.11
conda activate browser_use
4.2 安装依赖
- 安装 Browser-use:
pip3 install browser-use
- 安装 Playwright 浏览器:
该命令会自动下载无头 Chromium 浏览器(约 100-200MB),无需手动配置。playwright install
4.3 配置 LLM API Key
在项目根目录创建 .env
文件,填写对应模型的 API Key(示例):
# OpenAI 模型(如 GPT-4o)
OPENAI_API_KEY=sk-xxxxxxx
# DeepSeek 模型
DEEPSEEK_API_KEY=dk-xxxxxxx
# Anthropic 模型(如 Claude)
ANTHROPIC_API_KEY=sk-ant-xxxxxxx
5. 核心使用示例
示例 :用 DeepSeek 模型搜索政策信息
目标:调用 DeepSeek-V3 模型,通过 Bing 搜索《提振消费专项行动方案》,提取关键内容。
import asyncio
import os
from dotenv import load_dotenvfrom browser_use import Agent,Browser
from browser_use.llm import ChatDeepSeekdeepseek_api_key=load_dotenv()if deepseek_api_key is None:print('Make sure you have DEEPSEEK_API_KEY:')print('export DEEPSEEK_API_KEY=your_key')exit(0)browser = Browser(headless=False, # Show browser windowwindow_size={'width': 1000, 'height': 700}, # Set window size)extend_system_message = """1. 执行搜索任务时,必须先打开 https://www.bing.com/?mkt=zh-CN(中文 Bing);2. 搜索关键词为“《提振消费专项行动方案》近期发布”;3. 提取结果需包含政策背景、核心任务、预期效果,用中文分点输出。"""async def main():llm = ChatDeepSeek(base_url='https://api.deepseek.com/v1',model='deepseek-chat',api_key=deepseek_api_key,)agent = Agent(task="近期发布的《提振消费专项行动方案》有哪些值得关注的内容?",llm=llm,use_vision=False,browser=browser,extend_system_message=extend_system_message,max_steps=30)await agent.run()if __name__ == '__main__':asyncio.run(main())
6. UI 测试工具(Gradio)
Browser-use 提供 Gradio 可视化界面,无需编写代码即可测试智能体,适合快速验证任务逻辑。
6.1 启动步骤
- 安装 Gradio:
pip3 install gradio
- 运行官方示例:
python examples/ui/gradio_demo.py
- 访问界面:终端会输出本地链接(如
http://localhost:7860
),打开后即可看到交互界面。
6.2 界面功能
- 输入区:填写任务描述(如“搜索天气”)、选择 LLM 模型、配置
use_vision
等参数; - 输出区:实时显示浏览器操作日志、提取结果,支持查看 GIF 录制文件;
- 调试区:查看 LLM 对话历史,帮助定位任务执行中的问题。
7. 常见问题与解决方案
问题现象 | 原因分析 | 解决方案 |
---|---|---|
报错“playwright not installed” | 未安装 Playwright 浏览器内核 | 执行 playwright install chromium (仅需一次) |
Python 版本报错“SyntaxError” | Python 版本 < 3.11 | 用 pyenv 或 conda 升级到 3.11+,执行 python3 --version 验证 |
LLM 调用失败“API Key invalid” | API Key 错误或过期 | 检查 .env 文件中 Key 是否正确,或在官网重新生成 Key |
Gradio 启动后无法访问 | 端口占用或 Gradio 版本过旧 | 升级 Gradio(pip3 install --upgrade gradio ),或指定端口(gradio demo.py --server-port 7861 ) |
任务长时间卡住 | 网络缓慢(LLM 请求超时)或网页加载耗时久 | 检查网络连接,增加 retry_delay (重试等待时间),或手动中断任务(Ctrl+C) |
8. 总结
Browser-use 降低了“AI 与浏览器自动化”的结合门槛,通过“Agent 封装+多 LLM 兼容+结构化输出”的设计,让开发者无需深入浏览器底层技术,即可快速构建智能自动化工具。其核心优势包括:
- 低门槛:几行代码即可实现复杂网页任务,支持无代码 UI 测试;
- 高灵活:兼容主流 LLM、支持自定义工具与输出格式;
- 强实用:覆盖数据采集、政策搜索、电商操作等多场景。