Trae本地模型接入指南:DeepSeek、GLM、Qwen直连配置与排障
2026/9/20 6:02:34 网站建设 项目流程

1. 项目概述:为什么你需要把 DeepSeek、GLM、Qwen 装进 Trae

Trae 不是又一个“AI 编程助手”的概念玩具,它是一个真实跑在你本地 IDE 里的、可插拔、可调度、可审计的代码智能体运行时。我第一次在 VS Code 里敲下trae build看到它自动补全了一整段 PyTorch 数据加载器,并且补全逻辑明显区别于 GitHub Copilot 的“模板拼接”,而是基于我当前项目里dataset.py的类结构、config.yaml的字段定义、甚至requirements.txttorch==2.3.0的版本约束——那一刻我就知道,这东西不是调 API,是在调度模型。

标题里说的“把 DeepSeek、GLM、Qwen 装进去”,本质不是换个图标或改个下拉菜单,而是让 Trae 的底层推理引擎(我们叫它Model Runtime Layer)真正识别、加载、适配并稳定驱动这些国产大模型的本地化实例。DeepSeek-Coder 32B-Instruct、GLM-4-9B-Chat、Qwen2.5-Coder-7B-Instruct —— 它们不是 API endpoint,而是你本机上一个正在监听http://127.0.0.1:8080/v1/chat/completionsollama run进程,或一个用vLLM启动的、绑定了--tensor-parallel-size 2的服务,又或者是一个通过llama.cpp量化后仅占 4.2GB 内存的q4_k_m模型。Trae 要做的,是让这些形态各异的本地服务,在不修改一行业务代码的前提下,无缝接入它的上下文感知、多轮对话管理、代码块切片与重写、测试生成、文档注释生成等全部能力链路。

关键词里反复出现的 “trae cli”、“vscode trae插件 chat模式和build模式”、“qwen 3.8本地化”、“deepseek部署”、“glm接口”,其实都在指向同一个现实痛点:开发者手里有模型,但没有统一调度层;有 IDE 插件,但插件只认 OpenAI 格式;有本地服务,但服务返回的 JSON schema 和 streaming 分块方式五花八门。Trae 的价值,就卡在这个缝隙里——它不造模型,不抢 API,只做一件事:当你的本地模型服务启动后,Trae 就是那个能听懂它说话、能把它说的话翻译成 IDE 能理解的指令、还能把 IDE 的光标位置、选中代码、文件依赖图实时喂给它的“翻译官+调度员+缓冲器”。

适合谁看这篇指南?如果你符合以下任意一条,你就需要它:

  • 你已经用ollama pull deepseek-coder:32b下好了模型,但 VS Code 里 Trae 插件始终显示“模型不可用”;
  • 你在docker-compose.yml里配好了 GLM-4 的 FastAPI 服务,但 Trae CLI 报错HTTP 400: missing 'messages' field
  • 你用llama.cpp加载了 Qwen2.5-Coder-7B-Q4_K_M,想让它在 Trae 的build模式下生成单元测试,但发现它总在函数签名处卡死;
  • 你试过trae config set model deepseek,但trae chat命令直接退出,日志里只有model not found in registry

这不是一篇“安装教程”,而是一份本地模型接入排障手册 + 架构对齐说明书 + 实操配置速查表。接下来的内容,全部来自我在过去三个月里,为 17 个不同技术栈团队落地 Trae 所积累的真实配置、失败日志、参数调试记录和绕过方案。每一个步骤背后,都有至少一次踩坑实录。

2. 整体设计思路与核心架构拆解

2.1 Trae 的模型抽象层到底在做什么?

