什么是 CoT 思维链?如何实现 CoT 思维链?
- 标签:后端、编程导航
🏛 业务架构师
CoT(Chain of Thought,思维链):让模型在给出答案前先展示逐步推理过程——"第一步分析 X,第二步推理 Y,所以结论是 Z"。触发方式:prompt 里加"让我们一步步思考"(Zero-shot CoT)或给带推理过程的示例(Few-shot CoT)。
为什么有效:模型生成答案的每个 token 都会成为后续生成的上下文——推理过程写出来,等于把"一次性心算"变成"打草稿分步算",复杂逻辑任务的准确率显著提升(数学、多约束决策、因果分析)。
如何实现(工程三件套):
- Prompt 层:系统提示中要求"先分析再结论",并规定输出结构(分析段+结论段)——业务系统只消费结论段(结构化输出分离),草稿给人看思路、结论给程序用;
- 场景化启用:CoT 增加 token 消耗与延迟——简单分类任务禁用(浪费钱)、复杂推理任务启用(准确率优先)。我按任务类型配置开关:数学/规划/多条件判断开,闲聊/格式转换关;
- 与结构化输出结合:
{ reasoning: "...", answer: {...} }——推理过程可追溯(答案错了能审计"它怎么想的"),answer 部分走业务校验。
业务视角的成本核算:CoT 的 token 开销常是直接回答的 2~5 倍——只在"错误的业务代价 > token 成本"的场景启用(风控判断、财务计算值得;文案润色不值得)。
一句话:CoT 是用 token 换准确率的杠杆——会算这笔账,才算会用思维链。
🏗 系统架构师
CoT(Chain-of-Thought,思维链)= 让模型在给出答案前先展开中间推理步骤。原理:LLM 自回归生成,中间 token 充当"工作记忆"——复杂问题直接跳答案没有推理空间,分步生成让每步都能以前文为条件,显著提升数学、逻辑、多步规划类任务准确率。
实现方式(由浅入深):
- Zero-shot CoT:提示词加一句"请一步一步思考"(Let's think step by step)——零成本提升;
- Few-shot CoT:示例中展示推理过程(问题 → 推理步骤 → 答案),模型模仿推理范式;
- 结构化 CoT:规定推理模板(已知条件 → 分析 → 步骤 → 结论),输出可校验;
- 程序化组合:Spring AI 里把 CoT 固化进 Advisor/系统提示词(ReReading + CoT 组合),配合结构化输出拿最终字段;
- 进阶变体:Self-Consistency(多次采样推理路径投票)、Tree-of-Thought(分支探索回溯)、ReAct(推理+行动交错)。
Spring AI 场景示例:
java
ChatClient.prompt()
.system("你是严谨的分析助手,先列出推理步骤,最后以 JSON 输出结论")
.user(question)
.call().entity(Conclusion.class); // 解析最终结构化结论工程权衡:CoT 增加 token 消耗与延迟(推理链越长越准也越贵)——简单任务不需要,复杂任务必开;推理过程暴露给用户可提升信任(展示思考过程),也需防推理中的敏感信息。我的分级策略:路由判断任务复杂度,复杂任务才启用完整 CoT/ReAct。
💻 全栈开发专家
CoT(Chain of Thought,思维链)= 让模型在给出答案前先输出中间推理步骤,模拟人的"打草稿"过程。对数学、逻辑、多约束问题提升显著——因为 Transformer 逐 token 生成,推理步骤本身就是"额外的前向计算",把一步到位的难题拆成链式的简单步。
实现方式(按工程成本排序):
1. Zero-shot 指令(最简单):
java
String prompt = """
问题:%s
请一步步思考(think step by step),先分析已知条件和约束,
再逐步推理,最后给出结论。
""".formatted(question);2. Few-shot 示例:prompt 里给 1~2 个"问题→推理过程→答案"的完整示例,模型模仿格式,输出更稳定。
3. 结构化思维(配合 Spring AI):
java
public record Reasoning(String steps, String conclusion, double confidence) {}
Reasoning r = chatClient.prompt().user(prompt).call().entity(Reasoning.class);
// 强制模型把推理过程和结论分开,结论可被程序消费4. Self-Consistency(自洽性):同一问题采样 3 次推理,多数投票选答案——准确率再提一档,成本 ×3(只对高价值问题开)。
工程实践要点:
- CoT 让输出变长,延迟和 token 成本上升,简单问题(分类、闲聊)别开;
- 生产上把推理步骤放折叠区展示,用户可展开看"它是怎么想的",可信度加分;
- 与 ReAct 的关系:CoT 是"纯脑内推理",ReAct 在推理间插入真实工具调用——外挂知识的场景 ReAct 更强。