# 浏览器工具问题解决方案 ## 问题描述 browser-use 启动时报错: ``` JSONDecodeError: Expecting value: line 1 column 1 (char 0) CDP connected but failed to re-create CDP session ``` ## 根本原因 **环境变量中的代理设置**导致 httpx 库无法访问 localhost 的 CDP 端点。 即使关闭了 VPN,系统环境变量中可能仍然保留了代理配置,导致: - httpx 尝试通过代理访问 `http://localhost:9222` - 代理无法处理 localhost 请求 - 请求超时或返回空响应 - 导致 JSONDecodeError ## 解决方案 ### 方案1:设置 NO_PROXY 环境变量(推荐) 在你的 Python 脚本开头添加: ```python import os # 禁止对所有地址使用代理 os.environ['NO_PROXY'] = '*' os.environ['no_proxy'] = '*' ``` ### 方案2:在 run.py 中启用 在 `examples/find knowledge/run.py` 第15行,取消注释: ```python # 原来(第15行): # os.environ.setdefault("no_proxy", "*") # 改为: os.environ.setdefault("no_proxy", "*") ``` ### 方案3:永久设置(可选) 在 `~/.zshrc` 或 `~/.bash_profile` 中添加: ```bash export NO_PROXY="*" export no_proxy="*" ``` 然后重启终端。 ## 验证 运行测试脚本验证修复: ```bash cd examples/test_browser python3 test_browser_fixed.py ``` 应该看到: ``` ✅ 浏览器会话启动成功 ✅ 导航成功 ``` ## 为什么同事可以运行 可能的原因: 1. 同事没有安装 VPN 或代理软件 2. 同事的环境变量中没有代理配置 3. 同事的代码已经包含了 NO_PROXY 设置 ## 技术细节 - httpx 默认会读取环境变量 `HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY` - 当设置了代理但没有设置 NO_PROXY 时,localhost 请求也会被代理 - 大多数代理不支持 localhost,导致请求失败 - 设置 `NO_PROXY=*` 告诉 httpx 不要对任何地址使用代理