☰
browser-use 三种启动方式详解:从 CLI 到 MCP 接入 TaoToken 配置
2026/9/29 4:44:41 网站建设 项目流程

1. 先搞清楚 browser-use 三种启动方式到底差在哪

browser-use 是一个把大语言模型和真实浏览器连起来的开源框架,你给它一句自然语言任务,它自己规划步骤、打开网页、点击按钮、填表单、抓内容。它最容易被忽略的一点是:同一个命令browseruse,背后其实有三条完全不同的启动路径,分别对应三种使用姿势。选错了路径,你会觉得它「怎么没反应」或者「怎么一直不退出」。

三条路径分别是:CLI 的 Prompt 模式(--prompt,跑完一个任务就退出,适合脚本和批处理)、Textual 交互界面模式(不带参数直接启动,终端里出现多面板 TUI,适合边看边调)、MCP 服务器模式(--mcp,通过 stdin/stdout 提供 JSON-RPC 接口,给 Claude Desktop 这类支持 MCP 协议的客户端调用)。它们共用同一套配置加载逻辑,但浏览器是否可见、任务结束后是否退出、输出给谁看,差别很大。

这篇面向的是想在本地快速跑通浏览器自动化 Agent 的开发者。我会把三种方式的启动命令、config.toml与settings.json骨架、以及统一走 TaoToken 的 Key/API 通道的接入位置都写清楚,每一步都给出可复制的配置和验证动作,确保三条路径都能正常拉起任务。适合已经装好 Python 环境、想少走弯路的人。

2. 前置准备:环境、依赖与 TaoToken 统一通道

2.1 安装与环境确认

先确认 Python 版本,browser-use 对 3.11 及以上支持较好:

python --version pip install "browser-use[cli]" playwright playwright install chromium

playwright install chromium这步别省,browser-use 底层靠 Playwright 驱动浏览器,缺了它启动时会直接报找不到可执行文件。装完可以用browseruse --help看子命令是否正常输出。

2.2 为什么把模型通道统一到 TaoToken

browser-use 的每一步规划都要调用大模型,默认走 OpenAI 的地址。如果你手上有多个模型来源,逐个改环境变量很烦。TaoToken 提供统一的 Key 和 API 通道,把 base_url 指向https://taotoken.net/api,模型名按需切换即可,browser-use 侧只认一个 OpenAI 兼容入口。

在 TaoToken 控制台创建 Key 的入口在这里:

控制台:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

拿到 Key 后,先写进环境变量,三种启动方式都会读它:

export OPENAI_API_KEY="sk-你的TaoToken密钥" export OPENAI_BASE_URL="https://taotoken.net/api"

注意OPENAI_BASE_URL结尾不要带/v1,browser-use 内部会自己拼路径,多写一层会 404。这一步是后面所有验证的基础,先确认echo $OPENAI_BASE_URL输出正确再往下走。

3. 可复制配置:config.toml 与 settings.json 骨架

3.1 config.toml 骨架

browser-use 会从项目目录或用户配置目录读取config.toml。下面这份骨架把模型通道、浏览器行为、Agent 参数都列出来了,按需删改:

[llm] model = "gpt-4o-mini" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" temperature = 0.0 [browser] headless = false disable_security = false window_width = 1280 window_height = 800 [agent] max_steps = 25 use_vision = true save_conversation_path = "./logs"

temperature = 0.0是为了让 Agent 的规划更稳定,浏览器自动化任务里随机性越小越好复现。use_vision = true表示把截图也喂给模型,页面结构复杂时命中率更高,代价是 token 消耗上升。max_steps是安全阀,防止 Agent 在某个页面反复横跳停不下来。

3.2 settings.json 骨架(MCP 客户端侧)

如果你要接 Claude Desktop 这类 MCP 客户端,配置写在客户端的settings.json里。以 Claude Desktop 为例,找到它的配置文件位置,加入:

{ "mcpServers": { "browser-use": { "command": "browseruse", "args": ["--mcp"], "env": { "OPENAI_API_KEY": "sk-你的TaoToken密钥", "OPENAI_BASE_URL": "https://taotoken.net/api" } } } }

关键点是env里显式传入 Key 和 base_url。MCP 客户端启动子进程时不一定继承你 shell 里的环境变量,写在这里最稳。command用browseruse要求它在 PATH 里;如果不在,换成绝对路径,比如/usr/local/bin/browseruse。

3.3 三种方式的配置读取差异

配置项Prompt 模式Textual 模式MCP 模式
config.toml读取读取读取
环境变量读取读取依赖客户端 env
命令行覆盖支持支持不支持
浏览器默认可见性headless可见headless

命令行参数优先级高于 config.toml,所以临时调试时可以直接在命令里覆盖,不用改文件。

4. 三种启动方式逐步验证

4.1 Prompt 模式:跑完即退,适合脚本

