3 分钟
OpenAI 兼容客户端空了或慢了,我一般这么查
Cline、Cursor、Codex 指到 OpenAI 兼容 Base URL 后空回复或变慢时,按路径、Provider、模型名排查。
今天又看见有人骂模型降智了。Cline、Cursor、Codex 指到一条 OpenAI 兼容 Base URL,刚开始还能补全,过一会儿气泡空白,工具卡住,半截字飘出来。
话说这种场面我见太多了。10次里头有8次,模型没抽风,是路径、Provider、模型名里有一个写错了。别急着换模型,也别急着退订。
下面按我自己的排查顺序来。参数以文档为准:Cline、Cursor、Codex。Xclis 入口示例是 https://jp.xclis.ai/v1,密钥用看板 API Key。你那边网关若写明会自动补全路径,以对方文档和最小请求结果为准。
认清你遇到的是哪一类
空回复:界面显示成功,content 空,或者流式只有心跳。优先查 Base URL、模型名、Provider。
变慢:首 token 久等,工具一轮一轮拖。优先查网络、上下文体积、串行工具。
鉴权挂了:401、403。优先查 Key 截断、没启用、环境变量没生效。
半通:有时行有时不行。多半是旧 Base URL 缓存,或者好几个 Profile 互相碰到。
我该怎么查
- Base URL 按客户端和网关文档填写。 Xclis 文档示例常写成
https://jp.xclis.ai/v1。尾空格、重复路径、漏字段,看着没事,请求可能已经打到错地址。Claude Code 用 Anthropic 风格入口时,文档写的是https://jp.xclis.ai。拿不准就对照对应 docs,并用最小请求验证。见 Claude Code。 - Provider 选成 OpenAI Compatible。 下拉里点成官方 OpenAI 或 Azure,只改 Key、没改 Base,请求根本没打到你以为的网关。三项对齐:Provider、Base URL、完整 Key(无空格、无引号)。
- 模型名粘文档,别手打别名。 Cursor 和 Cline 用
gpt-5.6-sol,Codex 用gpt-5.6-terra(以实时 docs 为准)。字段留空,或被客户端自动补成官方 ID,空回复很常见。 - Agent 稍后再开,用最小请求验证链路。 单次 chat 或 Test connection,Prompt 一两句,能关就关掉 MCP。最小请求都空:继续查路径。最小请求通、只有 Agent 挂:查任务范围和上下文,别一上来断定网关坏了。
- 遇到空回复就去翻日志。 有的客户端把 “HTTP 200 + 空 delta” 画成空白气泡,不报错。看有没有发出请求、状态码、body 是空字符串还是错误 JSON 被界面吃掉了。
- 如果变慢就分阶段查找原因。 本机到网关的握手,首 token,工具轮次,本地索引。单文件任务、少开并行 Agent。仓库很大、diff 很大、又 @ 全仓时,别急着下结论。
- 改完一项配置,完全退出再开。 全局设置、项目设置、Shell 里残留的
OPENAI_BASE_URL,同名 Custom Provider,改五项再猜,纯属浪费时间。
需要确认2点
路径没有验证之前,换模型多半没用。把路径跑通更要紧。
Cursor 通、Cline 空?对齐两边 Base、模型、Key。别一上来断定是上游故障。
去哪里可以核对
Cline:docs/cline
Cursor:docs/cursor
Codex:docs/codex
就这些吧。curl 通、客户端空的怪例,评论区见,带上日志片段。我帮你看是路径写错,还是 Provider 选错了。
配置以对应 docs 为准。