# 思维链提示：什么时候让模型分步思考，什么时候调推理强度

> 思维链提示就是让模型在给出最终答案之前，先把推理过程写出来，可以用写好步骤的示例，也可以加一句“Let's think step by step”。它对直接作答的模型有帮助。推理模型在回答之前本来就会思考，所以 OpenAI 建议不要给它们加这类提示。对推理模型，你要做的是设置推理强度，再检查最终答案。

Mindket 编辑部 · 发布于 2026-11-06 · 更新于 2026-11-06 · https://mindket.com/cn/learn/prompt-engineering-advanced/chain-of-thought-prompting

## 要点

- 让快速模型把推理写进一个带标签的块里，在任何人读到回复之前把这个块去掉。
- 给推理模型的提示词里不写分步指令，目标写清楚之后再调推理强度。
- 两家的 API 都要为看不见的思考预留输出 token。
- 只有在很长的工具调用链里、而且扩展思考不够用时，才考虑 think 工具。
- 把看得见的思维链当成要核实的线索，而不是答案站得住的证据。

## 开始之前

思维链是模型在给出答案之前写下的推理过程。2022 年为它命名的论文 [Chain-of-Thought Prompting Elicits Reasoning in Large Language Models](https://huggingface.co/papers/2201.11903) 把它定义为一系列中间推理步骤。

推理模型不用你要求，就会自己生成这条链。OpenAI 的推理模型（比如 GPT-5.5）和开启了扩展思考的 Claude，都会在回复之前先推理，[怎样选择 AI 模型](https://mindket.com/cn/learn/ai-basics/choose-an-ai-model)这一课讲了它们和快速模型的区别。本课的练习和代码都需要一个 API 密钥。

## 让快速模型把思考说出来

Anthropic [交互式提示词教程](https://github.com/anthropics/prompt-eng-interactive-tutorial/blob/master/Anthropic%201P/06_Precognition_Thinking_Step_by_Step.ipynb)的第 6 章让 Claude 说出一部由 1956 年出生的演员主演的知名电影。教程把它当作直接回答会出错的例子。它的修正只多了一句话：先在 `brainstorm` 标签里列出一些演员和他们的出生年份，再回答。

教程还给了一条值得记住的规则：思考只有说出来才算数。如果提示词让模型思考，却只让它输出答案，那就根本没有发生思考，因为推理就是模型写下的那些文字。

````text
# Prompt 1
Name a famous movie starring an actor who was born in the year 1956.

# Prompt 2
Name a famous movie starring an actor who was born in the year 1956. First brainstorm about some actors and their birth years in <brainstorm> tags, then give your answer.
````

1. 选一个不先推理就直接作答的模型，比如把 GPT-5.5 的推理强度设为 `none`。
2. 发送提示 1，记下回复里给出的电影、演员和出生年份。
3. 自己查一下那个出生年份。
4. 在新对话里发送提示 2。回复应该先在标签里列出演员和年份，再说出一部电影。
5. 在你的代码里，只保留结束标签之后的文字，这样用户看到的是答案，而不是头脑风暴。

## 为什么写出步骤在 2022 年的模型上管用

最早的那篇论文把推理过程写进少样本示例里，也就是[上一课](https://mindket.com/cn/learn/prompt-engineering-advanced/few-shot-prompting)讲的技巧。每个示例都包含问题、推理步骤和答案。只用八个这样的示例，一个 5400 亿参数的模型就在数学应用题基准 GSM8K 上达到了当时最好的准确率，超过了加上验证器的微调版 GPT-3。

同一年稍晚，[Large Language Models are Zero-Shot Reasoners](https://huggingface.co/papers/2205.11916) 去掉了示例，只在每个答案之前加上“Let's think step by step”。如图所示，这让 InstructGPT 的 text-davinci-002 在同类题目上的准确率大幅提高。

两篇论文测的都是不经提示就会直接作答的模型。图表展示的是 2022 年一句话对这类模型的作用，并不能说明今天的模型会怎样。[提示词工程入门课](https://mindket.com/cn/learn/prompt-engineering/prompt-engineering-basics)解释了为什么现在的模型很少需要这句话。

**text-davinci-002 的准确率：普通零样本与“Let's think step by step”** 出自 Kojima 等人 2022 年的论文。金色柱在答案之前加了分步思考那句话。

- MultiArith，普通: 17.7%
- MultiArith，分步思考: **78.7%**
- GSM8K，普通: 10.4%
- GSM8K，分步思考: **40.7%**

来源：[Hugging Face Papers: Large Language Models are Zero-Shot Reasoners (2022)](https://huggingface.co/papers/2205.11916) (2026-11-06 查阅)

## 推理模型带来了什么变化

OpenAI 的[推理指南](https://developers.openai.com/api/docs/guides/reasoning)介绍了推理 token：模型在给出可见答案之前，用它们拆解提示词、权衡不同做法。API 从不返回这些 token，但它们仍然占用上下文窗口，并按输出 token 计费。

既然模型本来就会推理，[推理模型最佳实践](https://developers.openai.com/api/docs/guides/reasoning-best-practices)就建议不要用思维链提示。让它“think step by step”或解释推理过程是多余的，指南还提醒这样做可能没有帮助，有时甚至会起反作用。OpenAI 希望你给出明确的目标、严格的约束和清楚的输出约定，而不是把每个中间步骤都写出来。

模型想多少，由请求里的推理强度决定。指南的示例用低强度让模型写一个小的 bash 脚本。

````python
from openai import OpenAI

client = OpenAI()

prompt = """
Write a bash script that takes a matrix represented as a string with
format '[1,2],[3,4],[5,6]' and prints the transpose in the same format.
"""

response = client.responses.create(
    model="gpt-6-astra",
    reasoning={"effort": "low"},
    input=[{"role": "user", "content": prompt}],
)

print(response.output_text)
````

| 设置 | OpenAI（Responses API） | Claude（Messages API） |
| --- | --- | --- |
| 强度参数 | `reasoning.effort` | `output_config.effort` |
| 可选值 | none、minimal、low、medium、high、xhigh、max，因模型而异 | low、medium、high、xhigh、max |
| 默认值 | GPT-5.5、GPT-5.6 和 GPT-6.1 Sol 为 medium | high |
| 查看推理 | 把 `reasoning.summary` 设为 `auto`，可以看到摘要 | 把 `display` 设为 `summarized`，可以看到摘要 |
| 预留 token | 刚开始时至少为推理和输出预留 25,000 个 token | 思考计入 `max_tokens` |

## 在 Claude 上设置推理强度

Anthropic 的[扩展思考 cookbook](https://github.com/anthropics/claude-cookbooks/blob/main/extended_thinking/extended_thinking.ipynb)是为 Claude Sonnet 5.5 写的，它发送了一道排日程的题：五场讲座、五个时段、五条约束。这里的思考是自适应的。Claude 每次请求自己决定想多少，推理强度设置则引导它。旧写法用固定的 `budget_tokens`，在这个模型上会返回 400 错误。

下面的调用来自 cookbook。只有最后的打印循环是本课自己写的，用来代替 cookbook 的辅助函数。

````python
import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=16000,  # thinking tokens count toward max_tokens, so leave headroom
    thinking={
        "type": "adaptive",
        "display": "summarized",  # default is "omitted" (empty thinking text)
    },
    output_config={"effort": "xhigh"},  # low | medium | high (default) | xhigh | max
    messages=[
        {
            "role": "user",
            "content": "Five talks (A, B, C, D, E) must be scheduled in five consecutive slots. Constraints: A comes before C; B is not adjacent to D; E is neither first nor last; C is immediately before or after E; D comes before A. List every valid ordering and explain how you know there are no others.",
        }
    ],
)

for block in response.content:
    if block.type == "thinking":
        print("THINKING (summary):", block.thinking)
    elif block.type == "text":
        print("ANSWER:", block.text)
````

- 你看到的思考文字是摘要，计费却按完整的推理算。不设 `display` 时，思考块返回的是空文字，照样计费。
- 简单的提示词和低强度可能根本不返回思考块，所以别假定第一个块就是推理。
- 从默认值开始。Anthropic 在 2026 年 2 月 5 日的 [Opus 4.6 发布文章](https://www.anthropic.com/news/claude-opus-4-6)里说，模型在某个任务上想得过多时，把推理强度从 high 调到 medium。
- 调高强度之前，先把模糊的目标写清楚。OpenAI 的指南说，推理强度是一个微调旋钮，不是挽回质量的主要手段。

## 用于长工具调用链的 think 工具

扩展思考发生在回复开始之前。Anthropic 2025 年 3 月 20 日发布的 [think 工具文章](https://www.anthropic.com/research/claude-think-tool)给了 Claude 一个在任务中途停下来思考的地方。这是一个什么都不获取、什么都不改变、只记录一条想法的工具。Claude 在拿到工具结果后调用它，检查自己是否掌握了继续下去所需的信息。

文章在 τ-bench 的航空公司任务上测量了 Claude 3.7 Sonnet。τ-bench 是一个让模型用工具、按政策处理客服工作的基准。单用这个工具和单用扩展思考，得分差不多。最好的结果来自工具加上一份提示词，里面给出示例，演示该怎样推理航空公司的政策。

2025 年 12 月 15 日，Anthropic 在文章顶部加了一条说明：扩展思考已经改进得足够好，大多数情况下它建议用这项功能，而不是单独的 think 工具。文章原本就列出了这个工具不太可能有帮助的情况：只调用一个工具、并行调用多个工具，以及简单的指令遵循。

````json
{
  "name": "think",
  "description": "Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.",
  "input_schema": {
    "type": "object",
    "properties": {
      "thought": {
        "type": "string",
        "description": "A thought to think about."
      }
    },
    "required": ["thought"]
  }
}
````

**τ-bench 航空公司任务，pass^1，Claude 3.7 Sonnet** 首次尝试即通过的任务比例，取自文章的表格。正文给出的基线和金色柱数值是 0.370 和 0.570。

- 基线，不用工具也不开扩展思考: 0.33
- 扩展思考: 0.41
- think 工具: 0.4
- think 工具加示例提示词: **0.58**

来源：[Anthropic: The "think" tool](https://www.anthropic.com/research/claude-think-tool) (2026-11-06 查阅)

## 展示出来的推理不一定是真正的理由

在 2025 年 4 月 3 日发表的一项研究里，[Anthropic 的对齐科学团队](https://www.anthropic.com/research/reasoning-models-dont-say-think)把关于答案的提示悄悄放进给两个推理模型的测验题里。随后再看：模型用了提示时，它的思维链有没有提到这条提示。大多数时候没有提到。

不忠实的思维链平均比忠实的更长。长不代表诚实。作者自己也说实验设置是人为构造的：多选题，外加刻意放进去的提示。[什么是大模型评估](https://mindket.com/cn/learn/ai-evals/what-are-llm-evals)讲了怎样用你自己的检查给最终答案评分。思维链只适合在调试时当线索，不能当成评分。

**模型用了提示之后提到它的比例**

- **25%** Claude 3.7 Sonnet，各类提示的平均值 (来源：[Anthropic: Reasoning models don't always say what they think](https://www.anthropic.com/research/reasoning-models-dont-say-think), 2026-11-06 查阅)
- **39%** DeepSeek R1，各类提示的平均值 (来源：[Anthropic: Reasoning models don't always say what they think](https://www.anthropic.com/research/reasoning-models-dont-say-think), 2026-11-06 查阅)

## Jason Wei 谈 o1 之后的思维链，Alex Albert 谈 think 工具

Jason Wei 当时在 Google Research，是 [2022 年那篇思维链论文](https://huggingface.co/papers/2201.11903)的第一作者。他 2024 年 11 月 10 日[在 X 上写道](https://x.com/_jasonwei/status/1855417833775309171)，思维链在 o1 前后有一个“微妙但重要的区别”。他说，在 o1 范式之前，思维链实际是什么样，和我们希望它是什么样，两者并不匹配。

这和本课的建议吻合。在较早的模型上，思维链是你要求的一种格式，可以读，也可以解析。在推理模型上，它是模型自己的过程，所以你要做的是设置推理强度，再检查答案。

Anthropic 的 Alex Albert 2025 年 3 月 21 日[在 X 上分享了 think 工具的研究](https://x.com/alexalbert__/status/1903130655564922911)。他写道，一个简单的 think 工具明显改善了智能体的指令遵循和多步骤问题解决。上面提到的 12 月说明是九个月之后加上的。

> 思维链在 o1 之前和之后，有一个微妙但重要的区别。
>
> Jason Wei (@_jasonwei), 2022 年思维链论文的第一作者，引文为译文, [X](https://x.com/_jasonwei/status/1855417833775309171) (2026-11-06 查阅)

[![Jason Wei（@_jasonwei）2024 年 11 月 10 日在 X 上发帖：思维链在 o1 之前和之后，有一个微妙但重要的区别。他接着写道，在 o1 范式之前，思维链实际是什么样，和我们希望它是什么样，两者并不匹配。](https://mindket.com/blog/shots/x-jasonwei-cot-before-after-o1.webp?v=f91d6533e36f)](https://x.com/_jasonwei/status/1855417833775309171)

Jason Wei 在 X 上，2024 年 11 月 10 日

[![Alex Albert（@alexalbert__）2025 年 3 月 21 日在 X 上发帖：我们团队的新研究表明，给 Claude 一个简单的“think”工具，能明显改善智能体的指令遵循和多步骤问题解决。](https://mindket.com/blog/shots/x-alexalbert-think-tool.webp?v=9f9b174f655d)](https://x.com/alexalbert__/status/1903130655564922911)

Alex Albert 在 X 上，2025 年 3 月 21 日

[Claude 3.7 Sonnet with extended thinking](https://www.youtube.com/watch?v=t3nnDXa81Hs)

Anthropic 在自己频道发布的 Claude 3.7 Sonnet 介绍视频，2025 年 2 月 24 日：同一个模型，既能几乎即时回答，也能先分步思考再作答。

> X 官方嵌入卡片的截图，拍摄于 2026 年 11 月 6 日，时间为 UTC。X 在第一条帖子处用“Show more”截断了后面的内容。点击截图可到 X 上打开原帖。

## 常见错误

- 用户只想要答案，却把头脑风暴或思考文字也展示给了他们。
- 输出 token 上限设得太低，OpenAI 返回一个没有可见文字的不完整响应，输入和推理却照样计费。
- 每次调用都把推理强度设到最高。OpenAI 说，只有当评估显示收益足以抵消额外的延迟和成本时，才用 `xhigh`。
- 在对话中途修改请求里的 `reasoning.effort`。在受支持的 GPT-6 及之后的模型上，OpenAI 的指南说，应在两次响应之间加一个 `configuration_update` 条目，请求里的强度保持不变，这样会保留原始的提示词前缀，供提示词缓存使用。
- 把一条很长的思维链当成答案正确的证据。

## 自己试一试

每个练习只改本课某个提示词或调用里的一处设置，这样你能看清那处设置的作用。[下一课](https://mindket.com/cn/learn/prompt-engineering-advanced/prompt-chaining)会把一个任务拆成几个提示词，而不是写成一条长长的思维链。

- 分别用 `low` 和 `xhigh` 强度跑五场讲座那道题，比较 `usage.output_tokens` 和每个回复列出的排法。
- 把带 brainstorm 那句话的演员提示词发给一个推理模型。答案变了吗，还是只是变长了？
- 把调用里的 `display` 去掉，看看思考块里还剩什么。
- 给你已经在用的智能体加上 think 工具，记录它在十个任务里写下的每一条想法。

## 自测一下

1. 对于给推理模型加“think step by step”这类提示，OpenAI 的建议是什么？

   A. 每次请求都加上
   B. 不要加，因为模型本来就会在内部推理
   C. 只放在开发者消息里
   D. 搭配高推理强度一起用

   答案：B。 推理模型最佳实践认为这类提示是多余的，还提醒它们有时会让结果变差。

2. 调用 Claude Sonnet 5.5 时，thinking 的类型设为“enabled”，并带上 budget_tokens。会怎样？

   A. Claude 按这个预算思考
   B. Claude 忽略这个预算
   C. 调用退回到 medium 强度
   D. API 返回 400 错误

   答案：D。 Anthropic 的 cookbook 说这个模型不接受旧的预算写法，推理强度设置取代了它。

3. 在 Anthropic 2025 年 4 月的研究里，Claude 3.7 Sonnet 提到自己用过的提示的比例是多少？

   A. 平均 25%
   B. 每次都提到
   C. 从来不提
   D. 十次里有九次

   答案：A。 DeepSeek R1 提到的比例是 39%，所以研究里的大多数思维链都没提这条提示。

4. 提示词让一个没有内置推理的模型思考，却只让它输出答案。Anthropic 的教程说会怎样？

   A. 它会先默默思考
   B. 回复会变长
   C. 根本没有发生思考
   D. API 返回错误

   答案：C。 思考只有说出来才算数，因为推理就是模型写下的那些文字。

## 常见问题

### 什么是思维链提示？

这是一种提示方法，让模型在回复里把解题过程摆出来，你可以逐步阅读和核对。Jason Wei 等人 2022 年为它命名的论文发现，这种能力是在足够大的语言模型里自然出现的。

### “Let's think step by step”现在还管用吗？

对没有内置推理的模型，往往还管用。OpenAI 已归档的 [GPT-4.1 提示词指南](https://developers.openai.com/cookbook/examples/gpt4-1_prompting_guide)建议在提示词末尾加一句基本的思维链指令。指南提到，让 GPT-4.1 明确做计划，使它在 SWE-bench Verified 上的通过率提高了 4%。对推理模型，OpenAI 认为这句话是多余的。

### 思维链和扩展思考有什么区别？

思维链是你要求模型写出的文字，出现在回复里，你可以读，也可以解析。扩展思考发生在回复之前单独的思考块里，由推理强度控制，你看到的是摘要或者什么都看不到，而全部思考都按输出计费。

### 思维链和提示链是一回事吗？

不是。前者发生在一次回复之内。提示链把一个任务拆到几个提示词里，每一步都用上一步的输出，这样你的代码可以在步骤之间检查结果。

### 推理应该带到下一轮对话吗？

OpenAI 的 Responses API 里，传入 `previous_response_id`，之前的推理条目就仍然可用。GPT-5.6 模型默认把这些推理带进下一轮，更早的模型不会，`reasoning.context` 可以选择哪种行为。Anthropic 的扩展思考 cookbook 说，被遮蔽的思考块传回 API 时会被解密，这样 Claude 可以接着往下回答，不会丢失上下文。

## 资料来源

- [Hugging Face Papers: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (2022)](https://huggingface.co/papers/2201.11903) (2026-11-06 查阅)
- [Hugging Face Papers: Large Language Models are Zero-Shot Reasoners (2022)](https://huggingface.co/papers/2205.11916) (2026-11-06 查阅)
- [Anthropic on GitHub: Prompt engineering interactive tutorial, chapter 6, Precognition (Thinking Step by Step)](https://github.com/anthropics/prompt-eng-interactive-tutorial/blob/master/Anthropic%201P/06_Precognition_Thinking_Step_by_Step.ipynb) (2026-11-06 查阅)
- [OpenAI Docs: Reasoning models](https://developers.openai.com/api/docs/guides/reasoning) (2026-11-06 查阅)
- [OpenAI Docs: Reasoning best practices](https://developers.openai.com/api/docs/guides/reasoning-best-practices) (2026-11-06 查阅)
- [OpenAI Cookbook: GPT-4.1 Prompting Guide](https://developers.openai.com/cookbook/examples/gpt4-1_prompting_guide) (2026-11-06 查阅)
- [Anthropic on GitHub: Claude cookbooks, Extended Thinking](https://github.com/anthropics/claude-cookbooks/blob/main/extended_thinking/extended_thinking.ipynb) (2026-11-06 查阅)
- [Anthropic: Introducing Claude Opus 4.6](https://www.anthropic.com/news/claude-opus-4-6) (2026-11-06 查阅)
- [Anthropic: The "think" tool](https://www.anthropic.com/research/claude-think-tool) (2026-11-06 查阅)
- [Anthropic: Reasoning models don't always say what they think](https://www.anthropic.com/research/reasoning-models-dont-say-think) (2026-11-06 查阅)
- [X: Jason Wei on chain of thought before and after o1](https://x.com/_jasonwei/status/1855417833775309171) (2026-11-06 查阅)
- [X: Alex Albert on the think tool research](https://x.com/alexalbert__/status/1903130655564922911) (2026-11-06 查阅)
- [YouTube: Anthropic, Claude 3.7 Sonnet with extended thinking](https://www.youtube.com/watch?v=t3nnDXa81Hs) (2026-11-06 查阅)

[浏览 AI 智能体](https://mindket.com/cn/agents)
