The "think" tool- Enabling Claude to stop and think in complex tool use situations
这是一篇 Anthropic 于 2025-03-20 发布的工程文章,讨论如何通过一个极简的 think 工具提升 Claude 在复杂 tool use 场景中的稳定性。文章的核心思想不是增加新能力边界,而是给模型一个显式的、可插入在工具链中的 scratchpad,让它在接收新工具结果后暂停、梳理约束、检查信息缺口,再决定下一步。
- 文章一开始就区分了
thinktool 和extended thinking。前者发生在模型已经开始响应之后,用来在工具调用链中途停下来思考;后者更像是回答前的前置深思。 - Anthropic 明确指出,
thinktool 更适合复杂、顺序性强、政策约束重、需要仔细阅读 tool result 的场景,而不是简单的单步或并行 tool call。 - 这个工具的形式极其简单:一个只接受
thought字符串、不会读取新信息、也不会修改环境的 no-op tool。 - 它的价值不在外部副作用,而在给模型一个显式的“现在应该先整理推理,而不是继续行动”的结构化节点。
- 在
τ-Bench上,Claude 3.7 Sonnet 在 airline domain 使用thinktool 加优化 prompt 时,pass^1从 baseline 的0.370提升到0.570,相对提升约54%。 - 在 retail domain,这个工具即使不加额外 prompt,也把
pass^1从0.783提升到0.812,说明在较简单政策环境里,仅仅给模型额外 reasoning space 也有帮助。 - 文章特别强调
pass^k的意义:它衡量的是一致性而不是“至少有一次成功”,因此更接近客服这类高一致性要求场景。 - 最强配置不是单独开放
thinktool,而是把“什么时候停下来思考、应该在里面检查什么”通过 system prompt 和域内例子教给模型。 - Anthropic 的经验是:复杂 guidance 放在 system prompt 里,比把所有说明塞进 tool description 更有效。
- 在 SWE-bench 场景里,类似的
thinktool 也被加入了 harness,平均带来约1.6%的独立性能提升。 - 文章最后也给出明确边界:对非顺序工具调用、简单 instruction following,
thinktool 通常没有收益,反而只会增加 prompt 和 output token 开销。 - 一个重要的时点更新是:到
2025-12-15,Anthropic 已补充说明 extended thinking 已经进步到大多数情况下更推荐直接用它,而不是专门再加一个thinktool。
ℹ️ Conflict:
- 这篇文章证明“工具化思考”在特定场景有效,但它并不是普适增益;简单任务、并行任务和约束较弱任务上,增加
think往往只是额外 token 成本。 - 文中主要 benchmark 结果来自 2025 年早期 Claude 3.7 配置;Anthropic 后续已明确表示,随着 extended thinking 提升,许多场景不再优先推荐专门的
thinktool。 - 这意味着
thinktool 更像一种在特定模型阶段、特定任务结构下非常有效的 scaffold pattern,而不是长期稳定默认件。
- Reasoning tools for agents
- Tool ergonomics for agents
- Programmatic tool calling
- Agent scaffold
- Anthropic
- Agentic engineering
- Anthropic, “The “think” tool- Enabling Claude to stop and think in complex tool use situations”, 2025-03-20.
- 原文摘录:[llm-wiki/raw/anthropic/The “think” tool- Enabling Claude to stop and think in complex tool use situations](/raw/anthropic/The “think” tool- Enabling Claude to stop and think in complex tool use situations.md)