ツール定義で strict: true を設定すると、文法制約付きサンプリングを使用して、Claudeのツール入力がJSON Schemaと一致することを保証します。このページでは、厳密モードがエージェントにとって重要な理由、有効にする方法、および一般的なユースケースについて説明します。サポートされているJSON Schemaのサブセットについては、JSON Schemaの制限事項を参照してください。非厳密スキーマのガイダンスについては、ツールの定義を参照してください。
厳密なツール使用はツールパラメータを検証し、Claudeが正しく型指定された引数で関数を呼び出すことを保証します。以下の場合に厳密なツール使用を使用してください:
信頼性の高いエージェントシステムを構築するには、スキーマ準拠の保証が必要です。厳密モードがない場合、Claudeは互換性のない型("2" の代わりに 2)または必須フィールドの欠落を返す可能性があり、関数が破損し、ランタイムエラーが発生します。
厳密なツール使用は型安全なパラメータを保証します:
例えば、予約システムが passengers: int を必要とするとします。厳密モードがない場合、Claudeは passengers: "two" または passengers: "2" を提供する可能性があります。strict: true の場合、応答は常に passengers: 2 を含みます。
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
tools=[
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": True, # Enable strict mode
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'",
},
},
"required": ["location"],
"additionalProperties": False,
},
}
],
)
print(response.content)応答形式: response.content[x].input で検証された入力を含むツール使用ブロック
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}保証:
input は input_schema に厳密に従いますname は常に有効です(提供されたツールまたはサーバーツールから)ツールスキーマを定義する
ツールの input_schema 用のJSON Schemaを作成します。スキーマは標準JSON Schema形式を使用しますが、いくつかの制限があります(JSON Schemaの制限事項を参照)。
strict: true を追加する
ツール定義で "strict": true をトップレベルプロパティとして設定します。name、description、および input_schema と一緒に設定します。
ツール呼び出しを処理する
Claudeがツールを使用する場合、tool_useブロック内の input フィールドは input_schema に厳密に従い、name は常に有効になります。
厳密なツール使用は、ツール input_schema 定義を構造化出力と同じパイプラインを使用してグラマーにコンパイルします。ツールスキーマは最後の使用から最大24時間一時的にキャッシュされます。プロンプトと応答はAPI応答を超えて保持されません。
厳密なツール使用はHIPAA適格ですが、PHIはツールスキーマ定義に含めてはいけません。APIはコンパイルされたスキーマをメッセージコンテンツとは別にキャッシュし、これらのキャッシュされたスキーマはプロンプトと応答と同じPHI保護を受けません。input_schemaプロパティ名、enum値、const値、またはpattern正規表現にPHIを含めないでください。PHIはメッセージコンテンツ(プロンプトと応答)にのみ表示され、HIPAA保護下で保護されます。
すべての機能にわたるZDRおよびHIPAA適格性については、APIとデータ保持を参照してください。
Was this page helpful?