Skip to content

"think" 工具:让 Claude 在复杂工具调用场景中停下来思考

发布日期: 2025年3月20日

概述

Anthropic 推出了一款"think"工具,提升了 Claude 在复杂问题解决任务中的表现。该工具在工具调用过程中创建了专门的推理空间,与公司独立的扩展思考(extended thinking)能力有所区别。

什么是"think"工具?

"think"工具允许 Claude 在生成响应过程中暂停,并推理判断是否拥有足够的信息继续推进。正如文章所解释的,它与扩展思考的区别在于:"扩展思考关注的是 Claude 在开始生成响应之前所做的事情……而'think'工具则是让 Claude 增加一个步骤,停下来思考是否已获得所有所需信息。"

该工具专为 Claude 需要处理来自工具结果的外部信息而非仅依赖初始用户查询的场景而设计。

实现

基础实现遵循以下格式:

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"]
  }
}

性能结果

tau-Bench 评估

在 tau-bench(一个客服基准测试)上的测试显示显著提升:

航空领域:

  • 带优化提示词的"think"工具:pass^1 指标为 0.570
  • 基线:0.370
  • 提升:54% 的相对增长

零售领域:

  • 单独使用"think"工具:pass^1 指标为 0.812
  • 基线:0.783

评估采用 pass^k 指标,衡量多次试验中的一致性而非至少一次成功——这对客服应用而言是关键指标。

SWE-Bench 结果

在软件工程任务中引入"think"工具后,平均性能提升 1.6%(统计显著,p < .001)。

关键洞察

  1. 提示词效果因领域复杂度而异: 该工具在复杂策略环境中配合领域特定示例时显示出显著提升,而较简单的领域则单独使用工具即可获益。

  2. 一致性提升: 在多次试验运行(k=1 到 k=5)中收益得以保持,表明该工具有效处理边界情况。

何时使用"think"工具

最适用于:

  • 工具输出分析: 在采取行动前处理先前结果
  • 策略密集型环境: 遵循详细指南的同时验证合规性
  • 序列决策: 每一步都建立在前一步基础上且错误代价高昂的任务

不推荐用于:

  • 非序列工具调用: 单次或并行调用不需要额外推理空间
  • 简单指令遵循: 当默认行为已表现良好时

实现建议

  1. 提供领域特定指导: 包含针对用例定制的推理方法示例,展示详细程度、决策流程和信息收集清单。

  2. 将复杂指令放在系统提示中: 较长或更复杂的指南在系统提示中比工具描述中效果更好,允许更广泛的上下文整合。

  3. 监控与迭代: 观察 Claude 在实践中如何使用该工具,并优化提示词以鼓励有效的思考模式。

与扩展思考的对比

文章指出,扩展思考更适合:较简单的工具场景、非序列调用,以及无需工具的编码或数学等领域。"think"工具在处理需要仔细分析输出的复杂工具链时表现出色。

结论

研究证明,该工具以"最小实现复杂度"为策略一致的复杂任务带来了显著的性能提升。除非 Claude 选择使用,否则该工具不改变外部行为,并与现有工作流无缝集成。

注: 文章包含一项更新,指出扩展思考现已充分改进,在大多数情况下现在推荐优先使用扩展思考而非专用的"think"工具。