
当 browser-use 代理卡在 “step 1” 无限循环时,通常并非浏览器操作问题,而是底层 llm 调用静默失败所致——错误被吞没,日志无提示,需从 api 凭据、模型能力及网络三方面系统排查。
当 browser-use 代理卡在 “step 1” 无限循环时,通常并非浏览器操作问题,而是底层 llm 调用静默失败所致——错误被吞没,日志无提示,需从 api 凭据、模型能力及网络三方面系统排查。
browser-use 是一个面向自动化网页交互的智能代理库,其核心依赖 LLM 进行步骤规划与工具调用。但当前版本存在一个关键行为:当 LLM 请求失败(如认证失败、模型不支持函数调用等)时,库不会抛出异常,也不会记录有效错误信息,而是反复重试初始步骤,表现为日志中持续输出 INFO [agent] ? Step 1。
? 常见根本原因与验证方法
-
LLM API Key 无效或权限不足
- 检查环境变量是否正确设置(如
OPENAI_API_KEY、ANTHROPIC_API_KEY或对应服务商变量); - 验证 Key 是否过期、余额为零,或所属组织/项目未启用对应模型访问权限;
- ✅ 快速验证:在终端中手动执行一次简单 API 请求(如使用
curl或 Pythonrequests),确认返回 200 及有效响应。
- 检查环境变量是否正确设置(如
-
模型不支持工具调用(Function Calling / Tool Use)
Alibabacloud Agentloop Contextstore下载使用阿里云CLI(API 版本 2024-03-30)操作阿里云云监控服务(CMS)的 AgentLoop ContextStore,适用于用户提及云监控时。
-
browser-use严重依赖 LLM 的结构化工具调用能力(如 OpenAI 的tools参数、Claude 的tool_use、Ollama 的function_calling支持); - ❌ 错误示例(Ollama):
ollama run phi3:latest—— 此类轻量模型默认无工具调用逻辑; - ✅ 推荐模型:OpenAI
gpt-4o/gpt-4-turbo、Anthropicclaude-3.5-sonnet、Ollama 中明确标注function calling的模型(如llama3.2:3b-instruct-fp16+ 自定义工具 schema)。
-
-
use_vision=True但模型不支持多模态输入- 若启用了视觉能力(如截图分析),而所选模型仅为纯文本模型(如
llama3.1:8b),请求将静默失败; - ✅ 解决方案:显式禁用视觉(
use_vision=False),或切换至支持 vision 的模型(如gpt-4o,claude-3.5-sonnet,llava:7b)。
- 若启用了视觉能力(如截图分析),而所选模型仅为纯文本模型(如
-
网络或代理限制
- 检查是否因防火墙、公司代理或 DNS 问题导致无法连接 LLM 服务端;
- 可临时设置超时与重试策略辅助诊断:
from browser_use import Agent agent = Agent( task="登录 GitHub", # 显式控制 LLM 客户端行为(以 OpenAI 为例) llm_config={ "model": "gpt-4o", "timeout": 30.0, "max_retries": 1, } )
⚠️ 注意事项与最佳实践
-
永远启用
raise_on_failure=True(若版本支持):部分新版browser-use提供该参数,可强制失败时抛出异常,避免静默循环; -
避免仅依赖
BROWSER_USE_LOGGING_LEVEL=debug:当前 debug 日志对 LLM 层异常覆盖不足,建议配合logging.basicConfig(level=logging.DEBUG)全局捕获 requests/HTTP 底层日志; -
最小化复现测试:剥离业务逻辑,用最简任务(如
"say hello")验证 LLM 链路是否通畅; - 关注 GitHub Issues:该静默失败行为已在 browser-use issue #127 等处被报告,后续版本预计增强错误透出机制。
通过以上排查,90% 的 “Step 1 卡死” 问题可快速定位并解决。记住:不是浏览器没启动,而是大脑(LLM)没收到指令——先确保“大脑”在线且听得懂话。
















