扩展思考技巧
本指南提供了充分利用Claude扩展思考功能的高级策略和技术。扩展思考允许Claude逐步解决复杂问题,提高在困难任务上的表现。
请参阅扩展思考模型以获得何时使用扩展思考的指导。
开始之前
本指南假设您已经决定使用扩展思考模式,并已查看了我们关于如何开始使用扩展思考模型的基本步骤以及我们的扩展思考实施指南。
扩展思考的技术考虑
- 思考令牌的最小预算为1024个令牌。我们建议您从最小思考预算开始,然后根据您的需求和任务复杂性逐步增加调整。
- 对于最佳思考预算超过32K的工作负载,我们建议您使用批处理以避免网络问题。推动模型思考超过32K令牌的请求会导致长时间运行的请求,可能会遇到系统超时和开放连接限制。
- 扩展思考在英语中表现最佳,尽管最终输出可以是Claude支持的任何语言。
- 如果您需要低于最小预算的思考,我们建议使用标准模式,关闭思考,使用带有XML标签(如
<thinking>)的传统思维链提示。请参阅思维链提示。
扩展思考的提示技术
首先使用一般指令,然后用更多分步指令进行故障排除
Claude通常在高级指令下表现更好,只需深入思考任务,而不是分步的规定性指导。模型在解决问题方面的创造力可能超过人类规定最佳思考过程的能力。
例如,不要这样:
逐步思考这个数学问题:
1. 首先,识别变量
2. 然后,建立方程
3. 接下来,求解x
...考虑这样:
请彻底且详细地思考这个数学问题。
考虑多种方法并展示您的完整推理。
如果您的第一种方法不起作用,请尝试不同的方法。在控制台中试用
话虽如此,Claude在需要时仍然可以有效地遵循复杂的结构化执行步骤。该模型可以处理比以前版本更长的列表和更复杂的指令。我们建议您从更通用的指令开始,然后阅读Claude的思考输出并迭代以提供更具体的指令来引导其思考。
扩展思考的多样本提示
多样本提示与扩展思考配合良好。当您为Claude提供如何思考问题的示例时,它将在其扩展思考块中遵循类似的推理模式。
您可以在扩展思考场景中通过使用XML标签(如<thinking>或<scratchpad>)在提示中包含少样本示例,以指示这些示例中扩展思考的规范模式。
Claude将把模式推广到正式的扩展思考过程。但是,通过让Claude自由地以它认为最好的方式思考,您可能会获得更好的结果。
示例:
我将向您展示如何解决数学问题,然后我希望您解决一个类似的问题。
问题1:80的15%是多少?
<thinking>
要找到80的15%:
1. 将15%转换为小数:15% = 0.15
2. 相乘:0.15 × 80 = 12
</thinking>
答案是12。
现在解决这个:
问题2:240的35%是多少?在控制台中试用
通过扩展思考最大化指令遵循
当启用扩展思考时,Claude显示出显著改善的指令遵循能力。模型通常:
- 在扩展思考块内推理指令
- 在响应中执行这些指令
要最大化指令遵循:
- 对您想要的内容要清晰具体
- 对于复杂指令,考虑将它们分解为Claude应该有条不紊地执行的编号步骤
- 允许Claude有足够的预算在其扩展思考中充分处理指令
使用扩展思考调试和引导Claude的行为
您可以使用Claude的思考输出来调试Claude的逻辑,尽管这种方法并不总是完全可靠。
为了最好地利用这种方法,我们建议以下技巧:
- 我们不建议在用户文本块中传回Claude的扩展思考,因为这不会提高性能,实际上可能会降低结果。
- 明确不允许预填充扩展思考,手动更改模型在其思考块之后的输出文本可能会由于模型混乱而降低结果。
当扩展思考关闭时,标准的assistant响应文本预填充仍然是允许的。
有时Claude可能会在助手输出文本中重复其扩展思考。如果您想要一个干净的响应,请指示Claude不要重复其扩展思考,只输出答案。
充分利用长输出和长形式思考
对于数据集生成用例,尝试诸如"请创建一个极其详细的...表格"之类的提示来生成综合数据集。
对于详细内容生成等用例,您可能希望生成更长的扩展思考块和更详细的响应,请尝试这些技巧:
- 增加最大扩展思考长度并明确要求更长的输出
- 对于非常长的输出(20,000+字),请求一个详细的大纲,包含到段落级别的字数统计。然后要求Claude将其段落索引到大纲并保持指定的字数
我们不建议您为了输出令牌而推动Claude输出更多令牌。相反,我们鼓励您从小的思考预算开始,根据需要增加以找到您用例的最佳设置。
以下是Claude由于更长的扩展思考而表现出色的示例用例:
让Claude反思并检查其工作以提高一致性和错误处理
您可以使用简单的自然语言提示来提高一致性并减少错误:
- 要求Claude在宣布任务完成之前用简单测试验证其工作
- 指示模型分析其前一步是否达到了预期结果
- 对于编码任务,要求Claude在其扩展思考中运行测试用例
示例:
编写一个计算数字阶乘的函数。
在您完成之前,请用以下测试用例验证您的解决方案:
- n=0
- n=1
- n=5
- n=10
并修复您发现的任何问题。在控制台中试用