browser-use - 让AI智能体操控浏览器的自动化工具,适用于网页任务自动化

browser-use - 让AI智能体操控浏览器的自动化工具,适用于网页任务自动化

想象一下,你只需对电脑说一句“帮我从亚马逊购买一款降噪耳机,价格在500元以内”,一个AI助手就能自动打开浏览器、搜索商品、筛选价格、比较评论,并最终完成下单。这听起来像是科幻电影里的场景,但如今,借助一个名为browser-use的开源项目,这一切正在成为现实。

browser-use是一个创新的Python库,它像一座桥梁,连接了强大的AI语言模型与复杂的网页世界。它让AI不再局限于文本对话,而是能够像人类一样“看见”网页、“理解”内容并“操作”界面。无论你是希望自动化繁琐的日常任务,还是为你的应用赋予“自主上网”的能力,browser-use都提供了一个强大而优雅的解决方案。

项目基本信息

信息项详情
项目名称browser-use
GitHub地址https://github.com/browser-use/browser-use
项目描述🌐 Make websites accessible for AI agents. Automate tasks online with ease.
作者browser-use
开源协议MIT License
Stars84866
Forks9825
支持平台Windows / macOS / Linux
最后更新2026-03-29

一、项目介绍

browser-use的核心使命是让网站对AI智能体变得可访问。它不是一个简单的浏览器自动化工具(如Selenium),而是一个专为AI设计的“浏览器操控层”。传统的自动化脚本需要精确定位元素(如ID、XPath),而browser-use则允许AI通过自然语言来思考和执行操作。

该项目的工作原理可以概括为以下几个步骤:

  1. 感知:AI模型(如GPT-4、Claude等)通过browser-use获取当前网页的简化视图,包括可交互元素(按钮、输入框、链接)及其状态。
  2. 决策:AI根据用户设定的目标和当前页面状态,决定下一步要执行的操作,例如“点击‘立即购买’按钮”或“在搜索框中输入‘Python编程’”。
  3. 执行:browser-use将AI的决策转化为具体的浏览器操作,如点击、输入、滚动、等待页面加载等。
  4. 循环:操作后,AI再次感知新页面,循环往复,直至完成任务或遇到需要人工介入的情况。

这个循环使得AI能够处理各种复杂的、需要多步交互的网页任务,而无需开发者预先编写每一步的指令。

二、核心优势

与其他浏览器自动化方案相比,browser-use拥有以下显著优势:

  • 自然语言驱动:开发者或用户只需用自然语言描述任务目标,无需学习复杂的元素定位语法。这大大降低了自动化任务的门槛,也让AI能够自主规划行动路径。
  • AI原生设计:项目从底层设计上就考虑到了与大型语言模型的集成。它提供了清晰、结构化的页面元素表示,方便AI模型理解和决策,同时能够处理模型输出中的不确定性。
  • 鲁棒性强:传统的自动化脚本常因页面结构微小变动而失效。browser-use的AI驱动特性使其对页面变化有更强的适应性。AI可以根据页面上的文本内容、按钮标签等语义信息来定位目标,而非依赖固定的选择器。
  • 开源与生态:基于MIT许可证,任何人都可以免费使用、修改和贡献代码。项目在GitHub上拥有超过8.4万颗星,社区非常活跃,这保证了项目的快速迭代和问题的高效解决。

三、适用场景

browser-use的应用场景非常广泛,尤其适合以下几类任务:

  • 个人效率自动化

    • 信息搜集:自动从多个新闻网站抓取指定主题的新闻,汇总后发送邮件。
    • 购物比价:自动在电商平台搜索商品,比较价格和用户评价。
    • 日常签到:自动完成公司内部系统的每日健康打卡、会议签到等重复性操作。
  • 数据采集与处理

    • 网页数据抓取:从需要登录或交互的动态网站抓取数据,例如抓取社交媒体信息、股票行情等。
    • 表单自动填写:自动填写和提交各类在线申请表、问卷或注册信息。
  • 应用测试与监控

    • 自动化UI测试:编写自然语言测试用例,让AI模拟用户操作,对Web应用进行自动化回归测试。
    • 网站功能监控:定期监控网站的关键业务流程是否正常,如登录、注册、下单等,并在出现问题时发出告警。
  • AI应用开发

    • 构建AI智能体:作为AI应用(如个人助理、研究助手)的核心组件,让AI能够执行“上网查资料”、“预订酒店”等现实世界中的任务。
    • RPA升级:将传统的机器人流程自动化升级为更智能的“智能体流程自动化”,处理更复杂、非结构化的任务。