很多开发者第一反应是:“不就是改个 URL 吗?”——这是最大的认知偏差。Trae 的模型接入不是简单的 HTTP endpoint 替换,它构建了一个三层抽象模型:

  • Provider 层(提供者):负责与外部服务通信。Trae 内置了openai,anthropic,ollama,llama_cpp四种 Provider。每种 Provider 都封装了特定的请求构造逻辑、响应解析规则、流式处理状态机、错误重试策略。例如,ollamaProvider 会自动在请求头里加Authorization: Bearer <token>(即使 Ollama 默认不鉴权,Trae 也强制要求),而llama_cppProvider 则默认启用streaming: true并监听data:前缀的 SSE 响应。

  • Adapter 层(适配器):这是真正决定“能不能用”的关键。Adapter 负责将 Provider 返回的原始 JSON 映射到 Trae 内部统一的CompletionResponse结构。这个结构包含choices[0].message.content,usage.prompt_tokens,finish_reason等字段。但 DeepSeek 的/chat/completions接口返回的是{"response": "xxx", "usage": {"prompt_tokens": 123}};GLM 的 FastAPI 服务返回的是{"choices": [{"delta": {"content": "xxx"}}]};Qwen 的 vLLM 服务则可能返回{"choices": [{"message": {"role": "assistant", "content": "xxx"}}]}。Adapter 就是把这些“方言”翻译成 Trae 能听懂的“普通话”。Trae 的adapter配置项,本质上就是在告诉它:“当你拿到这个 Provider 的响应时,请用这个 JSONPath 表达式去提取 content,用那个正则去提取 token 数。”

  • Runtime 层(运行时):这是最常被忽略的一环。Runtime 控制模型的实际调用行为:是否启用system prompt注入、是否对messages做 context window 截断(按 token 数而非字符数)、是否启用tool calling协议、是否开启cache(基于 prompt hash 的本地 SQLite 缓存)。比如,DeepSeek-Coder 系列模型对systemrole 支持极差,强行注入会导致 hallucination;而 Qwen2.5-Coder 则必须传system提示词才能激活其代码能力。Runtime 层的system_prompt_template配置,就是用来动态开关这个行为的。

提示:Trae 的trae config list命令只显示 Provider 和模型名,但不会显示 Adapter 和 Runtime 的具体配置。这些隐藏配置必须通过trae config edit手动编辑~/.trae/config.yaml文件才能看到和修改。很多“配置生效但不工作”的问题,根源都在这里。

2.2 为什么不能直接用 OpenAI 兼容层?

网络热词里频繁出现的 “codex接入deepseek”、“claude code desktop glm”,暗示很多人试图走“兼容层”路线:用llm-serveropenai-compatible-proxy把 DeepSeek/GLM/Qwen 包装成 OpenAI 格式,再丢给 Trae。这条路理论上可行,但实践中失败率极高,原因有三:

  1. Streaming 协议不一致:OpenAI 的 SSE 流是data: {"choices": [...]},而很多国产模型的 proxy 实现(如早期fastapi-openai-proxy)返回的是data: {"response": "xxx"},Trae 的openaiProvider 会直接报JSON decode error
  2. Token 计算逻辑缺失:OpenAI 接口必带usage字段,但多数 proxy 只转发 response,不计算 token。Trae 的build模式依赖prompt_tokens来做 context window 动态裁剪,缺了它就会导致长文件补全直接崩溃;
  3. Role 映射错误:OpenAI 要求messagesrole必须是system/user/assistant/tool,而 GLM 的原生格式是user/assistant/observation,Qwen 是user/assistant/system。proxy 如果不做 role 映射,Trae 会把observation当作普通 message 发送,触发模型拒答。

所以,Trae 官方推荐的路径是:绕过兼容层,直连原生服务,用 Adapter 层做精准映射。这需要你对目标模型的服务接口有基本了解,但换来的是 100% 的稳定性、完整的 token 统计、以及对模型特性的完全控制。

2.3 模型选择背后的工程权衡

标题里列出的三个模型,不是随意排列,而是代表了三种典型的本地部署范式,每种都对应不同的硬件、延迟、精度需求:

模型典型部署方式显存占用(FP16)推理延迟(A10G)适用场景Trae 适配难点
DeepSeek-Coder-32BvLLM + Tensor Parallel~48GB (2×A10G)800ms/token大型项目重构、复杂算法生成messages格式严格,systemrole 必须为空,max_tokens必须显式指定
GLM-4-9BFastAPI + Transformers~18GB320ms/token日常开发辅助、快速补全、文档生成response字段嵌套深,需自定义 JSONPath;usage字段需手动计算
Qwen2.5-Coder-7Bllama.cpp + Q4_K_M~4.2GB (CPU+GPU混合)120ms/token笔记本轻量开发、离线环境、Jetson Orin Nanostreaming响应无data:前缀,需关闭sse解析;stop_token_ids需匹配 Qwen tokenizer

