跳转到内容

Browser Use 项目介绍

Browser Use 项目介绍

项目定位

Browser Use 是一个 AI 驱动的浏览器自动化框架,通过 LLM 和 Chrome DevTools Protocol (CDP) 赋予 Agent 自主浏览网页、交互并完成复杂任务的能力。一句话概括:“告诉你的电脑该做什么,它就自动完成。“

核心能力

  • Agent 自主循环:Agent 接收自然语言任务,自主分解、规划、执行浏览器操作,无需逐步指令
  • 多模型支持:内置 OpenAI、Anthropic、Google、Groq、Ollama 等 10+ LLM Provider 抽象,支持故障转移
  • CDP 深度集成:通过 cdp-use 库直接与 Chrome DevTools Protocol 通信,非 Playwright/Selenium 包装层
  • 事件驱动架构:基于 bubus 事件总线协调多个 watchdog 服务,实现浏览器状态的实时监控与响应
  • 自定义工具扩展:通过 Tools 类注册自定义动作,支持结构化输出、Skill 系统集成
  • 生产级特性:CAPTCHA 处理、代理轮换、多标签页管理、文件下载追踪、循环检测、消息压缩
  • Cloud 平台:提供 Browser Use Cloud 服务,处理 stealth 浏览器、代理轮换、CAPTCHA 解决和规模化执行
  • MCP 集成:既可作为 MCP Server 暴露浏览器能力,也可连接外部 MCP Server 扩展 Agent 功能
  • CLI/TUI:提供命令行工具用于快速浏览器自动化调试

技术栈

组件技术
语言Python 3.11+ (异步)
浏览器通信CDP (Chrome DevTools Protocol) via cdp-use
事件总线bubus
数据验证Pydantic v2
构建工具uv + hatchling
LLM 抽象OpenAI SDK, Anthropic SDK, Google GenAI, Groq, Ollama 等
类型检查pyright (basic)
代码质量ruff (lint + format)
测试pytest + pytest-asyncio

架构概览

快速体验

Terminal window
# 1. 创建项目并安装 browser-use
uv init && uv add browser-use && uv sync
# 2. 设置 API Key
# .env
# BROWSER_USE_API_KEY=your-key
# 3. 运行第一个 Agent
python -c "
import asyncio
from browser_use import Agent, Browser, ChatBrowserUse
async def main():
browser = Browser()
agent = Agent(
task='Find the number of stars of the browser-use repo',
llm=ChatBrowserUse(),
browser=browser,
)
await agent.run()
asyncio.run(main())
"

教程导读

本教程分为 AI 应用编程核心 两大板块:

AI 应用教程(ai/)

聚焦如何从 LLM 应用角度使用 Browser Use:

编程核心教程(dev/)

聚焦 Browser Use 源码中的工程实践:

  • 事件驱动架构与 bubus 事件总线
  • Watchdog 服务模式设计
  • CDP 协议封装与 typed CDP 客户端
  • DOM 提取与无障碍树生成
  • 异步工具注册表与动态 Pydantic 模型
  • 测试策略与 CI 实践