便利だけど知られていないClaude APIの機能
🔒 ツールの引数が時々スキーマと合わない...そんな不安を仕組みで解消しませんか?
ClaudeのStrict Tool Use(厳密なツール使用)は、ツール定義にstrict: trueを付けることで、ツール呼び出しが常にスキーマと正確に一致することを保証する機能です。引数の型ズレや必須フィールドの欠落を構造的に防げます。
📌 タイトル:Strict Tool Use(厳密なツール使用)
🔗 URL:
🧩 概要
モデルがツールを呼び出すとき、引数がスキーマと一致しないことがまれに発生します。必須フィールドの欠落、型の不一致、余分なフィールドの追加など。Strict Tool Useを有効にすると、モデルの出力がツール定義のJSONスキーマに厳密に制約されます。不正な引数は構造的に生成されなくなるため、バリデーションコードを大幅に簡略化できます。
🛠 使い方
ツール定義のトップレベルにstrict: trueを追加するだけ。ただしスキーマはサポートされるJSON Schemaのサブセットに収める必要があり、オブジェクトには`additionalProperties: false`が必須です(`minimum`や`maxLength`などの制約は非対応で、使うと400エラーになります)。有効にすると、モデルはスキーマに完全に準拠した引数のみを生成します。型や必須フィールドの検証コードを省略でき、ツール実行側のエラーハンドリングがシンプルになります。
🏗 本番システムへの組み込み方
・エージェントのツール基盤:全ツールにstrict: trueを付けて、引数不正によるランタイムエラーを根絶。デバッグ時間が大幅に減ります。
・外部API連携:ツール引数をそのまま外部APIのリクエストボディとして使う場合、スキーマ準拠が保証されていれば安全にそのまま渡せます。
・マルチステップパイプライン:ステップ間のデータ受け渡しにツールを使う構成で、型安全なデータフローを確保。
・バリデーションコスト削減:引数の検証ロジックを削除または簡略化でき、コードのメンテナンスコストが下がります。
💡 ユースケース
🤖 エージェントのツール引数の品質保証
🔌 外部APIへの安全な引数パススルー
🔗 ステップ間の型安全なデータ受け渡し
🧹 バリデーションコードの削減
⚠️ 注意点
strictモードはスキーマをコンパイルした文法で出力を制約するため、あるスキーマを初めて使うリクエストではコンパイル分のレイテンシが増えます(コンパイル結果は最終使用から24時間キャッシュされます)。複雑さには明示的な上限があり、1リクエストあたり厳密なツールは20個、オプションパラメータは合計24個、union型を持つパラメータは合計16個までで、超えると400エラーになります。シンプルなスキーマで使うのが最も効果的です。
✨ 「引数が壊れてないか祈る」コードはもう要りません。strict: trueの一行で、ツール呼び出しの信頼性が格段に上がります。
#
Claude# #
LLM#