
browser-use 代理启动后反复输出 INFO [agent] ? Step 1 却无进展,通常是因底层 LLM 调用静默失败所致——错误被吞没,即使开启 debug 日志也难以察觉。核心原因包括 API 密钥异常、模型不支持工具调用或视觉能力、网络不可达等。
`browser-use` 代理启动后反复输出 `info [agent] ? step 1` 却无进展,通常是因底层 llm 调用静默失败所致——错误被吞没,即使开启 debug 日志也难以察觉。核心原因包括 api 密钥异常、模型不支持工具调用或视觉能力、网络不可达等。
当使用 browser-use 快速启动(quickstart)代码时,若代理始终停滞在 Step 1,这并非浏览器操作层的问题,而是LLM 初始化阶段已失败——但库当前未将异常向上抛出或清晰记录,导致调试困难。以下是系统性排查与修复指南:
✅ 1. 验证 LLM 凭据与服务可用性
确保环境变量中配置了正确的 API 密钥,并确认服务端点可达:
# 示例:检查 OpenAI 凭据
export OPENAI_API_KEY="sk-..." # 确保非空、未过期、有余额
export OPENAI_BASE_URL="https://api.openai.com/v1" # 如使用代理/兼容接口,请核对 URL
# 快速验证连通性(终端执行)
curl -H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"hello"}]}' \
"$OPENAI_BASE_URL/chat/completions"
✅ 成功响应应含 "choices" 字段;若返回 401(无效密钥)、403(权限不足)或超时,则需修正凭证或网络配置。
✅ 2. 确认模型支持结构化工具调用
browser-use 严重依赖 LLM 的 function calling / tool use 能力(非仅文本生成)。以下模型 不适用:
- 大多数纯文本 Ollama 模型(如
llama3,phi3),除非显式启用并测试过工具调用; - 未启用
tools支持的本地部署模型(如 vLLM 未配置--enable-tool-calling)。
✅ 推荐验证方式(Python):
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
tools=[{"type": "function", "function": {"name": "get_weather", "parameters": {}}}],
tool_choice="auto"
)
print("Tool call supported:", hasattr(response.choices[0].message, "tool_calls"))
若报错或 tool_calls 为 None,请切换至明确支持工具调用的模型(如 gpt-4o, claude-3.5-sonnet, 或经验证的 llama3.1:70b + Ollama 工具插件)。
✅ 3. 检查 use_vision 配置是否匹配模型能力
若初始化时设置了 use_vision=True(例如用于截图分析),但所选模型不支持多模态输入(如 gpt-3.5-turbo),请求将静默失败。
✅ 解决方案:
- 临时禁用视觉能力测试基础流程:
from browser_use import Agent agent = Agent( task="Go to google.com and search 'browser-use tutorial'", use_vision=False, # 关键:先设为 False 排查 ) - 确认模型支持视觉后再启用(如
gpt-4o,claude-3.5-sonnet)。
⚠️ 注意事项
-
日志局限性:当前
BROWSER_USE_LOGGING_LEVEL=debug不会打印 LLM 层异常堆栈。建议在Agent.__init__()或run()前后手动添加try/except包裹,捕获并打印原始异常。 -
版本敏感性:v0.4.0+ 已增强部分错误透出,建议升级:
pip install --upgrade browser-use。 -
超时设置:LLM 延迟过高也可能导致假性卡顿,可显式设置超时:
agent = Agent(..., llm_config={"timeout": 30}) # 单位:秒
通过以上步骤逐项验证,90% 的 “Step 1 卡死” 问题可定位并解决。根本原则是:让 LLM 调用成功完成一次带工具选择的响应,是 browser-use 启动后续自动化流程的前提。