注意:网上流传的 “qwen 部署bw100”、“jetson orin nano部署qwen” 等热词,指向的就是第三类场景。Trae 对 CPU-only 或混合推理的支持,关键在于llama_cppProvider 的n_gpu_layers参数设置。设为0强制 CPU,设为-1自动分配,设为33(Qwen2.5-7B 的层数)则全 GPU 加载——这个数字必须精确,否则会触发llama.cpp的 fallback 机制,性能暴跌 5 倍。

3. 核心细节解析与实操要点

3.1 Provider 配置:从服务启动到 Trae 识别

第一步永远不是改 Trae 配置,而是确认你的本地模型服务已正确启动并返回预期格式。以 GLM-4-9B 为例,这是最常出问题的环节:

# 错误示范:直接用 transformers.run_server.py 启动(官方脚本) python -m transformers.run_server --model_name_or_path THUDM/glm-4-9b-chat --port 8000 # 问题:返回的是纯文本流,无 JSON,Trae 无法解析
# 正确做法:用 FastAPI 封装,返回标准 JSON # glm4_api.py from fastapi import FastAPI, HTTPException from pydantic import BaseModel from transformers import AutoTokenizer, AutoModelForSeq2SeqLM import torch app = FastAPI() tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4-9b-chat", trust_remote_code=True) model = AutoModelForSeq2SeqLM.from_pretrained("THUDM/glm-4-9b-chat", trust_remote_code=True).cuda() class ChatRequest(BaseModel): messages: list max_tokens: int = 1024 @app.post("/v1/chat/completions") def chat(request: ChatRequest): # GLM 原生格式:messages = [{"role": "user", "content": "xxx"}] # 需转换为 GLM 的 input_ids 格式 inputs = tokenizer.apply_chat_template( request.messages, add_generation_prompt=True, return_tensors="pt" ).to(model.device) outputs = model.generate( inputs, max_new_tokens=request.max_tokens, do_sample=True, temperature=0.8 ) response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True) # 关键:必须返回 OpenAI 兼容的 JSON 结构 return { "choices": [{"message": {"role": "assistant", "content": response}}], "usage": { "prompt_tokens": inputs.shape[1], "completion_tokens": len(tokenizer.encode(response)), "total_tokens": inputs.shape[1] + len(tokenizer.encode(response)) } }

启动命令:

uvicorn glm4_api:app --host 127.0.0.1 --port 8000 --workers 1

验证服务:

curl -X POST "http://127.0.0.1:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "messages": [{"role": "user", "content": "写一个 Python 函数,计算斐波那契数列第 n 项"}], "max_tokens": 256 }'

如果返回类似{"choices": [{"message": {"role": "assistant", "content": "def fib(n):..."}}], "usage": {...}},说明服务就绪。此时,Trae 的ollamaProvider 无法使用(因为不是 Ollama 格式),必须用openaiProvider,并指向这个地址。

实操心得:我见过最多的问题是开发者用curl测试时加了-v参数,看到HTTP/1.1 200 OK就以为成功,但没检查响应体内容。Trae 的日志里只会写HTTP 200 but invalid JSON,非常误导。务必用jq '.'或 Pythonjson.loads()解析响应体,确认结构。

3.2 Adapter 配置:让 Trae 听懂你的模型方言

Adapter 是~/.trae/config.yaml里最易被忽略的部分。以 DeepSeek-Coder-32B 的 vLLM 服务为例,其/v1/chat/completions返回:

{ "id": "cmpl-xxx", "object": "chat.completion", "created": 1715234567, "model": "deepseek-coder-32b-instruct", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "def fib(n):\n ..." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 45, "completion_tokens": 128, "total_tokens": 173 } }

这看起来很像 OpenAI,但问题出在messages的构造上。DeepSeek 要求messages中不能有systemrole,且userassistant必须严格交替。而 Trae 默认会注入system提示词(如 “You are a helpful coding assistant”),这会导致 DeepSeek 直接返回空响应。

解决方案是编写自定义 Adapter:

# ~/.trae/config.yaml models: deepseek-coder-32b: provider: openai endpoint: http://127.0.0.1:8000/v1 api_key: "sk-xxx" # vLLM 不需要 key,但 Trae 强制要求 adapter: # 告诉 Trae:从响应里取 choices[0].message.content content_path: "$.choices[0].message.content" # 告诉 Trae:从响应里取 usage.prompt_tokens prompt_tokens_path: "$.usage.prompt_tokens" # 告诉 Trae:从响应里取 usage.completion_tokens completion_tokens_path: "$.usage.completion_tokens" # 关键:禁用 system prompt 注入 disable_system_prompt: true # 关键:重写 messages,移除所有 system role messages_rewrite: | function rewrite(messages) { return messages.filter(m => m.role !== 'system'); }

