是什么
L2 · 主题中枢
推理策略
通过结构化中间步骤控制模型推理过程,提升复杂问题求解的可靠性与可解释性
Chain of Thought 提供线性推导,Tree of Thought 支持多路径探索,Test-time Compute 控制资源消耗;三者组合可实现从简单到复杂任务的渐进式推理控制。
为什么
面对多步逻辑、数学推导或开放决策时,直接生成易出现跳跃性错误;推理策略通过强制中间态输出,使模型行为可观察、可干预、可复用。
怎么做
从 Chain of Thought 开始,在 Prompt 中要求分步推导;逐步引入 Tree of Thought 进行多路径探索,并结合 Test-time Compute 控制推理深度与资源消耗。
什么时候
适用于需高可靠性、可解释性或涉及多约束组合的复杂任务;不适用于简单问答、事实检索或延迟敏感场景。
FOCUS
先记住这些
为什么需要推理策略
直接生成易受训练数据偏差影响,推理策略通过强制中间态输出使模型行为可观察、可干预,显著提升复杂任务正确率与可解释性。
真正难在哪里
路径数量随分支因子指数增长,验证函数设计需覆盖边界情况,计算预算与延迟需动态平衡,中间步骤质量不稳定影响最终输出。
什么时候用
任务涉及多步逻辑推导、存在明确验证标准、允许适度延迟且需可解释输出时启用;简单问答或实时场景应使用基础生成。
ROUTE
学习路径
从单步提示开始,逐步要求模型输出完整推导过程,验证中间步骤逻辑一致性。
在关键决策点生成多个候选路径,使用评分函数筛选最优分支,支持回溯与重试。
根据任务难度动态调整推理深度与计算预算,建立质量-成本权衡机制。
PROBLEM / POSITION / INTERFACE
先弄清它为什么存在,以及谁在使用
-
01 解决的问题
当模型在数学证明、代码生成、策略规划或多条件决策中频繁出现逻辑断裂或幻觉时
直接输出缺乏中间验证,错误难以定位,且无法通过简单重试修复系统性偏差
- 成功标准
- 模型输出包含可追溯的推导路径,关键步骤可独立校验,整体正确率显著提升
-
02 AI 生态位
作为模型推理层的控制协议,连接基础生成能力与下游任务执行器
- 上游
- 依赖基础语言模型的上下文理解与生成能力
- 下游
- 为自动化代理、决策系统、代码执行器或人工审核提供结构化推理依据
-
03 人的生态位
人类负责定义问题边界、选择策略路径、设定验证标准与验收输出
- 适合使用
- 任务涉及多步逻辑、存在明确验证标准、允许适度延迟且需可解释输出
- 不必使用
- 简单事实查询、实时交互场景、计算资源受限或任务本身无明确推导路径
-
04 独特价值
在不修改模型权重的前提下,通过提示工程与流程控制显著提升复杂任务的求解可靠性与可解释性
路径爆炸风险、验证函数设计难度、计算成本与延迟的权衡、中间步骤质量的不稳定性
- 复杂度判断
- 复杂度不是功能数量,而是控制与验证成本。
INTERFACE FLOW
谁在操作,信息怎样流动
-
WHO OPERATES
HUMAN定义问题结构、选择推理策略、设定验证规则与验收标准
MODEL按策略生成中间步骤、执行路径探索与自我验证
SYSTEM调度推理流程、管理计算预算、收集并聚合多路径结果
-
INPUT
原始任务描述、约束条件、示例数据或上下文片段
-
CONTROL
Prompt 模板、最大推理步数、分支因子、验证函数、计算预算阈值
-
OUTPUT
结构化推导路径、最终答案、置信度评分及可选的中间状态日志
FLOW
推理策略实施流程
COMPARE
策略对比与选型指南
| 维度 | Chain of Thought | Tree of Thought | Test-time Compute |
|---|---|---|---|
| cells | |||
| cells | |||
| cells | |||
| cells |
PRACTICE
最小使用步骤
import os
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def cot_reasoning(prompt: str, max_steps: int = 5) -> dict:
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "请分步推导,每步以 STEP N: 开头。"},
{"role": "user", "content": prompt}
],
max_tokens=1024,
temperature=0.2
)
steps = [line for line in response.choices[0].message.content.split("\n") if line.startswith("STEP")]
return {"steps": steps[:max_steps], "final": response.choices[0].message.content}
result = cot_reasoning("计算 15 × 23 + 7")
print(result)使用 Chain of Thought 策略执行数学推导并验证中间步骤
{
"steps": [
"STEP 1: 15 × 20 = 300",
"STEP 2: 15 × 3 = 45",
"STEP 3: 300 + 45 = 345",
"STEP 4: 345 + 7 = 352"
],
"final": "STEP 1: 15 × 20 = 300\nSTEP 2: 15 × 3 = 45\nSTEP 3: 300 + 45 = 345\nSTEP 4: 345 + 7 = 352\n最终答案:352"
}FAQ
常见问题
01谁在实际使用推理策略?+
AI 工程师、数据科学家与自动化系统开发者,用于提升复杂任务求解可靠性。
决定接口设计、责任边界与验证机制的复杂度。02Chain of Thought 与 Tree of Thought 有什么区别?+
前者为线性推导,后者支持多路径探索与回溯,适合更复杂的决策场景。
避免在简单任务中过度使用高成本策略。03输入与输出分别是什么?+
输入为任务描述与约束,输出为结构化推导路径、最终答案与置信度评分。
明确数据流与下游集成方式。04如何控制推理过程?+
通过 Prompt 模板、最大步数、分支因子、验证函数与计算预算阈值进行控制。
防止路径爆炸与资源浪费。05最小可用方式是什么?+
在 Prompt 中要求分步输出,设置最大步数,运行单条测试用例验证中间步骤。
帮助快速验证策略有效性。