免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

ollama v0.17.6 发布:重大解析修复与 Qwen3.5 完整支持,全链路优化模型渲染与工具调用

发布日期:2026-03-06 07:12:02 浏览次数: 1521
作者:福大大架构师每日一题

微信搜一搜,关注“福大大架构师每日一题”

推荐语

Ollama v0.17.6带来关键修复与Qwen3.5全面支持,大幅优化模型渲染与工具调用体验。

核心内容:
1. 重点修复GLM-OCR和Qwen3.5模型的关键问题
2. 移除过时功能并优化配置兼容性
3. 引入全新Qwen3.5渲染模块支持thinking模式

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2026 年 3 月 5 日,Ollama 正式发布了 v0.17.6 版本。这是一次极具实用价值的改进版本,在保持系统稳定的基础上,重点修复了多个长期存在的细节性问题,包括 GLM-OCR 的 Prompt 渲染错误Qwen 3.5 工具调用与解析逻辑, 并带来了对模型渲染、工具链、配置兼容性等方面的进一步完善。

本篇文章将全面解析 v0.17.6 的变更列表、核心代码结构调整、测试覆盖改进及潜在影响,帮助开发者清晰理解此次升级的深度与意义。


一、版本概览

发布日期: 2026 年 3 月 5 日
版本号: v0.17.6
更新重点:

  1. 1. 修复 GLM-OCR 模型因 prompt 渲染错误导致无法工作的问题
  2. 2. 修复 Qwen 3.5 模型工具调用的解析与渲染问题
  3. 3. 优化模型配置文件命名兼容,例如 Ollama (local) 自动迁移为 Ollama
  4. 4. 移除旧版本 imagegen LLM 模型与 peak memory API 字段
  5. 5. 引入全新的 Qwen3.5 渲染及解析模块,全面支持 thinking 模式

此次更新共包含 12 次提交、修改 51 个文件,由 7 名开发人员完成。从 diff 记录看,涉及到新增代码超过 3900 行,同时删除旧逻辑 4010 行,可见是一次覆盖范围较大的“重构 + 修复”整合版本。


二、总体改动组成

1. API 层变化:移除 PeakMemory 字段

api/types.go 文件中删除了 Metrics 结构体中的 PeakMemory 相关字段与输出逻辑。
其原始功能用于在模型推理时统计峰值内存占用,但由于 mlx(Memory Layout Executor)层的 API 已移除此项指标,因此不再返回该值。

旧结构:

type Metrics struct {
    TotalDuration time.Duration `json:"total_duration,omitempty"`
    PeakMemory    uint64        `json:"peak_memory,omitempty"`
}

删除后:

type Metrics struct {
    TotalDuration time.Duration `json:"total_duration,omitempty"`
}

同时删除了相关的格式化函数 formatPeakMemory、控制台输出内容,更新后的日志输出更加简洁,避免“空指标”误导用户。

这也意味着未来 Ollama 将更聚焦 性能时间维度指标,而非硬件状态统计。


2. 命令行层更新:移除 imagegen 运行参数

cmd/cmd.go 文件中删除了 --imagegen 标志相关逻辑,不再通过 CLI 参数控制图像生成模型使用内部 Runner。

这体现了 v0.17.6 开始逐步统一模型调用接口,将生成型与多模态模型整合至统一 runner 体系中,从设计上简化用户调用路径。


3. 配置迁移优化:Ollama (local) → Ollama

在配置管理模块 cmd/config/opencode.go 中新增了名称迁移逻辑,解决了配置兼容问题。
许多开发者此前使用本地 provider 时,其配置如下:

{
  "provider":{
    "ollama":{
      "name":"Ollama (local)",
      "npm":"@ai-sdk/openai-compatible",
      "options":{"baseURL":"http://localhost:11434/v1"}
    }
}
}

新版本中,当检测到 Ollama (local) 名称时会自动迁移为 Ollama,保证现有配置无需手动修改即可被识别。

同时,新单元测试验证逻辑如下:

  • • 自动迁移本地 provider 名称。
  • • 保留自定义 provider 名称(即不会覆盖非默认配置)。
  • • 删除模型时保留非 Ollama 模型的子项。

