随着本地大语言模型(LLM)的日益普及,开发者越来越多地使用Ollama结合VS Code进行AI辅助编程。然而许多用户发现,模型在给出答案时往往直接输出结果,却不展示中间的推理步骤——而“思维链”(Chain of Thought)恰恰是评估模型质量、调试提示词的关键。本文将介绍几种实用方法,让你在使用VS Code+Ollama时,让LLM将“内心思考”清晰呈现在眼前。

背景:为什么需要展示“思考过程”?

Ollama支持在本地运行Llama、Mistral、Qwen、DeepSeek等开源模型,而VS Code的Continue、CodeGPT等插件则提供了内嵌的AI交互界面。默认情况下,模型仅输出最终回答,这导致开发者难以判断答案是否经过严谨推理,尤其在代码生成、逻辑分析等场景中,缺失的思维链可能掩盖错误或偏见。

例如,当模型给出一个复杂的算法实现时,如果它能展示“先理解问题→列举边界条件→选择数据结构→逐步实现”的过程,开发者就能快速验证其正确性,甚至从中获得编程灵感。

方法一:利用Continue插件的“思维链”模式

Continue是VS Code中最流行的Ollama集成插件。最新版本支持通过配置开启模型的思考展示:

  1. 安装Continue:在VS Code扩展商店搜索并安装“Continue”。
  2. 配置Ollama模型:打开命令面板(Ctrl+Shift+P),选择“Continue: Open Config”,在config.json中添加Ollama模型路径。
  3. 启用思维链输出:在模型配置的promptOverride字段中,添加系统提示词,例如:“你是一个擅长逐步推理的助手。对于每个问题,请先详细陈述你的思考步骤,包括分析、假设和验证过程,然后再给出最终答案。用‘思考:’和‘回答:’标记两个部分。”
  4. 效果实测:输入一个编程问题(如“用Python实现快速排序并分析复杂度”),模型将先输出“思考:”段落的推理过程,再输出“回答:”段落的代码和结论。

方法二:使用Ollama的模板功能强制思考链路

Ollama本身支持通过自定义模板来调整模型行为。创建或修改Modelfile,插入思维链指令:

FROM qwen2.5:7b
SYSTEM "请逐步思考,并在输出中使用<think>...</think>标签包裹中间推理过程,然后给出最终答案。"

然后运行:

ollama create mymodel -f Modelfile
ollama run mymodel

在VS Code中,将Continue或CodeGPT的模型切换为mymodel,即可获得带标签的思考内容。这种方式不依赖插件特性,通用性更强。

方法三:利用CodeGPT的“可演化提示词”

CodeGPT插件支持动态提示词模板,允许用户通过变量控制输出格式。在插件设置的“Prompt Template”中,添加一个变量{show_thinking},并在实际对话时设置为true。插件会注入一段系统指令:“当show_thinking为true时,请将思考过程以Markdown引用块形式展示在答案之前。”

该方法适合需要在普通输出与思维链模式间快速切换的开发者。

实际效果对比

以“解释async/await在JavaScript中的工作原理”为例,无思维链时模型直接输出:“async/await是基于Promise的语法糖……”;而开启思维链后,模型会先展示:“思考:首先需要理解Promise的异步流程控制……然后分析async函数如何自动返回Promise……最后考虑await如何暂停执行上下文……”最终答案仍完整,但开发者能明确了解模型的推导逻辑,便于发现是否遗漏了事件循环等关键点。

注意事项与优化建议

  • 模型选择:部分模型(如DeepSeek-R1、Qwen2.5-72B)原生支持思维链,效果更好;小参数模型(如Llama 3.2 3B)可能生成较短的思考,需调整提示词。
  • 性能影响:强制输出思考过程会增加Token消耗,建议在复杂任务时启用,简单问答可关闭。
  • 隐私考量:本地运行Ollama确保数据不离开设备,但即使开启思维链,代码和提示词也不会被上传。

结语

让LLM展示思考过程,本质上是将黑盒推理透明化,这不仅能帮助开发者验证模型能力,更是学习AI编程逻辑的绝佳途径。随着本地模型和IDE集成的持续进化,这种“可信AI”体验将成为开发者工具的标配。现在,就打开你的VS Code和Ollama,尝试让模型一步步“说出”它的思路吧。

(全文约950字)