版本信息
ollama v0.40.6 是 Latest 版本,发布于 2026 年 10 月 20 日。
本次版本共包含 9 次提交,涉及 13 个文件变更,共计新增 277 行、删除 42 行,参与贡献者共 3 位。版本更新内容聚焦于 Windows 平台运行器管理、GGUF 文件与张量类型扩展、Clef 云端启动,以及命令行问答模式的键标识优化。
从变更记录来看,v0.40.6 虽然提交数量不多,但覆盖了运行稳定性、模型文件兼容性、云端能力与命令行交互体验等多个方向。其中,cmd/decide.go的问答键调整尤其值得关注:原本直接以问题文本作为键的方式,改为使用稳定的标识符键,同时在最终输出时仍然展示问题文本。
本次更新内容总览
v0.40.6 的主要变更包括以下四项:
- Windows:防止出现孤立的 Runner 进程。
- GGUF:新增
q2_0张量类型和文件类型。 - Clef:在 Ollama 云端启动。
--ask模式:使用标识符作为问题键。
从提交记录的时间来看,相关改动集中在 2026 年 10 月 16 日完成,之后汇总进入 2026 年 10 月 20 日发布的 v0.40.6 版本。
Windows 平台:防止孤立 Runner
本次更新包含一项 Windows 平台相关修复,目标是防止 Runner 变成孤立进程。
变更说明明确指出:Windows 平台将避免出现 orphaned runners,也就是没有正常关联或没有被正常管理的 Runner。
这一项更新属于运行管理方向的调整。v0.40.6 将该修复纳入正式版本,意味着 Windows 环境下的 Runner 生命周期管理获得了针对性处理。
在本次版本的提交记录中,这项内容位于 2026 年 10 月 16 日的提交列表中,是 v0.40.6 的核心更新之一。
GGUF 扩展:新增 q2_0 张量与文件类型
v0.40.6 为 GGUF 增加了q2_0张量类型和文件类型支持。
更新说明中直接写明:GGUF 新增q2_0tensor 和 file types。
其中涉及两个层面:
- 新增
q2_0张量类型。 - 新增
q2_0文件类型。
这一改动意味着,在 GGUF 相关的处理范围中,q2_0被纳入了本次版本的支持内容。
从提交顺序看,GGUF 的q2_0支持在同一批更新中完成,并且随后还伴随一次清理性质的提交。最终,这部分内容被合并进入 v0.40.6。
对于关注 GGUF 文件格式与张量类型变化的用户来说,v0.40.6 的这一更新是版本中的重要兼容性调整。
Clef 云端启动
本次版本还包括 Clef 在 Ollama 云端的启动。
更新记录中给出的内容是:Launch clef in Ollama’s cloud。
在提交记录中,Clef 云端启动相关内容先完成提交,之后又进行了措辞精确化调整,最终完成合并。
这部分更新表明,v0.40.6 的变化不仅覆盖本地运行和文件格式,也涉及 Ollama 云端中的 Clef 启动内容。
从本次公开的变更信息来看,Clef 云端启动是独立列出的重要更新项,与 Windows Runner 修复、GGUF 类型扩展、问答键标识优化共同构成了 v0.40.6 的主要变化。
重点解析:--ask模式改用问题标识符键
v0.40.6 中最明确、最详细的代码变化出现在cmd/decide.go。
这一文件显示 24 处变更,其中新增 13 行、删除 11 行。修改的核心方向是:
原先使用“问题文本本身”作为问答结果的键,调整为使用类似q1、q2这样的标识符作为问题键。
同时,命令行最终输出、错误提示等面向用户的信息,仍然会显示原始问题文本,而不是显示内部标识符。
这一设计将“内部问题键”和“用户可读问题文本”进行了分离。
原有方式:直接用问题文本作为键
在原有逻辑中,yesNoQuestions的注释表达的是:
yesNoQuestions 会将每段文本作为一个是或否问题,并且以文本本身作为键。
也就是说,传入的问题文本不仅是指令内容,同时还承担了问题键的角色。
原先的逻辑在遍历问题文本时,会直接将文本设置为问题集合中的键。换句话说,问题内容是什么,内部键就是什么。
在askedQuestions中也使用了相同方式。
原有注释说明,askedQuestions返回的是以问题文本作为键的--ask问题。问题可以是:
- 是或否问题。
- 使用
--choice标签回答的问题。 - 使用
--level等级刻度回答的问题。
原逻辑会将每一个问题的文本作为键写入问题集合。
新方式:使用 q1、q2 作为内部问题键
v0.40.6 对上述逻辑进行了调整。
在yesNoQuestions中,遍历文本时不再只获取文本内容,还会同时获取遍历索引。也就是说,处理过程从“逐个文本处理”变为“根据序号和文本共同处理”。
原先直接以文本作为键的方式,被替换成通过格式化生成标识符键的方式。
新的问题键形式为:
- 第一题使用
q1 - 第二题使用
q2 - 第三题使用
q3 - 后续问题依此类推
具体来说,标识符由字母q加上从 1 开始的序号组成。
因此,在是或否问题构建过程中,问题文本仍然会被序列化为指令内容,但问题集合的键不再是文本本身,而是对应的q1、q2等标识符。
这意味着,问题文本与问题键的职责被明确区分:
- 问题文本用于保存问题指令。
- 问题键用于作为内部检索与答案关联的标识。
askedQuestions同步改造
同样的变化也应用到了askedQuestions。
askedQuestions负责处理--ask参数中的问题。代码先获取名为ask的标志;如果该标志不存在,则直接返回空的问题集合。
当--ask存在时,代码会遍历已经记录的问题列表。
每一道问题仍会构造一个SystemOneQuestion,并将类型默认设为noul。问题文本仍会被序列化后写入Instructions字段。
随后,代码根据不同条件为问题设置不同类型:
- 如果问题属于是或否形式,则保持对应的处理方式。
- 如果问题带有
--choice标签,则会设置为选择类问题。 - 如果问题带有
--level等级刻度,则会设置为score类型。 - 对于等级刻度问题,等级内容会被序列化后写入
Criteria字段。
在 v0.40.6 之前,最终会使用问题文本作为集合键。
而在 v0.40.6 中,最终写入集合时改为使用基于序号生成的键,也就是q1、q2、q3等形式。
因此,无论是yesNoQuestions,还是--ask模式下的askedQuestions,都统一改为使用标识符键。
注释同步更新:不再强调“以文本作为键”
代码注释也随着逻辑同步更新。
yesNoQuestions原先强调的是:每段文本会被作为是或否问题,并且以文本自身作为键。
更新后的注释删除了“以文本自身作为键”这一描述,只保留“将每段文本作为是或否问题”的说明。
同样,askedQuestions原先强调返回的是“以问题文本作为键”的--ask问题。
更新后,这一描述也被调整为仅说明返回的是--ask问题,问题可以是是或否、通过--choice标签回答,或者通过--level等级刻度回答。
注释变化与代码变化保持一致:问题文本不再是内部键,因此注释不再将“文本作为键”描述为该函数的行为。
回答读取逻辑:按标识符取答案
除了问题创建逻辑之外,v0.40.6 还修改了答案读取逻辑。
在decide函数中,原先遍历问题集合时,只获取问题名称,也就是键名。
更新后,遍历过程中同时获取:
- 问题键,也就是内部标识符。
- 问题对象,也就是包含问题指令、类型等信息的内容。
代码会先从问题对象的Instructions字段中解析出原始问题文本。
随后,依然使用内部问题键去答案集合中查找回答。
也就是说,答案查找仍然依据q1、q2这样的键完成。
这一点非常重要:v0.40.6 并不是取消问题键,而是将原先直接使用问题文本的键替换成了稳定的标识符键。
处理流程可以概括为:
- 根据
q1、q2等内部键定位答案。 - 从问题指令中解析原始问题文本。
- 在错误提示和最终展示中使用问题文本。
错误信息更贴近用户问题内容
v0.40.6 对错误提示进行了同步调整。
在旧逻辑中,如果没有找到答案,错误信息会提示没有找到某个键对应的答案。由于旧键就是问题文本,因此显示出来的是文本。
在新逻辑中,内部键已经变为q1、q2等标识符。如果仍然直接将内部键展示给用户,错误信息可能只会显示类似“没有答案 q1”的内容。
因此,更新后的代码会先解析出问题文本,再在错误信息中显示该问题文本。
没有答案时,错误信息会针对具体问题文本进行提示,而不是针对内部标识符进行提示。
答案 JSON 解析失败时,错误信息同样从使用内部键调整为使用问题文本。
未知答案类型时,错误信息也从显示内部键改为显示问题文本。
这一系列调整覆盖了多个错误场景:
- 没有找到对应答案。
- 回答内容无法完成 JSON 解析。
- 回答包含未知类型。
虽然内部查询已经依赖q1、q2等键,但面向用户的错误提示仍保留原问题文本,从而让提示内容与实际提出的问题保持一致。
最终输出:多题场景显示问题文本而非 q1、q2
v0.40.6 还调整了多问题场景下的输出内容。
原有逻辑中,如果问题数量大于 1,表格输出会先打印问题键。
由于过去问题键就是问题文本,因此用户看到的内容仍然是问题本身。
但更新后,问题键变成了q1、q2等标识符。如果保持旧输出方式,那么多问题场景下将展示q1、q2等内部标识。
因此,新逻辑将输出字段从问题键改成了已解析出的原始问题文本。
也就是说,在问题数量大于 1 时,表格的第一列不再显示内部键,而是显示用户实际提出的问题内容。
这项变化使内部实现与外部展示形成了清晰分工:
| 场景 | v0.40.6 使用的内容 |
|---|---|
| 问题集合内部键 | q1、q2、q3等标识符 |
| 答案集合查询 | q1、q2、q3等标识符 |
| 问题指令内容 | 原始问题文本 |
| 缺少答案时的提示 | 原始问题文本 |
| 答案解析失败时的提示 | 原始问题文本 |
| 未知答案类型时的提示 | 原始问题文本 |
| 多问题表格输出 | 原始问题文本 |
答案类型处理逻辑保持不变
虽然问题键发生变化,但decide函数中对答案内容的处理结构仍然保留。
答案会被解析为包含以下信息的结构:
TypeAnswerScoreLegendProbabilities
之后,代码根据答案类型决定输出内容。
对于不同类型的答案,仍会生成对应的回答与度量信息。
其中,分数类回答会根据概率、得分和等级数量形成度量结果。输出格式包含百分比、分数以及等级数量相关信息。
本次更新的重点不在于改变答案类型处理,而在于改变问题键的生成、答案查找时的键使用,以及面向用户输出时的问题文本展示方式。
提交记录中的相关变化
根据本次版本提供的提交列表,2026 年 10 月 16 日出现了以下相关内容:
- Windows 平台防止孤立 Runner。
- Clef 云端启动。
- 对措辞进行更精确的调整。
- GGUF 新增
q2_0张量与文件类型。 - 清理相关内容。
- Clef 云端启动相关合并。
--ask模式使用标识符作为问题键。- 测试。
--ask问题键改动相关合并。
这些提交最终共同构成 v0.40.6 的发布内容。
其中,Clef 云端启动在提交过程中包含了启动内容、措辞精确化与后续合并;--ask问题键调整则包含功能实现、测试与后续合并。
v0.40.6 更新总结
代码地址:github.com/ollama/ollama
ollama v0.40.6 发布于 2026 年 10 月 20 日,是一个包含 9 次提交、涉及 13 个文件的版本。
本次更新覆盖四个明确方向:
- Windows 平台防止孤立 Runner。
- GGUF 支持新增
q2_0张量类型和文件类型。 - Clef 在 Ollama 云端启动。
--ask模式的问题键从问题文本改为q1、q2等标识符。
其中,cmd/decide.go的调整体现出一个清晰变化:内部系统不再直接依赖问题文本作为键,而改用稳定的序号标识符;但在最终输出和错误提示中,仍然展示原始问题文本。
因此,v0.40.6 中的问答模式可以概括为:
内部使用标识符完成问题与答案关联,外部继续使用问题文本保证输出可读性。
结合 Windows Runner 管理修复、GGUFq2_0类型扩展与 Clef 云端启动,ollama v0.40.6 的更新内容已经完整覆盖运行、格式、云端与命令行问答四个部分。