这是最像「命令行工具」的一条路径。执行:

browseruse --prompt "打开 example.com,把页面主标题抓下来打印"

预期行为:终端打印 Agent 的思考过程和动作,浏览器以无头模式跑,任务完成后进程自动退出,最后输出结果文本。如果你看到它开始输出Action: goto、Action: extract_content这类步骤,说明模型通道已经通了。

想让它带界面跑,方便观察,加参数覆盖:

browseruse --prompt "搜索 browser-use 的 GitHub 仓库并返回 star 数" --headless false

这条路径适合塞进 CI 或 shell 脚本,退出码非 0 就代表任务失败,方便做流水线判断。

4.2 Textual 模式:交互式 TUI,边看边调

不带--mcp也不带--prompt,直接:

browseruse

终端会切进一个多面板界面:主输出区显示 Agent 的思考和结果,事件日志区滚动浏览器动作,CDP 消息区能看到底层协议交互。底部有输入框,敲任务回车即可。这个模式默认浏览器可见,你能亲眼看到它点哪、填哪,调试复杂流程时非常直观。

我试过在 TUI 里连续跑多个任务,命令历史用上下方向键调,不用反复敲长 prompt。如果界面没起来而是报错,多半是终端不支持或 Textual 依赖没装全,重装browser-use[cli]通常能解决。

4.3 MCP 模式:给 AI 客户端提供浏览器能力

先单独验证 MCP 服务器能不能起来:

browseruse --mcp

正常的话进程会挂住等待 stdin 输入,不打印多余内容,这是对的——它在等 JSON-RPC 消息。按 Ctrl+C 退出。然后按 3.2 的settings.json配好客户端,重启客户端,在对话里让它调用 browser-use 工具,比如「用 browser-use 打开某页面并总结内容」。客户端会拉起子进程,通过 stdio 收发消息。

MCP 模式的价值在于:你不需要自己写调度代码,AI 客户端负责决定什么时候调浏览器、传什么参数。browser-use 只负责执行和回传结果。

4.4 三种方式验证结果对照

验证动作成功信号失败信号
--prompt单任务打印步骤并输出结果后退出卡住不动或报鉴权错误
直接browseruse出现 TUI 多面板报 Textual 相关 ImportError
--mcp裸启动挂起等待输入立即退出并打印异常
客户端调用 MCP返回页面内容工具列表里没有 browser-use

5. 本篇常见错排查

5.1 鉴权失败:401 或 invalid api key

先确认OPENAI_BASE_URL没有多余斜杠或/v1,再确认 Key 没有前后空格。MCP 模式下重点查settings.json的env段,客户端不继承 shell 变量是高频坑。可以临时在命令前加env | grep OPENAI确认变量真的存在。

5.2 浏览器起不来:Executable doesn't exist

这是 Playwright 浏览器没装。跑playwright install chromium即可。如果公司网络对下载有限制,检查是否能访问 Playwright 的下载源,或改用系统已装的 Chrome,在 config.toml 里指定executable_path。

5.3 MCP 客户端里看不到 browser-use 工具

三个检查点:command是否在 PATH(用绝对路径最保险)、args是否是["--mcp"]、客户端是否重启过。改完settings.json必须重启客户端,热加载不生效。另外看客户端自己的日志,子进程启动失败通常会在那里留痕。

5.4 Textual 界面乱码或按键无响应

终端编码设成 UTF-8,export LANG=en_US.UTF-8或对应中文 locale。某些终端模拟器对 Textual 的鼠标事件支持不好,换系统自带终端试试。如果只是显示错位,调整窗口大小通常能重排。

5.5 任务跑飞:max_steps 用尽还没结束

把max_steps调大是一方面,更该做的是把 prompt 写具体。比如「打开某站,点登录,输入账号密码,提交」比「帮我登录」稳得多。use_vision = true也能帮模型看清页面,减少误点。

6. 把三种方式用在对的地方

三条路径不是互斥的,而是覆盖不同阶段。开发调试阶段用 Textual 模式,肉眼盯着 Agent 的每一步,改 prompt、调参数最快;任务稳定后固化成 Prompt 模式,丢进脚本或 CI 定时跑;需要让 AI 助手具备浏览器能力时,用 MCP 模式挂到客户端上,把调度权交给模型。

统一走 TaoToken 的通道后,三种方式共用一份 Key 和 base_url,切换时不用改代码,只改启动参数。模型对话想先验证通道是否通,可以直接在网页端试:

模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite

如果你打算长期跑编码类或 Agent 类任务,频繁调用模型,可以看下 Coding Plan 的额度方案:

Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

接入细节和参数说明以官方文档为准:

接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

最后给一个实用习惯:把config.toml里的save_conversation_path打开,每次任务的完整对话会落盘。任务跑飞时翻日志,比盯着终端回滚快得多,也能直接看出是哪一步的 prompt 让模型理解偏了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询