问题现象
在 Trae 中接入本地模型(Ollama 等)后,每次发送消息首 Token 延迟接近 4 分钟,但:
- 用 DSH 等工具直连同一个本地模型,首 Token 只要 1~2 秒
- 用 CodeBuddy 接入同一个本地模型,首 Token 只要 3~10 秒
- 本地模型服务后台日志显示,Trae 实际只发出了 一次 推理请求,并非多次并发排队
- 等待期间没有明确报错,就是单纯卡住
排查过程(走过的弯路)
这个问题迷惑性很强,所有“常规怀疑对象”都对不上:
- 怀疑 system prompt 太大 —— 但 CodeBuddy 同样有 system prompt,差距不可能到几十倍
- 怀疑本地模型并发排队 —— 提高 OLLAMA_NUM_PARALLEL 没有改善,后台本来就只有一个请求
- 怀疑 streaming 没开 —— 最终输出是流式的,等待时长与生成长度无关
- 怀疑 GPU / 显存 / Flash Attention —— 同一个模型用 DSH 直连速度正常,硬件没有问题
- 怀疑云端中转 —— 抓包确认请求确实是发到本地的
真正原因
Trae 中配置的模型 ID 大小写,与本地模型服务注册的模型名称不一致。
例如本地实际是 Qwen2.5-Coder,在 Trae 里写成了 qwen2.5-coder(或反过来)。
Trae 在正式发起推理请求前,会拿配置的模型 ID 去做名称校验/比对。大小写不匹配时,这一步会反复重试或长时间超时等待,表现为请求一直“卡着不发出”,但没有任何错误提示。
而 DSH、CodeBuddy 等工具不做这层名称比对(或比对大小写不敏感),所以同样的模型名写法在它们那里完全正常。
解决方法
确认本地模型服务中的准确模型名(以 Ollama 为例):
ollama list
然后到 Trae 的自定义模型配置中,把模型 ID 一字不差地填成列表里的名称,包括大小写。
修正后,首 Token 延迟从 ~4 分钟降到 1~3 秒,与直连体验一致。
一点建议
希望官方在模型 ID 校验失败时能立即给出明确的错误提示(如“模型名不存在,请检查大小写”),而不是静默重试几分钟。这个问题的排查成本几乎全在“没有任何报错信息”上。
环境:Windows + Ollama 本地模型 + Trae 自定义模型接入
希望能帮到遇到同样问题的同学,少走几个小时弯路。