browser-use 的三种启动方式详解
browser-use 的三种启动方式详解
browser-use 提供了三种不同的启动方式,分别适用于不同的使用场景和交互需求。下面是对这三种模式的详细解析:
1. MCP 服务器模式 (MCP Server Mode)
功能与用途:
- 作为 MCP (Model Control Protocol) 服务器运行,通过标准输入/输出 (stdin/stdout) 提供 JSON RPC 接口
- 主要用于与 Claude Desktop 或其他支持 MCP 协议的 AI 客户端集成
- 提供浏览器自动化能力给大型语言模型使用
启用方式:通过 --mcp
命令行参数启用
browseruse --mcp
核心实现:位于 browser_use/mcp/server.py
文件,主要功能包括:
- 提供浏览器自主任务执行
- 直接浏览器控制(导航、点击、输入等)
- 网页内容提取
- 文件系统操作
使用场景:
- 当需要在 Claude Desktop 或其他 MCP 兼容的 AI 助手环境中使用浏览器功能时
- 需要以服务器方式提供浏览器能力给其他应用程序调用时
2. Prompt 模式 (Non-interactive Mode)
功能与用途:
- 非交互式模式,用于执行单个预定义任务
- 默认以无头模式 (headless) 运行浏览器
- 适合自动化脚本或批处理场景
启用方式:通过 -p
或 --prompt
命令行参数提供任务内容
browseruse --prompt "搜索并获取今天的天气预报"
核心实现:在 run_prompt_mode()
函数中实现,主要流程包括:
- 加载配置并应用命令行参数
- 初始化 LLM 模型
- 创建浏览器会话和代理
- 执行指定任务
- 完成后自动清理资源并退出
使用场景:
- 自动化脚本中执行特定的浏览器任务
- CI/CD 流程中的自动化测试或数据收集
- 需要将浏览器操作集成到其他命令行工具链中
3. Textual 界面模式 (Interactive TUI Mode)
功能与用途:
- 交互式终端用户界面 (TUI),提供丰富的用户交互体验
- 允许用户通过文本界面输入任务、查看执行结果和监控系统状态
- 包含多面板展示(主输出、事件日志、CDP消息等)
启用方式:默认模式,不指定 --mcp
或 --prompt
参数时自动启用
browseruse
核心实现:由 textual_interface()
函数和 BrowserUseApp
类实现,主要特点:
- 使用 Textual 库构建的终端界面
- 支持命令历史和导航
- 实时显示浏览器操作和代理思考过程
- 提供丰富的界面布局和交互绑定
使用场景:
- 交互式探索和测试 browser-use 功能
- 开发和调试复杂的浏览器自动化任务
- 需要实时监控代理执行过程的场景
三种模式的关键区别
特性 | MCP 服务器模式 | Prompt 模式 | Textual 界面模式 |
---|---|---|---|
交互方式 | 通过 JSON RPC (stdin/stdout) | 非交互式,单任务 | 交互式 TUI |
主要用途 | 与 AI 客户端集成 | 自动化脚本/批处理 | 交互式探索/开发 |
浏览器模式 | 通常为 headless | 默认 headless | 可配置 (默认可见) |
退出行为 | 持续运行直到外部中断 | 任务完成后自动退出 | 用户主动退出 |
输出格式 | JSON RPC 消息 | 结果文本 | 格式化的终端界面 |
启动流程决策树
当通过 CLI 启动 browser-use 时,系统会按照以下逻辑决定使用哪种模式:
- 如果指定了
--mcp
参数 → 使用 MCP 服务器模式 - 如果指定了
--prompt
参数 → 使用 Prompt 模式 - 否则 → 默认使用 Textual 界面模式
这种设计使得 browser-use 能够灵活适应不同的使用场景,从交互式开发到自动化集成,再到 AI 客户端扩展,提供全面的浏览器自动化解决方案。