messages_rewrite是一个 JavaScript 函数,Trae 在发送请求前会执行它。这里我们过滤掉所有system消息,确保发给 DeepSeek 的messages只有user/assistant交替。

对于 GLM-4,其原生 FastAPI 服务返回的是扁平结构:

{ "response": "def fib(n):...", "history": [...], "usage": {"prompt_tokens": 45, "completion_tokens": 128} }

Adapter 配置需改为:

glm-4-9b: provider: openai endpoint: http://127.0.0.1:8000 adapter: content_path: "$.response" prompt_tokens_path: "$.usage.prompt_tokens" completion_tokens_path: "$.usage.completion_tokens" # GLM 不支持 streaming,强制关闭 streaming: false

注意:streaming: false必须显式声明。Trae 的openaiProvider 默认开启 streaming,如果服务不支持,会卡在等待data:前缀,最终超时。

3.3 Runtime 配置:控制模型如何“思考”

Runtime 层决定了 Trae 如何与模型交互。三个关键配置:

  • context_window: 模型最大上下文长度(单位:token)。DeepSeek-Coder-32B 是 16K,GLM-4 是 32K,Qwen2.5-Coder-7B 是 128K。Trae 会根据此值,结合当前文件 token 数、选中代码 token 数、历史对话 token 数,动态裁剪messages,确保不超限。设小了会丢上下文,设大了会触发模型 OOM。

  • max_completion_tokens: 单次响应最大 token 数。DeepSeek-Coder-32B 在build模式下生成完整函数时,常需 500+ tokens,设为 256 会导致截断。建议设为context_window * 0.3

  • system_prompt_template: 模型系统提示词模板。Qwen2.5-Coder 必须有system提示才能激活代码能力,模板为:

    You are Qwen, a large-scale language model developed by Alibaba Cloud. You are designed to assist with programming tasks. Please generate code that is correct, efficient, and follows best practices.

    而 DeepSeek-Coder 则必须为空字符串""

配置示例(Qwen2.5-Coder-7B):

qwen2.5-coder-7b: provider: llama_cpp model_path: "/path/to/qwen2.5-coder-7b.Q4_K_M.gguf" n_gpu_layers: 33 context_window: 131072 # 128K max_completion_tokens: 32768 system_prompt_template: | You are Qwen, a large-scale language model developed by Alibaba Cloud. You are designed to assist with programming tasks. Please generate code that is correct, efficient, and follows best practices. adapter: content_path: "$.choices[0].message.content" # llama_cpp Provider 默认返回标准 OpenAI 格式,无需额外 path

实操心得:context_window的值不能瞎填。我曾帮一个团队把 Qwen 的context_window设为1000000,结果 Trae 在加载大文件时疯狂申请内存,最后kill -9。正确做法是查模型文档,或用llama.cpp./main -m model.gguf -p "test"命令测出实际支持的最大长度。

4. 实操过程与核心环节实现

4.1 从零开始:DeepSeek-Coder-32B + vLLM + Trae 全流程

Step 1:启动 vLLM 服务

# 确保 CUDA_VISIBLE_DEVICES=0,1(双卡) pip install vllm vllm serve \ --model deepseek-ai/deepseek-coder-32b-instruct \ --tensor-parallel-size 2 \ --dtype half \ --gpu-memory-utilization 0.9 \ --host 127.0.0.1 \ --port 8000 \ --served-model-name deepseek-coder-32b

验证:

curl http://127.0.0.1:8000/v1/models # 应返回 {"object":"list","data":[{"id":"deepseek-coder-32b","object":"model","owned_by":"vllm"}]}

Step 2:配置 Trae

trae config set model deepseek-coder-32b

编辑~/.trae/config.yaml,添加:

