以自然语言实现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_tabinput_text),是 Agent 与 Browser 的桥梁;
Browser 浏览器控制器:封装 Playwright 实例,负责浏览器启动、页面管理、状态维护;
DomService DOM 处理器:提取网页 DOM 结构、识别可交互元素(如按钮、输入框);
MessageManager 消息管理器:维护 LLM 对话历史(系统提示、任务描述、执行日志);
ProductTelemetry 遥测组件:可选记录执行事件(如步骤数、成功率),用于优化与分析;

3.2 执行流程

Browser-use 的任务执行分为三个阶段,形成完整闭环:

阶段 1:初始化
  1. 用户创建 Agent 实例,传入 taskllm 等参数;
  2. Agent 初始化 MessageManager(设置系统提示)、Controller(注册默认浏览器操作);
  3. 自动启动浏览器实例(或复用已有实例),准备执行环境。
阶段 2:执行循环(核心)

循环执行"状态获取→LLM 决策→动作执行→状态更新",直到任务完成或达到限制:

  1. 获取浏览器状态:Browser 通过 DomService 提取当前页面 DOM、URL、可交互元素;
  2. 准备 LLM 输入:MessageManager 整合任务描述、浏览器状态、历史日志,生成 LLM prompt;
  3. LLM 决策:LLM 分析输入,输出下一步操作(如"打开 Bing 搜索页");
  4. 执行动作 :Controller 调用 Browser 执行操作(如 open_tab 打开链接),返回执行结果;
  5. 更新状态:记录执行日志,判断任务是否完成(如"是否已提取所有目标数据")。
阶段 3:结束
  1. 任务完成后,Agent 生成结构化结果(如文本、JSON);
  2. 可选生成 GIF 录制文件(若启用 generate_gif);
  3. 关闭浏览器实例,返回结果给用户。

4. 环境准备

4.1 基础环境要求

  • Python 版本:>= 3.11(推荐 3.12,低版本会导致依赖安装失败);
  • 虚拟环境 :建议使用 venvcondapyenv 隔离环境,避免依赖冲突。
(可选)用 conda 创建虚拟环境
bash 复制代码
conda create --name browser_use python=3.11
conda activate browser_use

4.2 安装依赖

  1. 安装 Browser-use

    bash 复制代码
    pip3 install browser-use
  2. 安装 Playwright 浏览器

    bash 复制代码
    playwright install

    该命令会自动下载无头 Chromium 浏览器(约 100-200MB),无需手动配置。

4.3 配置 LLM API Key

在项目根目录创建 .env 文件,填写对应模型的 API Key(示例):

env 复制代码
# 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 搜索《提振消费专项行动方案》,提取关键内容。

python 复制代码
import asyncio
import os
from dotenv import load_dotenv

from browser_use import Agent,Browser
from browser_use.llm import ChatDeepSeek


deepseek_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 window
		window_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 启动步骤

  1. 安装 Gradio

    bash 复制代码
    pip3 install gradio
  2. 运行官方示例

    bash 复制代码
    python examples/ui/gradio_demo.py
  3. 访问界面 :终端会输出本地链接(如 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、支持自定义工具与输出格式;
  • 强实用:覆盖数据采集、政策搜索、电商操作等多场景。
相关推荐
Zheng照邻、5 小时前
VLM Prompt优化之 DynaPrompt(ICLR 2025)论文总结
人工智能·算法·语言模型·prompt·aigc
海底的星星fly19 小时前
【Prompt学习技能树地图】单一思维链优化-自我一致性提示工程原理、实践与代码实现
人工智能·语言模型·prompt
海底的星星fly21 小时前
【Prompt学习技能树地图】思维链(CoT)提示技术工作原理、主要技术方法及实践应用
人工智能·语言模型·prompt
victory04311 天前
BriLLM: Brain-inspired Large Language Model 文章评论
人工智能·机器学习·语言模型
糖葫芦君1 天前
17-Language Modeling with Gated Convolutional Networks
深度学习·机器学习·语言模型
zhglhy1 天前
大语言模型在金融风控中的应用
人工智能·语言模型·自然语言处理
Web3&Basketball1 天前
大语言模型LLM解决AI幻觉方法的深度分析
人工智能·语言模型·自然语言处理
天才测试猿2 天前
postman使用总结
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman