Loading...
    • ビルド
    • 管理
    • モデルと料金
    • クライアントSDK
    • APIリファレンス
    Search...
    ⌘K
    はじめの一歩
    Claudeの紹介クイックスタート
    Claudeで構築する
    機能概要Messages APIの使用Claude APIスキル停止理由の処理
    モデル機能
    拡張思考適応的思考エフォートタスクバジェット(ベータ)高速モード(ベータ:研究プレビュー)構造化出力引用ストリーミングメッセージバッチ処理検索結果ストリーミング拒否多言語サポート埋め込み
    ツール
    概要ツール使用の仕組みチュートリアル:ツール使用エージェントの構築ツールの定義ツール呼び出しの処理並列ツール使用Tool Runner(SDK)厳格なツール使用プロンプトキャッシュを使用したツール使用サーバーツールトラブルシューティングウェブ検索ツールウェブフェッチツールコード実行ツールアドバイザーツールメモリツールBashツールコンピューター使用ツールテキストエディターツール
    ツールインフラストラクチャ
    ツールリファレンスツールコンテキストの管理ツールの組み合わせツール検索プログラムによるツール呼び出し細粒度ツールストリーミング
    コンテキスト管理
    コンテキストウィンドウコンパクションコンテキスト編集プロンプトキャッシュトークンカウント
    ファイルの操作
    Files APIPDFサポート画像とビジョン
    スキル
    概要クイックスタートベストプラクティスエンタープライズ向けスキルAPIのスキル
    MCP
    リモートMCPサーバーMCPコネクター
    プロンプトエンジニアリング
    概要プロンプトのベストプラクティスConsoleプロンプトツール
    テストと評価
    成功の定義と評価の構築ConsoleでのEvaluation Toolの使用レイテンシの削減
    ガードレールの強化
    幻覚の低減出力の一貫性向上ジェイルブレイクの軽減プロンプトリークの低減
    リソース
    用語集
    リリースノート
    Claude Platform
    Console
    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?