推理模板
"逻辑是思想的解剖学。" — 约翰·洛克
概述
推理模板引导语言模型通过结构化的思维过程来解决问题、生成洞见或做出决策。这些模板建立在理解模板之上,提供系统化的方法来处理信息并得出结论。
┌──────────────────────────────────────────────────────────────┐
│ │
│ 推理过程 │
│ │
│ 输入 → 结构化 → 应用逻辑 → 逐步执行 → 结论 │
│ │
└──────────────────────────────────────────────────────────────┘基础模板
1. 逐步推理
将复杂推理分解为可管理步骤的基本模板。
markdown
# 逐步推理模板
任务:通过将以下问题分解为清晰、合乎逻辑的步骤来解决。
问题:{{problem}}
请遵循此过程:
1. **理解**:重述问题并识别您需要找到的内容。
2. **规划**:概述您解决问题的方法。
3. **执行**:详细执行您计划的每一步。
- 步骤 1:[第一步的描述]
- 步骤 2:[第二步的描述]
- 步骤 3:[根据需要继续其他步骤]
4. **验证**:根据原始问题检查您的解决方案。
5. **总结**:清楚地陈述您的最终答案或结论。
显示所有工作并在每一步解释您的推理。Token 数量:~130 tokens(仅模板)
使用示例:
- 用于数学问题解决
- 处理复杂逻辑论证时
- 用于任何需要透明推理的任务
2. 比较和对比
用于评估相似性和差异的分析推理。
markdown
# 比较和对比模板
任务:分析以下项目之间的相似性和差异。
要比较的项目:{{item_a}} 和 {{item_b}}
请遵循此结构化方法:
1. **背景**:简要介绍两个项目及其上下文。
2. **标准选择**:识别比较的关键维度。
3. **系统化比较**:
- 维度 1:[解释两个项目与此维度的关系]
- 维度 2:[解释两个项目与此维度的关系]
- 维度 3:[根据需要继续其他维度]
4. **关键相似性**:明确列出最重要的相似之处。
5. **关键差异**:明确列出最重要的差异。
6. **综合**:解释这些相似性和差异揭示了什么。
7. **结论**:总结此比较中最重要的见解。Token 数量:~140 tokens(仅模板)
使用示例:
- 用于比较理论、产品或方法
- 分析竞争解决方案时
- 用于评估替代解释
3. 因果分析
用于推理因果关系。
markdown
# 因果分析模板
任务:分析与以下情况或现象相关的原因和结果。
情况:{{situation}}
请遵循此结构化方法:
1. **描述现象**:清楚地陈述需要解释的内容。
2. **识别潜在原因**:
- 直接原因:[导致情况的直接因素]
- 根本原因:[为情况创造条件的更深层因素]
- 促成因素:[放大或促成原因的要素]
3. **评估每个原因**:
- 证据:[什么证据支持这是原因?]
- 重要性:[这个原因有多重要?]
- 机制:[这个原因如何导致结果?]
4. **分析结果**:
- 直接结果:[直接后果]
- 长期结果:[持续或未来的后果]
- 次要结果:[间接后果]
5. **检查交互**:这些原因和结果如何相互作用?
6. **结论**:总结最重要的因果关系。Token 数量:~160 tokens(仅模板)
使用示例:
- 用于历史分析
- 调查复杂系统时
- 用于理解社会或经济现象
高级模板
4. 假设检验
用于系统化地根据证据评估假设。
markdown
# 假设检验模板
任务:基于可用证据系统化地评估以下假设。
假设:{{hypothesis}}
证据:{{evidence}}
请遵循此结构化方法:
1. **澄清假设**:以精确的术语重述假设。
2. **识别可测试的预测**:如果假设正确,什么应该是真的?
3. **评估证据**:
- 支持性证据:[证实预测的证据]
- 强度:[此证据对假设的支持有多强?]
- 可靠性:[此证据有多可靠?]
- 矛盾性证据:[与预测相矛盾的证据]
- 强度:[此证据对假设的反对有多强?]
- 可靠性:[此证据有多可靠?]
- 缺失的证据:[应该存在但不存在的证据]
4. **考虑替代假设**:还有什么其他解释可以说明证据?
5. **权衡比较解释力**:与替代方案相比,假设解释证据的效果如何?
6. **结论**:评估假设的整体可信度。
7. **置信度水平**:指出您对此评估的置信度。Token 数量:~180 tokens(仅模板)
使用示例:
- 用于科学推理
- 评估理论或声明时
- 用于基于证据的决策
5. 决策矩阵
用于跨多个标准的结构化决策制定。
markdown
# 决策矩阵模板
任务:根据标准评估选项以做出结构化决策。
决策上下文:{{decision_context}}
选项:{{options}}
标准:{{criteria}}
请遵循此结构化方法:
1. **定义决策**:清楚地陈述需要做出什么决策。
2. **建立标准权重**:
- 标准 1:[重要性权重(1-10)]
- 标准 2:[重要性权重(1-10)]
- [继续所有标准]
3. **评估每个选项**:
创建一个矩阵,选项作为行,标准作为列。
| 选项 | 标准 1 | 标准 2 | ... | 总计 |
|--------|-------------|-------------|-----|-------|
| 选项 A | [分数] | [分数] | ... | [总和] |
| 选项 B | [分数] | [分数] | ... | [总和] |
对于每个单元格,提供:
- 分数:[评分(1-10)]
- 理由:[简要解释]
4. **计算加权分数**:将每个分数乘以标准权重。
5. **排名选项**:根据总加权分数对选项进行排序。
6. **敏感性分析**:如果调整权重,排名会如何变化?
7. **建议**:陈述推荐的选项及其理由。Token 数量:~180 tokens(仅模板)
使用示例:
- 用于在替代方案之间选择
- 平衡多个因素时
- 用于透明的决策过程
6. 论证构建
用于构建结构良好的论证。
markdown
# 论证构建模板
任务:为以下立场构建一个有充分推理的论证。
立场:{{position}}
请遵循此结构化方法:
1. **论点陈述**:清楚地阐明主要声明或立场。
2. **定义关键术语**:澄清任何模糊或技术术语。
3. **建立前提**:
- 前提 1:[陈述第一个支持性声明]
- 证据:[此前提的支持]
- 推理:[此证据如何支持前提]
- 前提 2:[陈述第二个支持性声明]
- 证据:[此前提的支持]
- 推理:[此证据如何支持前提]
- [根据需要继续其他前提]
4. **逻辑结构**:解释这些前提如何导致结论。
5. **处理反驳论证**:
- 反驳论证 1:[潜在反对]
- 回应:[反驳或容纳]
- 反驳论证 2:[潜在反对]
- 回应:[反驳或容纳]
6. **结论**:重述论点并总结支持性论证。Token 数量:~170 tokens(仅模板)
使用示例:
- 用于说服性写作
- 制定立场文件时
- 用于构建逻辑案例
实现模式
以下是实现逐步推理模板的简单 Python 函数:
python
def step_by_step_reasoning(problem, steps=None):
"""
创建引导逐步推理的提示。
Args:
problem (str): 要解决的问题
steps (list, optional): 推理过程的自定义步骤
Returns:
str: 格式化的逐步推理提示
"""
if steps is None:
steps = [
"理解:重述问题并识别您需要找到的内容。",
"规划:概述您解决问题的方法。",
"执行:详细执行您计划的每一步。",
"验证:根据原始问题检查您的解决方案。",
"总结:清楚地陈述您的最终答案或结论。"
]
steps_text = "\n".join([f"{i+1}. **{step.split(':', 1)[0]}**:{step.split(':', 1)[1]}"
for i, step in enumerate(steps)])
return f"""
任务:通过将以下问题分解为清晰、合乎逻辑的步骤来解决。
问题:{problem}
请遵循此过程:
{steps_text}
显示所有工作并在每一步解释您的推理。
"""测量和优化
使用推理模板时,通过以下方式测量其有效性:
- 逻辑有效性:结论是否得到前提的适当支持?
- 完整性:推理是否解决了问题的所有方面?
- 透明度:每一步是否清楚地解释和证明?
- 效率:推理是否采用了直接的路径到达解决方案?
- 正确性:推理是否导致正确的答案或结论?
通过以下方式优化您的模板:
- 根据问题复杂度调整详细程度
- 为专门领域添加特定领域的推理步骤
- 为特定类型的问题自定义评估标准
与其他工具结合
推理模板最适合作为完整认知工作流的一部分:
┌─────────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ 理解模板 │────►│ 推理模板 │────►│ 验证模板 │
│ │ │ │ │ │
└─────────────────────┘ └─────────────────┘ └─────────────────┘例如,使用理解模板分析问题,应用推理模板解决它,然后使用验证模板检查解决方案。
高级推理模式
对于复杂问题,考虑这些高级模式:
分而治之
将问题分解为独立的子问题,分别解决每个问题,然后合并结果。
┌───────────────────────────────────────────────────────────────┐
│ │
│ 主问题 │
│ │ │
│ ├────────────────┬────────────────┬────────────────┐ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ 子问题 1 子问题 2 子问题 3 子问题 4 │
│ │ │ │ │ │
│ ├────────────────┼────────────────┼────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 合并解决方案并整合结果 │
│ │
└───────────────────────────────────────────────────────────────┘迭代优化
从简单解决方案开始,然后迭代改进它。
┌───────────────────────────────────────────────────────────────┐
│ │
│ 初始解决方案 │
│ │ │
│ ▼ │
│ 识别弱点 │
│ │ │
│ ▼ │
│ 改进解决方案 ◄─────────────┐ │
│ │ │ │
│ ▼ │ │
│ 评估改进 │ │
│ │ │ │
│ └────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 最终解决方案(当令人满意时) │
│ │
└───────────────────────────────────────────────────────────────┘类比推理
将已知领域的推理模式应用于新问题。
┌───────────────────────────────────────────────────────────────┐
│ │
│ 目标问题 │
│ │ │
│ ▼ │
│ 识别相似的已解决问题 │
│ │ │
│ ▼ │
│ 将已解决问题的元素映射到目标问题 │
│ │ │
│ ▼ │
│ 应用相似的解决策略 │
│ │ │
│ ▼ │
│ 根据目标问题的需要进行调整 │
│ │
└───────────────────────────────────────────────────────────────┘下一步
- 探索 verification.md 了解检查推理的模板
- 查看 composition.md 了解组合多个模板的方法
- 查看 ../cognitive-programs/advanced-programs.md 了解利用这些推理模式的程序化方法