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 |
架构概览
快速体验
# 1. 创建项目并安装 browser-useuv init && uv add browser-use && uv sync
# 2. 设置 API Key# .env# BROWSER_USE_API_KEY=your-key
# 3. 运行第一个 Agentpython -c "import asynciofrom 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:
- Agent 核心循环与 ReAct 模式的落地实现(Agent 核心循环设计)
- 工具调用的协议设计(工具调用协议与执行模型)
- 多模型适配与故障转移策略(多模型适配架构)
- 上下文压缩与 Token 优化(上下文压缩与 Token 优化)
- 安全沙箱与浏览器隔离(安全沙箱设计)
- 系统提示工程实践(系统提示组装策略)
编程核心教程(dev/)
聚焦 Browser Use 源码中的工程实践:
- 事件驱动架构与 bubus 事件总线
- Watchdog 服务模式设计
- CDP 协议封装与 typed CDP 客户端
- DOM 提取与无障碍树生成
- 异步工具注册表与动态 Pydantic 模型
- 测试策略与 CI 实践