这确保了升级后配置文件兼容性 100%,不会破坏旧有项目结构。


三、模型解析层全面升级:Qwen 3.5 Parser

v0.17.6 最为关键的更新在于模型解析器部分。
新增文件 model/parsers/qwen35.go(238 行新增)正式引入了 Qwen3.5 专属解析器 Qwen35Parser,取代原有的通用 Qwen3Parser

(1) 核心特性

  • • 完整支持 thinking 推理标签 <think> ... </think>
  • • 增强对分块流式输出的识别能力(跨 token stream 渐进渲染)
  • • 可区分思考内容(thinking content)与输出内容(response content)
  • • 在思考区间不解析 <tool_call>,避免错把 reasoning 内部结构误识别为工具调用

(2) 状态机设计

新增状态:

const (
    qwen35ParserStateCollectingThinking
    qwen35ParserStateThinkingDoneEatingWhitespace
    qwen35ParserStateCollectingContent
)

解析逻辑以有限状态机(FSM)形式实现。当遇到 <think> 起始标签进入思考模式,遇到 </think> 切换到内容模式。
与此同时,对流式数据的分段处理更加精准,支持不完整的关闭标签(如 </thi + nk> 分两次到达),确保输出不会断裂。

(3) 异常情况处理

  • • 若 <think> 未关闭,自动将后续内容视为思考过程输出;
  • • 若 Assistant 消息为续写(带 prefill),默认跳过起始思考阶段;
  • • 处理 <think> 嵌套、空格、换行符自动剔除,输出纯净的 reasoning 文本。

(4) 测试覆盖 (model/parsers/qwen35_test.go)

测试文件新增 382 行,覆盖以下场景:

  • • 工具调用 XML 格式识别;
  • • 含显式 <think> 标签的 reasoning 内容提取;
  • • Assistant 预填充(prefill)场景;
  • • 思考阶段中误判工具调用;
  • • <think> 标签被分片情况;
  • • 未闭合标签情况下的安全输出。

这些测试使 Qwen 3.5 解析流程从多线程推理到断流恢复都具备强鲁棒性。


四、模型渲染层优化:全面更新 Qwen3.5 与 GLM-OCR Renderer

渲染器层:model/renderers/ 目录新增了两大核心组件:

1. Qwen35Renderer

文件 model/renderers/qwen35.go,新增 389 行。
该渲染器对应 Qwen3.5 模型 prompt 生成逻辑,旨在让模型完全遵循 XML 函数调用格式与 <think> 思考框架。

功能亮点:
  • • 支持 <tools> 指令区块嵌入,格式严格遵循模型需求;
  • • 自动拼接系统提示与函数声明;
  • • 支持生成 <tool_call> 块,带 <function=...> 与 <parameter=...>
  • • 逻辑层支持多工具顺序调用,多次 <tool_response> 块组装;
  • • 思考与输出完美分离,紧密衔接模型训练格式。
渲染示例结构:
<|im_start|>assistant
<think>
I need to fetch the data first.
</think>
Here is my analysis.
<tool_call>
<function=get_data>
<parameter=id>
42
</parameter>
</function>
</tool_call>
<|im_end|>
其他改进:
  • • 支持 useImgTags 图片标记嵌入([img-0], [img-1]),兼容多模态;
  • • 提供 emitEmptyThinkOnNoThink 参数,用于未启用思考模式时补充空 <think> 模块;
  • • 对工具多次调用场景支持批量写入;
  • • 对 assistant prefill 保留最后阶段输出,不关闭 <|im_start|> 块。

测试文件 model/renderers/qwen35_test.go 共新增 389 行,涵盖:

  • • 多轮对话、函数调用递归;
  • • Back-to-back 工具响应;
  • • 思考与工具交错场景;
  • • Assistant 预填充完整性校验。

该模块的引入使得 Ollama 在多模型推理框架下更贴合阿里 Qwen3.5 推理接口的真实结构。


2. GLM-OCR Renderer 大幅修复

文件 model/renderers/glmocr.go 修改 99 行。
这次修复针对核心问题:GLM-OCR 模型无法正确渲染带图像的 prompt

