Thinking模式 = 让模型先写一段「给自己看的草稿」,再出最终答案
普通模式 · 直接预测下一步
Context(上下文)
  • system prompt
  • CLAUDE.md
  • 工具说明
  • 你的问题
  • 项目文件片段
  • 历史消息
  • 上次工具返回
Transformer
模型计算
Action
text tool_use
回话 调工具 改文件 跑命令
输入到行动,中间没东西
Thinking 模式 · 先写中间推理,再出动作
Context(上下文)
  • system prompt
  • CLAUDE.md
  • 工具说明
  • 你的问题
  • 项目文件片段
  • 历史消息
  • 上次工具返回
Transformer
模型计算
Thinking Tokens
先写一段中间推理
假设 排除 定位
Action
text tool_use
回话 调工具 改文件 跑命令
Thinking Tokens 进入当前生成序列,Action 生成时也读回它当上下文
Thinking不是外挂的算法,是模型在训练里多学的一步
普通模型 · 只学"看到问题就回答"
训练流水线
Pretraining 预训练 看海量文本
Instruction Tuning 指令微调 学会跟着指令答
RLHF 人类反馈强化 学会答得更顺
Reasoning 模型 · 多学一步"先想再答"
训练流水线
Pretraining 预训练 看海量文本
Instruction Tuning 指令微调 学会跟着指令答
RLHF 人类反馈强化 学会答得更顺
多这一步 Reasoning Tuning 推理后训练 学会先写一段思考再答
调用时还得开启 没这个字段,模型想推理也没地方写
"thinking": { type: "adaptive" }
允许在 content 数组里输出 Thinking 块
Thinking 模式的输出,content 数组里多一个 block
普通模式 · content 只有一个 block
response.content = [
text
{ "type": "text", "text": "答案..." }
]
看到问题,直接给答案
Thinking 模式 · content 多一个 block
response.content = [
thinking +1 多出来的
{ "type": "thinking", "thinking": "推理草稿..." }
text
{ "type": "text", "text": "答案..." }
]
先写一段推理,再给答案
同一套 next-token 生成机制——区别只在多写了一个 type 是 thinking 的 block (同样的机制还能输出 tool_use block,让外部应用跑工具,再把结果包成 tool_result 传回去)
Reasoning Tuning喂的样本——多了一段<reasoning>标签
普通指令微调样本
Q: 解方程 2(x - 3) = 14
A: x = 10
推理后训练样本
Q: 解方程 2(x - 3) = 14
<reasoning>
  Step 1: 展开括号
          2x - 6 = 14
  Step 2: 两边加 6
          2x = 20
  Step 3: 两边除 2
          x = 10
</reasoning>
<answer> x = 10 </answer>
反复看上万条这种step-by-step样本——模型把"先把推理写出来再答"内化成输出习惯