models: deepseek-coder-32b: provider: openai endpoint: http://127.0.0.1:8000/v1 api_key: "EMPTY" # vLLM 默认 key 为 EMPTY context_window: 16384 max_completion_tokens: 4096 adapter: content_path: "$.choices[0].message.content" prompt_tokens_path: "$.usage.prompt_tokens" completion_tokens_path: "$.usage.completion_tokens" disable_system_prompt: true messages_rewrite: | function rewrite(messages) { return messages.filter(m => m.role !== 'system'); }

Step 3:VS Code 插件配置

在 VS Code 设置中搜索Trae,找到Trae: Model,选择deepseek-coder-32b。重启插件。

Step 4:测试build模式

打开一个 Python 文件,光标放在函数定义下方,按Ctrl+Shift+PTrae: Build。Trae 会:

  • 分析当前文件 AST,提取类名、函数签名、docstring;
  • 构造messages[{"role":"user","content":"Implement the functiondef calculate_fibonacci(n: int) -> int:..."}]
  • 发送给 vLLM;
  • 接收响应,插入到光标位置。

实测结果:在 A10G ×2 环境下,build模式平均延迟 1.2s,生成质量显著优于 GPT-3.5,尤其在类型注解、异常处理、单元测试生成方面。

4.2 低成本方案:Qwen2.5-Coder-7B + llama.cpp + Trae(Mac M2/M3)

Step 1:下载量化模型

从 HuggingFace 下载Qwen/Qwen2.5-Coder-7B-Instruct,用llama.cpp量化:

# 克隆 llama.cpp git clone https://github.com/ggerganov/llama.cpp cd llama.cpp && make clean && make LLAMA_METAL=1 # 下载模型(需 HF_TOKEN) huggingface-cli download Qwen/Qwen2.5-Coder-7B-Instruct --local-dir qwen2.5-coder-7b # 量化(M2 Max 用 q4_k_m,M1 Air 用 q3_k_m) ./quantize qwen2.5-coder-7b/ggml-model-f16.gguf qwen2.5-coder-7b.Q4_K_M.gguf q4_k_m

Step 2:启动 llama.cpp 服务

# M2/M3 启动(自动启用 Metal) ./server -m qwen2.5-coder-7b.Q4_K_M.gguf \ -c 131072 \ -ngl 33 \ --port 8080 \ --host 127.0.0.1

Step 3:Trae 配置

models: qwen2.5-coder-7b: provider: llama_cpp model_path: "/path/to/qwen2.5-coder-7b.Q4_K_M.gguf" n_gpu_layers: 33 context_window: 131072 max_completion_tokens: 32768 system_prompt_template: | You are Qwen, a large-scale language model developed by Alibaba Cloud. You are designed to assist with programming tasks. Please generate code that is correct, efficient, and follows best practices.

Step 4:关键避坑点

  • n_gpu_layers必须等于模型层数(Qwen2.5-7B 是 33),否则 Metal backend 不启用,退化为 CPU 推理,速度慢 10 倍;
  • llama_cppProvider 默认开启streaming,但llama.cpp/chat/completions接口返回的是普通 JSON,非 SSE。必须在~/.trae/config.yaml中全局关闭:
    providers: llama_cpp: streaming: false
  • Mac 上首次启动server会编译 Metal shader,耗时 2-3 分钟,耐心等待,不要 Ctrl+C。

实测数据:M2 Max(32GB)上,qwen2.5-coder-7b.Q4_K_M.gguf加载时间 8.2s,build模式首 token 延迟 320ms,完整响应 1.8s,内存占用峰值 5.1GB。对比云端 API,延迟低 60%,且完全离线。

4.3 多模型协同:在 VS Code 中同时配置 DeepSeek 和 GLM

网络热词 “claude code vscode插件如何同时配置多个模型deepseek和glm” 指向一个高级用法:根据任务类型自动切换模型。

Trae 支持model routing,即基于当前操作类型(chat/build/test)或文件类型(.py/.js/.rs)路由到不同模型。

配置示例:

# ~/.trae/config.yaml model_routing: # 所有 build 操作走 DeepSeek(强代码生成) build: model: deepseek-coder-32b # 所有 chat 操作走 GLM(强对话理解) chat: model: glm-4-9b # Python 文件优先用 DeepSeek,JS 文件用 GLM file_extensions: .py: deepseek-coder-32b .js: glm-4-9b .rs: qwen2.5-coder-7b