更新要点:
  • • 新增 GlmOcrRenderer 结构体属性 useImgTags
  • • 引入内部函数 renderContent(),根据配置动态选择是否添加 [img-x] 标记;
  • • 改善 ImageOffset(图片计数偏移)管理;
  • • 用户消息按 [img-0][img-1] 顺序标识多图输入;
  • • 流程中修正原先 message.Content 与图片块拼接顺序。
渲染前后差异:

旧版输出(无法识别图片位):

<|user|>请识别图片内容。

新版输出(带多图标记):

<|user|>
[img-0][img-1]请识别图片内容。

同时新增 glmocr_test.go 文件(99 行),验证包括以下 5 种情况:

  1. 1. 单张图片;
  2. 2. 多张图片;
  3. 3. 多轮对话图像偏移;
  4. 4. 默认模式不添加图像标签;
  5. 5. 无图像场景内容保持一致。

这意味着以后 GLM-OCR 模型将可以在多图输入下稳定进行 OCR 推理,输出定位将完整无误。


3. 渲染器选择逻辑更新

在 model/renderers/renderer.go 中更新了模型映射:

case "qwen3.5":
    renderer := &Qwen35Renderer{isThinking: true, emitEmptyThinkOnNoThink: true, useImgTags: RenderImgTags}
case "glm-ocr":
    return &GlmOcrRenderer{useImgTags: RenderImgTags}

即:

  • • 将原来的 Qwen3VLRenderer 替换为新的 Qwen35Renderer
  • • 为 GLM-OCR 渲染器开启全局图片标签选项。

这使两个模型在渲染阶段均获得一致的上下文构造与多模态支持。


五、服务器逻辑补充更新

在 server.go 中,删除了 CompletionResponse 返回体的 PeakMemory 字段,使 API 输出与 Metrics 同步调整。
这确保了传输数据更轻量化、字段结构一致。


六、测试体系增强

此次更新新增测试覆盖超过 1000 行,主要针对以下方向:

  • • 配置迁移测试
    确保旧配置自动升级为标准名称;
  • • GLM-OCR 多图输入测试
    确认每张图片得到正确索引;
  • • Qwen3.5 渲染与解析系统测试
    模拟思考场景、函数嵌套、流式数据拼接;
  • • 工具调用与 reasoning 多阶段测试
    验证多工具连续调用的 XML 结构合法性;
  • • Streaming 行为测试
    分块输入下保持状态一致性。

针对复杂推理模型,如 Qwen3.5 这种包含 <think> 和 <tool_call> 的混合流式结构,此轮测试确保无论在并发推理还是断流恢复场景下都不丢失内容。


七、移除旧模型与无效依赖

本次更新清理了历史遗留的 imagegen LLM 模型,以及云模型拉取过程中的存根要求,进一步简化了部署过程。
Revert 提交中体现了多次回滚与重放操作,表明研发团队对云端模型加载机制进行深度优化与验证。


八、总结与展望

Ollama v0.17.6 是一次结构性的重要版本更新。它没有去追求新增功能,而是聚焦于 底层稳定性、模型兼容与推理一致性 的打磨,体现出平台从实验型向工业化过渡的信号。

核心收益总结:

  1. 1. GLM-OCR 修复后,OCR 模型可稳定处理多图输入。
  2. 2. Qwen3.5 渲染与解析系统配套上线,支持完整 <think> 思考标签链路。
  3. 3. 配置文件自动迁移,升级成本为零。
  4. 4. API 数据结构简化,输出更清晰、兼容性更高。
  5. 5. 测试覆盖度大幅提升,确保行为稳定与准确。

通过对 v0.17.6 的更新,可以预见 Ollama 在未来版本中将继续强化多模态与 reasoning 模式集成,为 LLM 本地部署与企业多模型协作提供更坚实的基础。


结语

代码地址:github.com/ollama/ollama

Ollama v0.17.6 虽非大版本跳跃,但却在细节上体现了极高的工程重视度。
从配置迁移到渲染逻辑,再到工具调用与流式解析,几乎每个子模块都在朝着更统一、更可靠、更智能的方向演进。

 

·

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。


欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

·

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询