3 分钟

OpenAI 兼容客户端空了或慢了,我一般这么查

Cline、Cursor、Codex 指到 OpenAI 兼容 Base URL 后空回复或变慢时,按路径、Provider、模型名排查。

OpenAI #OpenAI / Cline / Cursor / Codex

今天又看见有人骂模型降智了。Cline、Cursor、Codex 指到一条 OpenAI 兼容 Base URL,刚开始还能补全,过一会儿气泡空白,工具卡住,半截字飘出来。

话说这种场面我见太多了。10次里头有8次,模型没抽风,是路径、Provider、模型名里有一个写错了。别急着换模型,也别急着退订。

下面按我自己的排查顺序来。参数以文档为准:ClineCursorCodex。Xclis 入口示例是 https://jp.xclis.ai/v1,密钥用看板 API Key。你那边网关若写明会自动补全路径,以对方文档和最小请求结果为准。

认清你遇到的是哪一类

空回复:界面显示成功,content 空,或者流式只有心跳。优先查 Base URL、模型名、Provider。

变慢:首 token 久等,工具一轮一轮拖。优先查网络、上下文体积、串行工具。

鉴权挂了:401、403。优先查 Key 截断、没启用、环境变量没生效。

半通:有时行有时不行。多半是旧 Base URL 缓存,或者好几个 Profile 互相碰到。

我该怎么查

  1. Base URL 按客户端和网关文档填写。 Xclis 文档示例常写成 https://jp.xclis.ai/v1。尾空格、重复路径、漏字段,看着没事,请求可能已经打到错地址。Claude Code 用 Anthropic 风格入口时,文档写的是 https://jp.xclis.ai。拿不准就对照对应 docs,并用最小请求验证。见 Claude Code
  2. Provider 选成 OpenAI Compatible。 下拉里点成官方 OpenAI 或 Azure,只改 Key、没改 Base,请求根本没打到你以为的网关。三项对齐:Provider、Base URL、完整 Key(无空格、无引号)。
  3. 模型名粘文档,别手打别名。 Cursor 和 Cline 用 gpt-5.6-sol,Codex 用 gpt-5.6-terra(以实时 docs 为准)。字段留空,或被客户端自动补成官方 ID,空回复很常见。
  4. Agent 稍后再开,用最小请求验证链路。 单次 chat 或 Test connection,Prompt 一两句,能关就关掉 MCP。最小请求都空:继续查路径。最小请求通、只有 Agent 挂:查任务范围和上下文,别一上来断定网关坏了。
  5. 遇到空回复就去翻日志。 有的客户端把 “HTTP 200 + 空 delta” 画成空白气泡,不报错。看有没有发出请求、状态码、body 是空字符串还是错误 JSON 被界面吃掉了。
  6. 如果变慢就分阶段查找原因。 本机到网关的握手,首 token,工具轮次,本地索引。单文件任务、少开并行 Agent。仓库很大、diff 很大、又 @ 全仓时,别急着下结论。
  7. 改完一项配置,完全退出再开。 全局设置、项目设置、Shell 里残留的 OPENAI_BASE_URL,同名 Custom Provider,改五项再猜,纯属浪费时间。

需要确认2点

路径没有验证之前,换模型多半没用。把路径跑通更要紧。

Cursor 通、Cline 空?对齐两边 Base、模型、Key。别一上来断定是上游故障。

去哪里可以核对

Cline:docs/cline

Cursor:docs/cursor

Codex:docs/codex

就这些吧。curl 通、客户端空的怪例,评论区见,带上日志片段。我帮你看是路径写错,还是 Provider 选错了。

配置以对应 docs 为准。