四、安装教程

安装browser-use非常简单,只需几步即可完成环境搭建。

系统要求

工具用途下载/安装方式
Python运行环境[https://python.org/] (版本要求:3.8 或以上)
Git下载项目代码[https://git-scm.com/]

详细安装步骤

  1. 克隆项目仓库

    打开终端(命令行),执行以下命令将项目代码下载到本地:

    git clone https://github.com/browser-use/browser-use.git
  2. 进入项目目录

    cd browser-use
  3. 创建虚拟环境(强烈推荐)

    创建一个独立的Python虚拟环境,避免依赖包冲突。

    python -m venv venv

    激活虚拟环境:

    • Windows: venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate
  4. 安装项目依赖

    项目根目录下通常有一个 requirements.txt 文件,里面列出了所有必需的Python包。使用pip进行安装:

    pip install -r requirements.txt
  5. 配置API密钥

    browser-use需要一个AI模型的API密钥才能工作。你需要从OpenAI、Anthropic或其他支持的模型提供商处获取一个API Key,并将其设置为环境变量。

    在你的终端中设置(请将 YOUR_API_KEY 替换为真实的密钥):

    export OPENAI_API_KEY="YOUR_API_KEY"   # macOS/Linux
    set OPENAI_API_KEY="YOUR_API_KEY"      # Windows

    你也可以在代码中直接设置,但出于安全考虑,使用环境变量是更推荐的做法。

    至此,安装完成!你可以运行项目中的示例脚本来测试环境是否配置成功。

五、使用示例

下面通过一个简单的示例来演示browser-use的基本用法:让AI在百度搜索“browser-use”并返回搜索结果。

创建一个新的Python文件,例如 search_demo.py,并输入以下代码:

import asyncio
from browser_use import Agent, BrowserConfig
from langchain_openai import ChatOpenAI

async def main():
    # 1. 配置浏览器(可选,这里使用默认配置)
    browser_config = BrowserConfig(headless=False)  # headless=False 表示显示浏览器窗口

    # 2. 初始化AI模型
    llm = ChatOpenAI(model="gpt-4o", temperature=0)  # 使用GPT-4o,temperature设为0让输出更确定

    # 3. 创建Agent,并告诉它任务目标
    agent = Agent(
        task="打开百度网站,在搜索框中输入 'browser-use',然后点击搜索按钮。等待搜索结果页面加载完成后,告诉我搜索结果的标题。",
        llm=llm,
        browser_config=browser_config
    )

    # 4. 运行Agent,执行任务
    result = await agent.run()

    # 5. 打印最终结果
    print("任务执行完成。")
    print(f"最终结果: {result}")

if __name__ == "__main__":
    # 运行异步主函数
    asyncio.run(main())

代码解析

  1. 导入模块:引入了 asyncio 用于运行异步任务,AgentBrowserConfig 来自 browser_useChatOpenAI 用于与OpenAI模型交互。
  2. 配置浏览器:通过 BrowserConfig 可以设置浏览器选项,例如 headless=False 让浏览器可见,便于观察AI的操作过程。
  3. 初始化AI模型:创建了一个 ChatOpenAI 实例,指定了模型为 gpt-4o。你可以根据需要更换为其他支持的模型。
  4. 创建AgentAgent 是browser-use的核心类。我们将任务描述(自然语言)和AI模型实例传递给它。browser_config 可以省略,此时会使用默认配置。
  5. 运行Agent:调用 agent.run() 方法,这将启动一个浏览器窗口,并让AI开始执行任务。整个过程是异步的,所以使用 await
  6. 处理结果agent.run() 返回一个包含执行日志和最终状态的结果对象。在这个例子中,我们只是简单地打印了结果。

执行这个脚本,你将看到一个浏览器窗口被打开,AI会按照指令一步步操作。整个过程充满了智能感,就像一个虚拟人类用户在操作。

六、常见问题

  • 问题1:运行示例代码时,提示“OpenAI API Key not found”

    • 解决方案:这意味着你的API密钥没有设置正确。请检查你是否已经将 OPENAI_API_KEY 设置为环境变量,或者在代码中显式地传递 openai_api_key 参数给 ChatOpenAI
  • 问题2:AI执行操作非常慢,或者页面加载超时

    • 解决方案:这可能与网络环境或AI模型的响应速度有关。你可以尝试:

      • 检查网络连接是否稳定。
      • BrowserConfig 中调整 timeout 参数,例如 BrowserConfig(timeout=30),增加等待页面加载的时间。
      • 使用响应更快的AI模型。
      • 确保浏览器驱动程序(如ChromeDriver)的版本与你的浏览器版本兼容。browser-use通常会自动管理,但有时可能需要手动更新。
  • 问题3:AI在复杂网页上无法找到正确的元素

    • 解决方案:这是常见问题。你可以尝试以下方法:

      • 优化任务描述:将复杂的任务分解为更小、更具体的步骤。例如,不要说“买一件衬衫”,而是说“打开淘宝网,在搜索框输入‘白色衬衫’,按价格从低到高排序,点击第一个商品”。
      • 提供更多上下文:在任务描述中,明确指出要点击的按钮的文本或特征,例如“点击那个蓝色的‘立即购买’按钮”。
      • 调整模型温度:将 temperature 参数设低(如0.1),让AI的决策更稳定。
      • 查看日志:browser-use会打印详细的执行日志,你可以通过日志了解AI的决策过程,从而找到问题所在。

七、总结

browser-use是AI时代浏览器自动化领域的一个里程碑式的项目。它巧妙地将大型语言模型的规划能力与浏览器的执行能力结合起来,为我们提供了一个全新的、更智能、更人性化的自动化解决方案。

从个人日常效率提升到企业级RPA应用,browser-use都展现出了巨大的潜力。它不仅极大地降低了自动化脚本的开发门槛,更重要的是,它赋予了AI执行复杂、非结构化网页任务的能力,为构建真正的“通用AI智能体”铺平了道路。

如果你对AI、自动化或构建下一代智能应用感兴趣,browser-use绝对是一个值得深入学习和探索的项目。其清晰的架构、活跃的社区和强大的功能,定能为你带来启发和帮助。现在就访问它的GitHub仓库,开始你的AI浏览器自动化之旅吧!

已有 8805 条评论

    1. 黄嘉欣 黄嘉欣

      最让我惊喜的是它的鲁棒性。传统自动化脚本最怕弹窗、验证码、页面延迟这些意外情况,但AI能根据实际情况动态调整策略,成功率大幅提升。

    2. JamesTaylor JamesTaylor

      I combined browser-use with a local LLM (Llama 3) and it works surprisingly well. You don't even need to pay for OpenAI API if you have decent hardware. Privacy first!

    3. 赵子涵 赵子涵

      用这个工具做了一个自动抢演唱会门票的脚本,成功率比手动高多了。AI能快速识别票档、选座、提交订单,手速完全比不过。

    4. OliviaWang OliviaWang

      The agent's ability to adapt to page changes is incredible. One of my scripts broke after a website redesign, but with browser-use the AI just figured out the new layout automatically. No code changes needed.

    5. 陈雨桐 陈雨桐

      安装教程写得很详细,按步骤来一次就成功了。强烈建议用虚拟环境,依赖管理会清爽很多。遇到问题可以先看看GitHub的Issues,基本都能找到答案。