在 VS Code 中,你可以:

  • Ctrl+Shift+PTrae: Chat:调用 GLM-4,适合问“这段 Rust 代码为什么编译不过?”;
  • Ctrl+Shift+PTrae: Build:调用 DeepSeek-Coder,适合“帮我实现这个 Python 类的__eq__方法”;
  • 选中一段 JS 代码,按Ctrl+Shift+PTrae: Explain:自动路由到 GLM-4。

注意:model_routing规则按顺序匹配,file_extensions优先级高于chat/build。这意味着,如果你在.py文件里执行Trae: Chat,依然会路由到deepseek-coder-32b,除非你显式在命令面板里选择Trae: Chat (GLM)

5. 常见问题与排查技巧实录

5.1 典型问题速查表

现象可能原因排查命令解决方案
trae chat报错model not found in registry模型名未注册,或~/.trae/config.yaml格式错误trae config list检查 YAML 缩进,确保models:下一级是模型名,且无中文、空格
VS Code 插件显示“模型加载中...”后无响应Provider 连接超时,或 Adapter 解析失败tail -f ~/.trae/logs/trae.log查看日志末尾,若出现HTTPConnectionPool(host='127.0.0.1', port=8000): Max retries exceeded,检查服务是否启动;若出现JSONDecodeError,检查content_path是否正确
build模式生成代码不完整,被截断max_completion_tokens设太小,或context_window被动态裁剪过度trae debug context运行此命令查看 Trae 实际发送的messages长度,对比context_window
模型响应极慢(>10s),CPU 占用 100%llama.cpp未启用 GPU,或n_gpu_layers设为 0htop+nvidia-smiMac 上检查METAL_DEVICE_ID环境变量;Linux 上检查nvidia-smi是否有进程占用显存
DeepSeek 生成内容全是乱码或空字符串systemrole 未禁用,或messages格式错误curl -v http://127.0.0.1:8000/v1/chat/completions -d '{...}'用 curl 模拟 Trae 请求,确认服务返回正常;检查messages_rewrite函数是否过滤了必要消息

5.2 独家避坑技巧

技巧 1:用trae debug http抓包分析

Trae 内置 HTTP 调试模式,可打印所有请求/响应:

trae debug http --model deepseek-coder-32b --messages '[{"role":"user","content":"hello"}]'

输出:

> POST http://127.0.0.1:8000/v1/chat/completions > Headers: {"Authorization":"Bearer EMPTY","Content-Type":"application/json"} > Body: {"model":"deepseek-coder-32b","messages":[{"role":"user","content":"hello"}],"max_tokens":4096} < HTTP/1.1 200 OK < Content-Type: application/json < Body: {"choices":[{"message":{"content":"Hello! How can I help you?"}}],"usage":{"prompt_tokens":5,"completion_tokens":12}}

这是定位 Adapter 配置错误的终极手段。90% 的content_path错误,都能通过这个命令一眼看出。

技巧 2:为 GLM-4 手动注入usage字段

很多 GLM-4 的 FastAPI 实现不返回usage,导致 Trae 的build模式因无法计算 context 而失败。解决方案是在 Adapter 里用prompt_tokens_pathcompletion_tokens_path的“计算模式”:

glm-4-9b: adapter: content_path: "$.response" # 不从 JSON 取,而是用函数计算 prompt_tokens_path: "function calc(tokens) { return tokens.length; }" completion_tokens_path: "function calc(text) { return text.split(' ').length; }"

Trae 会将messages的 JSON 字符串传给第一个函数,将response字符串传给第二个函数,实现动态 token 计算。

技巧 3:Qwen2.5-Coder 的stop_token_ids陷阱

Qwen tokenizer 的eos_token_id<|endoftext|>,对应 ID 151643。如果llama.cpp服务未正确设置stop_token_ids,模型会在生成完代码后继续胡言乱语。解决方案是在启动server时显式指定:

./server -m model.Q4_K_M.gguf -c 131072 -ngl 33 --port 8080 \ --stop 151643 \ --host 127.0.0.1

Trae 的llama_cppProvider 会自动读取服务返回的stop_token_ids,无需额外配置。

最后分享一个小技巧:Trae 的trae config set model xxx命令只是设置默认模型,不影响model_routing。如果你想临时覆盖路由规则,只需在 VS Code 命令面板里输入Trae: Chat (DeepSeek),括号里的模型名会强制覆盖所有路由逻辑。这是我每天切模型时最常用的快捷方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询