Gemini CLI · 代理报错

Gemini CLI 报 HttpsProxyAgent is not a constructor 怎么解决?

这个报错发生在代理对象初始化阶段,请求通常还没有到达 Gemini API。先用无代理对照实验确认触发条件,再检查 CLI 版本、认证方式和代理协议;盲目更换 API Key 通常没有作用。

更新日期:2026-09-01·作者:island AI Coding 技术团队·主词:Gemini CLI 代理报错
错误特征HttpsProxyAgent constructor
重点区分网络失败 / 客户端崩溃
优先验证临时清除代理变量

1. 先判断请求是否已经发出

TypeError: HttpsProxyAgent is not a constructor 与普通的连接超时不同。前者说明 CLI 在构造代理 Agent 时就终止了,服务端可能完全没有收到请求。

表现更可能的层级优先动作
启动后立即抛 TypeErrorCLI 依赖或打包兼容记录版本并做无代理对照
等待后 ETIMEDOUT代理、DNS 或出口网络用 curl 测试代理端口
控制台出现 401/429请求已到 API转查认证或额度
Gemini CLI 与 Node.js 版本基线及不可达本地代理返回 curl 7 的脱敏终端证据
代理基线:当前环境记录 Gemini CLI 0.50.0、Node.js v24.16.0,不可达代理在认证前返回 curl 7。该结果用于区分传输失败,不能替代特定版本的 HttpsProxyAgent 堆栈。

2. 用一次对照实验锁定 HTTP_PROXY

先在新终端记录变量,不要直接修改全局配置。随后仅对当前进程临时清除代理变量,再发送同一个最小请求。

macOS / Linux 当前会话
env | grep -i proxy
env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy gemini --prompt "ping"

若清除变量后不再出现构造器错误,可以确认触发点在 CLI 的代理代码路径;这不等于代理服务器本身失效。

3. 检查代理协议与大小写变量

HTTP_PROXYHTTPS_PROXY 以及小写版本可能同时存在。值中的协议描述的是如何连接代理,而不是目标 API 的协议。实际监听 HTTP 的本地代理不要因为目标是 HTTPS 就擅自写成 https://

占位示例
export HTTP_PROXY="http://127.0.0.1:PORT"
export HTTPS_PROXY="http://127.0.0.1:PORT"
export NO_PROXY="localhost,127.0.0.1,::1"

4. 修复顺序:升级、对照、临时回退

  1. 记录 gemini --version、Node.js 版本和认证类型。
  2. 升级到当前稳定版后重复同一测试。
  3. 若新版本才出现,临时回退到已验证版本并锁定版本号。
  4. 必须经过代理时,可测试系统级 TUN;它不会触发相同的 Node 代理 Agent 路径。
  5. 保留代理变量前后的日志,等待客户端修复后再回归。
不要把关闭代理当作长期方案如果网络必须通过代理访问外部 API,应改用经过验证的代理方式或客户端版本,不能绕过组织网络要求。

5. 使用 Gemini API 中转时分层验证

先检查中转控制台是否有对应时间的请求记录。没有记录说明请求尚未到达 Base URL;有记录并返回 HTTP 状态码,才进入 API Key、模型权限、余额和限流排查。

island AI Coding 的统一 Base URL 为 https://www.codex789.com/v1。客户端是否支持自定义地址取决于其协议和版本,OpenAI 兼容地址不能自动等同于 Gemini 原生端点。

6. 修复后的验证清单

  1. 无代理和有代理各执行一次同样的短请求。
  2. 确认不再出现 JavaScript TypeError。
  3. 检查请求是否到达目标 API 或中转控制台。
  4. 逐步恢复项目上下文和工具调用。
  5. 记录可用 CLI、Node 与代理组合。

7. 常见问题

?更换 API Key 能解决 HttpsProxyAgent 报错吗?

通常不能。该 TypeError 多发生在代理对象初始化阶段,认证请求尚未发出。先验证代理变量和客户端版本。

?为什么 curl 通过代理正常,Gemini CLI 仍然崩溃?

curl 与 Gemini CLI 使用不同的 HTTP 实现。代理服务器可用,不代表特定版本的 Node 代理依赖一定能正确加载。

?可以永久删除 HTTPS_PROXY 吗?

只有网络允许直连时才适合。必须走代理的环境应升级或回退客户端,或者采用已验证的系统级网络方案。

?中转控制台没有请求记录说明什么?

说明故障发生在客户端、代理、DNS 或 Base URL 配置阶段,请求尚未到达中转网关。

* 本文由 island AI Coding 技术团队根据官方文档与公开问题记录原创整理。公开 issue 描述的是特定版本和环境,修复状态可能变化;操作前请记录版本并保留回滚路径。更新时间:2026-09-01。

参考:Gemini CLI 代理构造器 issue · Gemini API 官方故障排查