← 学習メニュー

CCAR-F 練習問題 1

CCAR-F

シナリオ:カスタマーサポート解決エージェント

Claude Agent SDK で、返品・請求の異議・アカウントの問題など曖昧さの大きい問い合わせを扱うサポートエージェントを構築しています。バックエンドには独自の MCP ツール(get_customer・lookup_order・process_refund・escalate_to_human)で接続し、一次解決率80%以上と、適切なエスカレーションの両立を目指しています。

返金対応のエージェントのループを「stop_reason が end_turn になるまで、ツールを実行して次のリクエストを送る」と実装しました。ログでは、長い返金の説明を書いている途中で stop_reason が "max_tokens" になった応答に対し、ループが実行するツールのないまま同じ履歴を送り直し、上限の20回まで空回りしていました。最も適切な修正はどれですか。

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

選択肢を押して回答

正解と解説

正解:C

判断のポイント

エージェントループは stop_reason の値ごとに扱いを決めます。tool_use は続行、end_turn は終了、max_tokens は途中切れです。「end_turn 以外は続行」のような二分法は、想定外の値で空回りや誤った完了を招きます。

A. ツールが呼ばれなかった応答はすべて完了とみなし、その時点の本文を顧客に表示する(不正解)

max_tokens で切れた応答も完了扱いになり、途中で切れた説明が顧客に届きます。

B. 上限の回数を20回から5回に下げ、空回りが起きても短い時間で止まるようにする(不正解)

空回りの時間が短くなるだけで、途中で切れた応答を正しく扱えない問題は残ります。

C. stop_reason ごとに分岐し、tool_use のときだけツールを実行して続け、max_tokens は途中切れとして扱う(正解)

ループは stop_reason の値ごとに扱いを決めます。tool_use なら結果を tool_result として返して続行、end_turn なら終了、max_tokens は出力が上限で切れた合図なので、上限の見直しや続きの扱いを別に決めます。end_turn 以外をすべて「続行」とみなす実装は、今回のような空回りを生みます。

D. max_tokens を毎回モデルの最大値に固定し、ループの判定はこれまでのまま残す(不正解)

途中切れは起きにくくなりますが、stop_reason を値ごとに扱わない判定の欠陥は残ります。

出題範囲:CCAR-F 分野1「エージェント設計と調整」・項目1.1 エージェントループの設計と実装

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

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