
v0.30.x Non-thinking / instruct model variants starts to think
快速结论:该问题发生在使用 Ollama v0.30.x 版本调用 /api/chat 端点,且模型使用 Instruct 变体(如 frob/qwen3.5-instruct)时,引擎错误地使用了内置 Jinja 模板而非 Modelfile 中的自定义模板,导致本应禁用思考能力的模型意外启用思考。优先排查环境变量 OLLAMA_GO_TEMPLATE=1 是否生效。
问题场景
用户长期使用 frob/qwen3.5-instruct 模型(该模型通过 Modelfile 明确禁用了思考能力),但在将 Ollama 升级到 v0.30.x 后,模型开始输出思考过程。问题在 macOS 和 Linux 系统上均被报告,且仅影响 /api/chat 端点,/api/generate 端点行为正常。
报错原文
# 未输出具体错误文本,但观察到的行为为:模型本应不思考,但开始输出思考链路
# 核心现象:/api/chat endpoint ignoring the template in the Modelfile
# Fallback to using the embedded jinja template, enabling thinking
原因分析
根据 Issue 讨论,最可能的原因是 Ollama v0.30.x 在 /api/chat 端点中模板选择机制存在缺陷:
/api/chat端点使用了一种启发式方法在当前 Go 模板和内置 Jinja 模板之间做选择,倾向于选择“能力更丰富”的模板。- 对于
frob/qwen3.5-instruct这类模型,Modelfile 中定义了禁用思考的 Go 模板,但 Jinja 模板(因支持工具等更多功能)被错误选中,导致引擎回退到包含思考逻辑的 Jinja 模板。 /api/generate端点则遵循了正确的模板选择逻辑,因此表现正常。- 可能原因:v0.30.x 的模板选择启发式算法未考虑“禁用思考”这类特殊需求,而是优先选择功能更全的模板。
环境排查
- 确认 Ollama 版本是否为 v0.30.x(特别是 v0.30.10 获报告)
- 确认使用的是 Instruct 变体模型(如
frob/qwen3.5-instruct),且其 Modelfile 中确实有禁用了思考的模板 - 检查调用的是
/api/chat还是/api/generate端点(后者可能正常) - 检查服务器环境变量中是否已设置
OLLAMA_GO_TEMPLATE=1
解决步骤
- 可优先尝试:设置环境变量强制使用 Go 模板
在启动 Ollama 服务器的环境中设置:OLLAMA_GO_TEMPLATE=1
注意:这是一个全局开关,可能会影响其他依赖于 Jinja 模板功能的模型(如支持工具的模型)。 - 替代方案:临时改用
/api/generate端点
如果不需要 Chat 端点的特定功能,可以暂时切换至/api/generate以避免该问题。 - 等待上游修复(Issue 已标记为 bug)
Ollama 维护者正在尝试修复 /api/chat 和 /api/generate 使用一致的选择算法,同时认为该模型的问题根源在于:与 Qwen3-VL 不同,Qwen3.5 模型的模板解析器中没有针对 Instruct 变体的专门处理分支。
验证方法
设置 OLLAMA_GO_TEMPLATE=1 后重启 Ollama 服务,再次调用 /api/chat 端点测试模型输出。如果模型恢复不输出思考过程,则问题解决。也可以同时用 /api/generate 端点做对比测试确认基线行为。


![[问与答] ChatGPT Plus 和 ChatGPT Pro 实际应用差别明显哇?](https://www.chat-gpts.plus/wp-content/uploads/2026/06/ai_cover_4-921-768x403.jpg)
