Loading...
  • ビルド
  • 管理
  • モデルと料金
  • クライアントSDK
  • APIリファレンス
Search...
⌘K
Log in
厳格なツール使用
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
ビルド/ツール

厳密なツール使用

文法制約付きサンプリングを使用して、Claudeのツール入力をJSON Schemaに準拠させます。

ツール定義で 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 で検証された入力を含むツール使用ブロック

Output
{
  "type": "tool_use",
  "name": "get_weather",
  "input": {
    "location": "San Francisco, CA"
  }
}

保証:

  • ツール input は input_schema に厳密に従います
  • ツール name は常に有効です(提供されたツールまたはサーバーツールから)

仕組み

  1. 1

    ツールスキーマを定義する

    ツールの input_schema 用のJSON Schemaを作成します。スキーマは標準JSON Schema形式を使用しますが、いくつかの制限があります(JSON Schemaの制限事項を参照)。

  2. 2

    strict: true を追加する

    ツール定義で "strict": true をトップレベルプロパティとして設定します。name、description、および input_schema と一緒に設定します。

  3. 3

    ツール呼び出しを処理する

    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?