添加自定义模型服务模型教程 v4.0版本(2026.05.15更新)

你好,我刚刚用MTC尝试分析解决了一下,他搜索到网上有一篇掘金的文章提到过此类问题,我让他总结了一下你的问题尝试给出解决方案,内容如下:
掘金原文: Trae IDE 本地调用 Gemma4:E4B 大模型全场景开发完美配置教程# Trae IDE 本地Gemma 4B - 掘金

一、问题描述

用户使用 最新版 Trae-CN,调用本地部署的 Ollama + Gemma4:E4B 模型时,Trae 客户端返回 4054 错误代码。

已确认正常的部分

  • :white_check_mark: Ollama 服务端正常:通过 ollama ps 可以看到模型正在运行

  • :white_check_mark: 本地模型本身没问题:用户自己构建 Agent 可以正常调用 Ollama + Gemma4:E4b

  • :white_check_mark: Ollama 的 OpenAI 兼容接口正常:用户确认了 Ollama 提供了 OpenAI 兼容的 API 说明

  • :white_check_mark: Base URL 配置正确:经确认,用户填写的 Base URL 地址无误


二、根因分析

最可能的原因:Ollama 默认 num_ctx 太小导致上下文溢出

根据多篇 Trae + Ollama + Gemma4 的配置教程,存在一个被广泛忽视的天坑:

Ollama 原生默认的 num_ctx 仅为 2048 tokens,而 Trae 的 Builder 模式光系统提示词就会占用 1000~2000 token,剩下的空间跑 2 轮就满了。

用户使用的是原始的 gemma4:e4b 模型(没有经过 Modelfile 固化参数),这意味着:

  • 默认 num_ctx = 2048

  • Trae 发送请求时,系统提示词 + 用户消息可能直接接近或超过这个上限

  • 模型无法正常处理请求,返回异常,Trae 客户端将其解读为 4054 错误

这完美解释了以下现象:

现象 解释
Ollama 服务端正常(ollama ps 显示模型在运行) 模型确实已启动,但请求处理失败
自己构建 Agent 能正常调用 Agent 模式的提示词更短,没有超过 2048 上限
Trae 的 Builder/Chat 模式报 4054 Trae 内置的系统提示词过长,直接撑爆了默认上下文窗口

其他可能原因(按概率排序)

优先级 原因 说明
:star::star::star: 默认 num_ctx 太小 Ollama 默认 2048,Trae 系统提示词就快占满了,请求直接溢出
:star::star: 服务商选择错误 选了 OpenAI 而非 Ollama。选 OpenAI 协议时 URL 需加 /v1,且 Ollama 的 OpenAI 兼容接口和原生接口行为有差异
:star::star: 模型 ID 填写问题 填的是 Gemma4:e4b,但 Ollama 中模型名可能是 gemma2:4b 或其他,大小写敏感
:star: Trae 版本兼容性 Bug 同帖另一位用户反馈"昨天能用今天不能用",可能是 Trae 更新引入的回归问题
:star: 网络/代理拦截 4054 也可能代表网络层错误,Trae 可能无法正常连接 localhost

三、解决方案

第一步(最关键):创建固化参数的自定义模型

创建一个 Modelfile 文件:


FROM gemma2:4b

# 核心防断流/防截断参数

PARAMETER num_ctx 8192

PARAMETER num_predict 2048

# 代码开发专属稳定参数

PARAMETER temperature 0.25

PARAMETER top_k 25

PARAMETER top_p 0.9

PARAMETER repeat_penalty 1.1

然后执行:


ollama create gemma:4b-trae -f ./Modelfile

在 Trae 中使用 gemma:4b-trae 这个固化后的模型名。

硬件参考:8G 显存最大安全 num_ctx 为 8192,16G+ 显存可设为 16384(需 RoPE 缩放)。

第二步:确认服务商选择

方案 服务商 Base URL 说明
方案一(推荐) Ollama http://localhost:11434 不加 /v1 后缀
方案二(兜底) OpenAI http://localhost:11434/v1 必须加 /v1 后缀

第三步:确认模型 ID

运行 ollama list 确认实际模型名称,确保 Trae 中填写的模型 ID 与 ollama list 显示的完全一致(大小写敏感)。


四、补充说明

4054 错误码的含义

帖子作者 JasonShane 在论坛中查询后表示,4054 错误码大多数源自网络问题。但结合上下文分析,在本场景中更可能是请求参数溢出导致模型无法正常响应,Trae 将其归类为网络/连接类错误。

同帖其他用户反馈

  • 用户38490:昨天还能用的本地模型,今天相同配置就不行了,唯一变化是 Trae 更新了 → 可能存在 Trae 版本回归 Bug

  • 用户16804:按照教程配置后成功,确认是 Base URL 的问题(需加 /v2/chat/completions 后缀)

  • 用户44267:OpenRouter 自定义模型添加成功但对话内容为空 → 可能是模型 ID 或协议兼容问题


五、总结

核心原因大概率是:Ollama 默认 num_ctx=2048 太小,Trae 的系统提示词直接把上下文撑爆了,导致请求失败返回 4054。 用户自己构建 Agent 能用是因为 Agent 模式的提示词更短,没有触发这个限制。解决方案是通过 Modelfile 固化一个 num_ctx=8192 的自定义模型。

4 个赞