← 学習メニュー

CCAR-F 練習問題 24

CCAR-F

シナリオ:構造化データの抽出

非構造の文書から情報を抽出し、JSON スキーマで検証して下流のシステムへ渡す仕組みを Claude で構築しています。高い正確度を保ちつつ、例外的なケースを適切に扱う必要があります。

抽出の精度を上げるため extended thinking を有効にしたところ、tool_choice に {"type": "tool", "name": "extract_invoice"} を指定していたリクエストが、すべて 400 のエラーになりました。抽出の結果を決まったスキーマの形で確実に受け取ることは、引き続き必要です。対応として最も適切なのはどれですか。

スポンサーリンク
1つ選択してください

選択肢を押して回答

正解と解説

正解:D

判断のポイント

extended thinking を有効にすると、tool_choice は auto か none しか使えません。ツールの強制に頼らず、指示とスキーマ(strict tool use・Structured outputs)で必要な出力を得ます。ガイドv1.0は強制のツール選択を扱いますが、現行のモデルでは使えない場合があります。

A. max_tokens を増やし、思考とツールの呼び出しの両方が収まるようにする(不正解)

エラーの原因は出力の上限ではなく、tool_choice と思考の組み合わせです。

B. tool_choice を {"type": "any"} に変え、どれかのツールを必ず呼ばせる(不正解)

any も思考とは組み合わせられず、同じエラーになります。

C. 前の応答の thinking ブロックを履歴から外してから送り直す(不正解)

thinking ブロックの扱いとは関係のないエラーで、ツールの使用中に外すと別の問題も起こします。

D. tool_choice は auto に戻し、抽出の形は strict tool use か Structured outputs で保証する(正解)

extended thinking と組み合わせられる tool_choice は auto と none だけで、any や特定のツールの強制はエラーになります。思考を使うなら強制に頼らず、ツールの使い方を指示で示し、出力の形はスキーマの側で保証します。なお現行の Claude Opus 5.5・Sonnet 5.5 などは、思考の設定に関係なく any と tool の指定を400エラーで拒否します。

出題範囲:CCAR-F 分野2「ツール設計とMCP連携」・項目2.3 エージェントへのツール配分と tool_choice

参考資料(公式ドキュメント)

公開資料をもとにした独自解説です。本番の問題・難易度・合否を再現するものではありません。