Browser-use 详细介绍&使用文档
Browser-use 详细介绍&使用文档
一、概述
Browser-use 是一个旨在将 AI “智能体”(Agents)与真实浏览器进行交互的 Python 库,可以轻松实现浏览器自动化。在配合 LLM(如 GPT 系列)使用时,浏览器-use 能够让你的智能体发起对网页的访问、操作页面元素、收集信息、执行脚本等,从而扩展 AI 应用的落地场景。
- GitHub: browser-use/browser-use
- 官网: browser-use.com
- 文档: docs.browser-use.com
目前 Browser-use 最低需要 Python 3.11 及以上,才能正常使用其封装的 Playwright 功能。
1. 技术栈:
- LangChain(AI Agent框架)
- Playwright(浏览器自动化)
- dotenv(环境变量 key)
- 异步I/O架构
2. 流程图
A[用户任务] --> B[LLM 解析]
B --> C[Agent 决策/规划]
C --> D[浏览器动作]
C --> E[数据提取页面信息]
D --> F[Playwright 调用]
F --> H[浏览器实例]
E --> G[模型处理]
G --> I[(结构化结果输出)]
browser-use:语言模型 -> 决策/控制 -> 浏览器执行 -> 数据回传 -> 模型后处理
二、关键特性
1. 简单的 Agent 接口
通过 Agent 类即可快速创建带浏览器交互能力的智能体,赋能 LLM 与网页之间的复杂操作。
1.1. Agent 接口参数
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
task | str | 无(必传) | 代理需要执行的任务描述。 |
llm | BaseChatModel (LangChain Model) | 无(必传) | 主语言模型,执行对话和工具调用。 |
controller | object (Controller 实例) | 默认Controller | 自定义函数/工具调用的注册表。可参考“Custom Functions”。 |
use_vision | bool | True | 是否启用视觉能力(截图+分析)。如模型支持图像输入,可显著提高网页理解;也会产生额外 token 成本。 |
save_conversation_path | str | 无 | 若指定,则会将对话历史保存在该路径下,用于调试或审计。 |
system_prompt_class | type (自定义 System Prompt 类) | 默认Prompt 类 | 自定义系统提示词逻辑,参考“System Prompt”定制化说明。 |
browser | Browser (Browser-use 实例) | 无 | 重用已创建的 Browser 实例;若不提供,则 Agent 每次 run() 时会自动创建并关闭新的浏览器。 |
browser_context | BrowserContext (Playwright 实例) | 无 | 使用已有的浏览器上下文 (Context)。适合需要维护持久会话 (cookies/localStorage) 的场景。 |
max_steps | int | 100 | 允许 Agent 执行的最大步骤数,防止死循环或无限操作。 |
planner_llm | BaseChatModel | 不启用 Planner | 规划用语言模型,与主 LLM 分开;可用较小/便宜模型处理高层策略。 |
use_vision_for_planner | bool | True | Planner 是否能使用视觉功能(若主 LLM 已开启视觉,这里可独立关闭以节省资源)。 |
planner_interval | int | 1 | Planner 模型执行间隔。即每多少步调用一次 Planner 作重新规划。 |
message_context | str | 无 | 额外的任务/上下文信息,辅助 LLM 更好理解或执行任务。 |
initial_actions | list[dict] | 无 | 初始化时要执行的动作列表(无需经 LLM 调用),格式为 {action_name: {...}}。 |
max_actions_per_step | int | 10 | 每个步骤里可执行的最大动作数,用于控制 Agent 过度频繁操作。 |
max_failures | int | 3 | 允许 Agent 失败的最大次数,超过则停止任务。 |
retry_delay | int (秒) | 10 | 当遇到限流 (rate limit) 或可重试的错误时,等待多少秒后再次尝试。 |
generate_gif | bool 或 str (路径) | False | 是否录制浏览器过程生成 GIF。为 True 时自动生成随机文件名;为字符串时将 GIF 存储到该路径。 |
2. 多语言模型支持
可轻松集成 LangChain 提供的各类 LLM(如 OpenAI、Anthropic、Cohere 等)进行高级任务管理。
模型 | 所属/类型 |
---|---|
GPT-4o | OpenAI |
Claude | Anthropic |
Azure | Azure OpenAI |
Gemini | Google Generative AI |
DeepSeek-V3 | DeepSeek |
DeepSeek-R1 | DeepSeek |
Ollama | 本地模型 (需安装 Ollama) |
3. 基于 Playwright
默认使用 Playwright 进行浏览器的无头启动、页面操作和渲染控制;对常见网页交互场景提供友好的抽象。
4. 云端版 & 本地版
除了本地安装运行外,Browser-use 也提供托管版本,可以直接在云端执行,无需配置本地环境。
5. Gradio UI 测试
内置示例可以利用 Gradio 搭建简易的可视化界面,方便开发者快速测试并可视化浏览器自动化流程。
三、环境准备
1. Python 版本
- 需要 Python 3.11 或更高版本。
- 推荐在独立虚拟环境(venv)或管理工具(如 uv)中配置环境。
1.1. 推荐使用 pyenv 管理 python
Github:https://github.com/pyenv/pyenv
# pyenv 根目录
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
# 初始化
eval "$(pyenv init -)"
2. 安装方法
2.1. 安装 browser-use
pip3 install browser-use
2.2. 安装 Playwright
playwright install
- 此操作会自动下载 Chromium 无头浏览器,用于后续的浏览器自动化。
2.3. 配置 LLM API Keys(可选)
- 在 .env 文件中填写相应的 OPENAI_API_KEY=、ANTHROPIC_API_KEY= 等 Key。
OPENAI_API_KEY=sk-xxxxxxx
- 如果使用其他 LLM,需要参考 LangChain 文档或对应服务提供的说明进行配置。
四、Demo 示例
1. 简单示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from browser_use import Agent
load_dotenv()
llm = ChatOpenAI(model="gpt-4o")
async def main():
agent = Agent(
task="打开 https://cn.vuejs.org/guide/essentials/computed,获取页面里所有的 h2 标签文本及所有的 a 标签文本(以及它的 href)",
llm=llm,
)
result = await agent.run()
print('result:',result)
if __name__ == "__main__":
asyncio.run(main())
1.1. 核心流程:
- 从 .env 中读取 OPENAI_API_KEY 等信息,初始化 ChatOpenAI。
- 创建一个 Agent,指定 task 即描述智能体要完成的任务。
- 调用 agent.run() 发起执行,包括浏览器自动化与 LLM 结合的流程。
五、常见操作
1. 修改 LLM 模型
llm = ChatOpenAI(model="gpt-3.5-turbo")
或
llm = ChatOpenAI(model="gpt-4o")
2. 在 .env 中设置 API Key
OPENAI_API_KEY=sk-xxxx
ANTHROPIC_API_KEY=xxxxxx
如果你还需使用其他模型(如 Cohere、HuggingFace Hub),可一并配置对应的 Key,并在 Python 脚本中初始化相应的 LLM 对象。
3. 官方文档示例
在 docs.browser-use.com/introduction 可以找到更多场景示例,比如如何定制 browser-use 的 Tools、配合 PythonREPLTool 扩展执行 Python 脚本等。
六、UI 测试方式
如果你想通过简单的 UI(如 Gradio)来测试 Browser-use,官方示例提供了 examples/ui/gradio_demo.py。
1. 安装 Gradio
uv pip install gradio
2. 运行示例
python examples/ui/gradio_demo.py
打开终端提示的地址,就能看到一个简易的 web 界面,在界面中输入 task 等信息测试智能体。
七、常见问题 & 解决思路
- 报错:playwright not installed 或 executable path not found
- 请确认已执行 playwright install chromium,且安装成功。
- Python 版本过低
- Browser-use 要求 Python >= 3.11,如果你使用的是 3.10 或更低版本,需要升级环境。
- LLM 调用失败
- 检查是否在 .env 中填写了正确的 API key,或你的 Key 是否仍在有效期内。
- UI Demo 启动后无法访问
- 可能是端口占用,或者 Gradio 版本过旧。尝试更新 gradio 或换一个端口。
- 长时间卡住/超时
- 检查网络环境,LLM 请求或浏览器加载是否耗时过长。
八、总结
Browser-use 让 AI 与浏览器的结合变得更便捷,能够快速构建出“会浏览网页、抓取信息、进行动态交互”的智能体。只需简单的配置与几行代码,就能让 LLM 自动处理网页操作,为项目带来更多可能性。
- 使用 Python >= 3.11;
- 安装并配置好 Playwright;
- 在主代码中初始化 Agent 并提供 LLM;
- 在 .env 中存放 API Keys;
九、参考
- GitHub: browser-use/browser-use
- 官网: browser-use.com
- 官方文档: docs.browser-use.com/introduction
Browser-use 详细介绍&使用文档的更多相关文章
- HTML介绍、文档基本结构、meta标签、HTML标记的语法
一.HTML的介绍 Hyper Text Mark-up Language 超文本标记语言,是一种描述性标记语言(不是编程语言),主要用于描述网页(可以有图像,文字,声音,等..)但没有交互性 HTM ...
- 【转载】ADOX.Catalog中文帮助详细说明chm文档
首先给个完全版的地址,如果您机器上装过OFFICE应该可以打开的:ADOX 对象模型, 地址是:"C:\Program Files\Common Files\Microsoft Shared ...
- vuex最简单、最详细的入门文档
如果你在使用 vue.js , 那么我想你可能会对 vue 组件之间的通信感到崩溃 . 我在使用基于 vue.js 2.0 的UI框架 ElementUI 开发网站的时候 , 就遇到了这种问题 : 一 ...
- ES _source字段介绍——json文档,去掉的话无法更新部分文档,最重要的是无法reindex
摘自:https://es.xiaoleilu.com/070_Index_Mgmt/31_Metadata_source.html The _source field stores the JSON ...
- 白痴级教程,新手看过来,具详细实操文档 (word图片复制不过来,0202年了还有这样的不便利,下回研究一下,图片下次补)
一.环境配置(win10): 1.配置cmd的python环境为arcmap10.2 自带的python解释器(2.7.3)(自带arcpy库) 具体操作: 1我的电脑右击属性,打开 (选中path点 ...
- 可能比文档还详细--VueRouter完全指北
可能比文档还详细--VueRouter完全指北 前言 关于标题,应该算不上是标题党,因为内容真的很多很长很全面.主要是在官网的基础上又详细总结,举例了很多东西.确保所有新人都能理解!所以实际上很多东西 ...
- HighCharts 详细使用及API文档说明
一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下 ...
- SpingMVC 核心技术帮助文档
声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术,当前最新版本是4.3,4.2的版本已经经是很新的了,所以非常值得大家一读,对于读完这篇文档感觉 ...
- HTML文档声明
前面的话 HTML文档通常以类型声明开始,该声明将帮助浏览器确定其尝试解析和显示的HTML文档类型.本文将详细介绍文档声明DOCTYPE 特点 文档声明必须是HTML文档的第一行.且顶格显示, ...
- “全能”选手—Django 1.10文档中文版Part4
第一部分传送门 第二部分传送门 第三部分传送门 3.2 模型和数据库Models and databases 3.2.2 查询操作making queries 3.3.8 会话sessions 2.1 ...
随机推荐
- Solution -「NEERC 2016」Delight for a Cat 的一个尝试
\(\mathscr{Description}\) Link. 给定 \(n,k,m_s,m_e\) 和两个长为 \(n\) 的序列 \(\{s\},\{e\}\), 选择一个 \(S\sub ...
- 万字图文:SaaS业务架构、价值流、业务能力、业务流程、业务对象、组织架构
大家好,我是汤师爷~ 本文为读者提供一个SaaS业务架构的系统性框架,探讨业务架构分析的核心要素,帮助SaaS企业深入剖析目标客户的业务模式,全面理解他们的业务架构. 无论你是SaaS创业者.产品经理 ...
- Word文档转换成Html格式
CentOS 下安装 OpenOffice4.0 一.更新服务器 yum源 [root@APP2 /]# yum clean all [root@APP2 /]# yum makecache [roo ...
- nginx中的正则表达式,location路径匹配规则和优先级
前言,我这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式.location路径匹配规则和优先级. 先准备好环境,基础配置是这样 nginx/conf/conf.d/host.c ...
- 微信小程序安全开发、测试的一些记录
目录 开发原则 漏洞类型--越权 漏洞类型--信息泄露 漏洞类型--爬虫遍历 漏洞类型--授权用户信息变更不跟进 漏洞类型--注入类 漏洞类型--上传.下载类 Reference 本文基于微信开发者平 ...
- 独立开发经验谈:如何借助 AI 辅助产品 UI 设计
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户,在这个过程中,我也积累了不少如何开发运营 ...
- 解锁数据潜力,天翼云TeleDB为企业数智蝶变添力赋能!
近日,第15届中国数据库技术大会(DTCC2024)在北京召开.大会以"自研创新 数智未来"为主题,重点围绕向量数据库与向量检索技术实践.数据治理与数据资产管理.云原生数据库开发与 ...
- 银杏叶也是yxy
今年下半年(9月后)第一个使我震撼而狂喜的书籍,金阁寺. 翻译是林少华.他翻译这个可比村上春树好多了 一切都像梦寐一般,一切都如此完美 完美的结构,完美的心理叙述,撕心裂肺的景色描写 战后无限的虚无与 ...
- 在 PyTorch 中理解词向量,将单词转换为有用的向量表示
你要是想构建一个大型语言模型,首先得掌握词向量的概念.幸运的是,这个概念很简单,也是本系列文章的一个完美起点. 那么,假设你有一堆单词,它可以只是一个简单的字符串数组. animals = [&quo ...
- linux mint安装微信
sudo apt install snapd snappy sudo snap install electronic-wechat deepin-music 安装微信与深度音乐