Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
最も一般的なツール使用エラーに関する、症状から修正方法へのテーブルです。各修正方法は、その機能を扱うページを相互参照しています。
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| ツールBを使ってほしいのにClaudeがツールAを呼び出す | 説明の曖昧さ | 説明を明確にします。ツールが何をするかだけでなく、いつ使うべきかで差別化します。ツールの定義を参照してください。 |
| Claudeがツールをまったく呼び出さない | ツール名の衝突、または過度に汎用的なスキーマ | ツールリスト全体で重複する名前がないか確認します。input_examplesを追加して、意図した使用方法を具体的にします。 |
| Claudeが間違ったパラメータ型で呼び出す | 曖昧なスキーマに対するモデルの推測 | strict: trueを追加する(スキーマがサポートされているサブセットに含まれる場合)か、input_examplesを追加します。 |
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| スキーマに存在しないパラメータ | strictモードなしでのモデルの過剰生成 | スキーマがサポートされているサブセットに含まれる場合は、strict: trueを追加します。 |
| enumの範囲外のパラメータ値 | strictモードの欠如、または大きすぎるenum | enumを縮小するか、有効な選択肢を示すinput_examplesを追加します。 |
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| 並列の方が良い場合でもClaudeがツールを順次呼び出す | メッセージ履歴のフォーマット | 複数のtool_resultブロックを、ターンごとに1つずつではなく、1つのユーザーメッセージで送信します。並列ツール使用を参照してください。 |
disable_parallel_tool_useが無視されているように見える | 会話の中で設定が遅すぎる | tool_useを返すリクエストで設定する必要があります。後のリクエストで設定しても、それ以前のツール呼び出しには影響しません。 |
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| すべてのリクエストがキャッシュミスになる | tool_choice、思考設定、またはoutput_config.effortがリクエスト間で変動している | tool_choiceを安定させるか、変動点の前にcache_controlブレークポイントを配置します。キャッシュされた会話の間は、思考設定とeffortレベルを一定に保ちます。プロンプトキャッシングを使用したツール使用および思考とプロンプトキャッシングを参照してください。 |
| 会話の途中でツールを追加するとキャッシュが壊れる | ツールがtools配列の先頭に追加されている | ツール検索でdefer_loading: trueを使用し、配列の先頭を変更する代わりにツールをインラインで追加します。 |
| エラー | 原因 | 修正方法 |
|---|---|---|
tool_use ids were found without tool_result blocks immediately after | 一部のtool_use idに対するtool_resultが欠落しているか、tool_resultがユーザーメッセージの最初のコンテンツブロックではない | アシスタントの応答内のすべてのtool_useブロックに対して1つのtool_resultを返します。tool_resultブロックはテキストの前に配置します。ツール呼び出しの処理および並列ツール使用を参照してください。 |
was found without a corresponding <name>_tool_result block | 前のアシスタントターンに結果ブロックのないserver_tool_useブロックがあり(多くの場合、Claudeがクライアントツールと一緒に呼び出した場合)、かつ、次のユーザーメッセージがそのターンを終了させた(たとえば、tool_resultブロックの後にテキストがある)か、再開リクエストがそのサーバーツールを定義しなくなった(その場合、メッセージはbut no <name> tool was providedで終わります) | クライアントのtool_use idに対するtool_resultブロックのみを含むユーザーメッセージを送信し、同じtools配列を維持します。停止理由とフォールバックを参照してください。 |
Input schema is not compatible with strict mode: string patterns are not supported | patternをstrict: trueと一緒に使用している | patternを削除するか、strict: trueを外します。patternキーワードは、サポートされているJSON Schemaサブセットにまだ含まれていません。 |
All tools have defer_loading: true | モデルから見えるツールがない | 少なくとも1つのツールは即座にロードされる必要があります。ツール検索ツール自体には決してdefer_loading: trueを設定してはいけません。 |
ツール呼び出し後に会話を続ける際、`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modifiedというメッセージを含む400 invalid_request_errorでリクエストが失敗する場合、アプリケーションがアシスタントのthinkingブロックを送り返す前に変更しています。アシスタントメッセージ全体を変更せずに送り返し、その後にtool_resultを追加してください。
完全なエラーと修正手順については、thinkingブロックは変更できませんを参照してください。
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| Claudeがツール結果に基づいて行動することを拒否する、またはそこから来た指示の確認をユーザーに求める | 自分自身の指示がtool_resultコンテンツの中で渡されている | Claudeは、ツール結果内の指示を信頼できない可能性のあるサードパーティコンテンツとして扱うように訓練されています。指示をツール結果の外に移動します。tool_resultブロックの後のuserターンで送信するか、サポートされているモデルでは会話途中のシステムメッセージで送信します。ツール結果はデータのみに留めます。ジェイルブレイクとプロンプトインジェクションの軽減を参照してください。 |
| 症状 | 原因 | 修正方法 |
|---|---|---|
| 新しいモデルでツール入力の文字列比較が失敗する | Unicodeとスラッシュのエスケープがモデルバージョン間で異なる | json.loads()またはJSON.parse()でパースします。シリアライズされた入力に対して生の文字列マッチングを決して行わないでください。 |
Claudeを適切なツールに導くスキーマと説明を書きます。
ツールを実行し、必要なメッセージ形式で結果を返します。
Anthropicスキーマツールとそのバージョン文字列の完全なディレクトリ。
Was this page helpful?