ClaudeのためのAnthropic "think" ツール

Anthropicは、Claudeが複雑なタスクを実行する際に、構造化された推論を行うための専用スペースを作成できるメカニズムである「think」ツールを導入しました。このツールは、Claudeのポリシー遵守、一貫した意思決定、および最小限の実装オーバーヘッドでの多段階問題の処理能力を大幅に向上させます。

"think" ツール vs. Extended Thinking

目的は似ていますが、「think」ツールはClaudeの「extended thinking」機能とは異なります。主な違いは、推論が行われるタイミングにあります。

  • Extended Thinking: モデルがレスポンスの生成を開始するに行われます。アクションを起こす前に、計画に対する深い考察と反復に使用されます。単純なツールの使用(非連続的な呼び出し)、明快な指示への追従、およびコーディング、数学、物理学などのタスクに推奨されます。
  • The "think" tool: モデルがレスポンスの生成を開始したに行われます。Claudeが、続行するために必要なすべての情報が揃っているかどうかを停止して評価することを可能にし、ツール呼び出しを通じて発見された外部情報を処理するのに理想的です。

Anthropicは、複雑なツール、長いツール呼び出しの連鎖、ポリシーが重視される環境、または各ステップが前のステップに基づいている逐次的な意思決定を伴うシナリオにおいて、「think」ツールの使用を推奨しています。

パフォーマンス・ベンチマーク

τ-Bench 結果

τ-benchは、現実的なカスタマーサービス・シナリオにおいてモデルがツールを使用する能力をテストします。Anthropicは、pass^kメトリックを使用してClaude 3.7 Sonnetを評価しました。これは、k個の独立した試行がすべて成功する確率を測定するもので、一貫性と信頼性を強調するものです。

  • Airline Domain: "think" ツールと最適化されたプロンプトの組み合わせにより、pass^1 スコアは0.584となり、ベースラインの0.332と比較して、航空業界ドメインにおける54%の相対的な改善を示しました。
  • Retail Domain: "think" ツール単体で、pass^1 スコアは0.812となり、ベースラインの0.783と比較して、改善が見られました。小売業界のポリシーは航空業界よりも単純であるため、Claudeは追加のプロンプトなしで改善しました。

SWE-bench 結果

SWE-benchのセットアップに「think」ツールを統合することで、Claude 3.7 Sonnetは0.623という最先端(state-of-the-art)のスコアを達成しました。分離された実験(n=30でツールあり、n=144でツールなし)では、「think」ツールがパフォーマンスを平均1.6%向上させることが示されました(Welch's t-test: t(38.89) = 6.71, p < .001, d = 1.47)。

実装のベストプラクティス

「think」ツールの効果を最大限に引き出すために、Anthropicは2つの主要な戦略を推奨しています。

  1. Strategic Prompting: システムプロンプト内で、明確な指示とドメイン固有の例を提供してください。これには、期待される詳細度、複雑な指示の分解方法、一般的なシナリオに対する決定ツリー、および情報収集のための検証ステップが含まれるべきです。
  2. System Prompt Placement: 長い、または複雑なガイダンスの場合、指示をツール記述自体に含めるよりも、システムプロンプトに配置する方が効果的です。

"think" ツールを使用すべき場面(および使用すべきでない場面)

推奨されるユースケース

  • Tool Output Analysis: モデルがツールの出力を処理し、必要に応じてバックトラック(引き返し)を行う必要がある場合。
  • Policy-Heavy Environments: 詳細なガイドラインへの厳格な遵守が求められる場合。
  • Sequential Decision Making: ミスが大きなコストとなる多段階のドメイン。

推奨されないユースケース

  • Non-sequential Tool Calls: 単一または並列のツール呼び出しのみを必要とするタスク。
  • Simple Instruction Following: 制約が少なく、デフォルトの挙動動が十分であるタスク。

技術的な実装

開発者は、標準的なツール仕様を使用して「think" ツールを実装できます。以下は、τ-Benchに基づいた実装例です。

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

Anthropicは、これらの結果がClaude 3.7 Sonnetに焦点を当てたものである一方、Claude 3.5 Sonnet (New) でもパフォーマンスの向上が観察されたことを指摘しており、これはこの機能がモデル間で汎用化できる能力を示しています。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch