"think" 工具:让 Claude 能停下来思考

原文:The "think" tool: Enabling Claude to stop and think in complex tool use situations

导读

"think" tool 是一个专门给 Claude 在 tool-use 中途使用的结构化 scratchpad。它不获取新信息、不改变外部状态,只帮助模型在看到工具结果后停下来核对规则、证据和下一步。

说明:本文按 Agent Learning 的中文阅读页格式,对原文结构与关键技术细节做逐节中文转述与解读;为避免整篇镜像转载,正文保留原文章节脉络、关键数字和术语,但不做逐字复刻。

核心观点

正文

为什么需要中途思考

复杂 tool-use workflow 的关键困难往往发生在工具返回之后。模型已经拿到新信息,但还需要把它与用户目标、业务规则、政策约束和历史步骤对齐。

如果没有一个显式停顿点,agent 可能直接继续调用下一个工具,导致没有检查必要信息、误读政策、或者在顺序决策中提前执行不可逆动作。

"think" tool 的设计很克制:它不给模型新能力,也不改变外部状态,只提供一个可审计的中途 scratchpad。

与 extended thinking 的区别

extended thinking 主要发生在模型生成回复之前;而 think tool 可以出现在 response 中途,尤其是在一个或多个 tool results 返回之后。

这使它适合那些“看到新证据后必须重新推理”的任务。例如客服改签、退款政策、订单处理、代码修改后的测试失败分析。

文章后来更新指出,在现代模型能力下,多数场景更推荐 extended thinking。但 think tool 仍然是一个重要设计模式:为高风险中间状态提供无副作用推理节点。

实验结果说明什么

文章给出多个 benchmark 信号。tau-bench airline 中,think + optimized prompting 的 pass^1 为 0.570,baseline 为 0.370,是 54% relative improvement;展示表中 Think + Prompt 在 k=1 达到 0.584,而 baseline 为 0.332。

retail 任务中,未提示 think 的 pass^1 为 0.812,baseline 为 0.783。SWE-bench 场景中,类似 think tool 对 Claude 3.7 Sonnet 的 0.623 结果也有贡献,隔离实验显示平均 1.6% 提升且有统计显著性。

这些数字说明,收益并不是来自工具本身执行了什么,而是来自它改变了模型在复杂流程中的推理节奏。

什么场景适合,什么场景不适合

最适合的场景是工具输出分析、政策密集环境和顺序决策。此时模型需要明确列出适用规则、检查缺失信息、验证 policy compliance,再决定下一步动作。

不适合的场景是简单 instruction following、单次工具调用,或者互不依赖的并行工具调用。此时加入 scratchpad 只会增加 token 和 latency。

换句话说,think tool 应被当作 targeted guardrail,而不是所有任务的默认装饰。

深度解读

这篇文章的价值不只是介绍一个工具,而是提出一种 agent harness 设计思路:在外部行动前插入可解释、无副作用的反思节点。强 agent 的风险往往不是不会行动,而是行动太连续。对于政策、权限、资金、数据修改等任务,系统需要让模型在关键点核对规则和证据。即使今天 extended thinking 覆盖了很多场景,think tool 仍提醒我们:推理能力不仅是模型内部参数,也可以通过工具界面和流程节奏被工程化。

落地启示