CCAR-F 練習問題 2
シナリオ:開発者の生産性向上
Claude Agent SDK で、慣れないコードベースの調査、レガシーシステムの理解、定型コードの生成、繰り返し作業の自動化を支援するエージェントを作っています。組み込みツール(Read・Write・Edit・Bash・Grep・Glob)と MCP サーバーを併用します。
コードベースの調査を支援する自作エージェントで、モデルが Grep を要求するたびにアプリ側で実行し、結果をログファイルに保存しています。次のリクエストには元の質問と直前のアシスタント応答だけを送っているため、モデルは同じ Grep を何度も要求し、最後は回数上限の20回で打ち切られます。根本的な修正はどれですか。
選択肢を押して回答
正解と解説
正解:D
ツール結果を tool_result として会話履歴に追加することで、モデルは新しい情報を踏まえて次の行動を選べます(ガイド1.1)。アプリ側のログはモデルからは見えません。
結果が履歴に入らない限り、何回呼んでもモデルは同じ情報不足の状態に置かれます。上限を上げても費用と時間が増えるだけです。
情報は届きますが、どの tool_use に対する結果かという対応が失われ、ツール呼び出しの会話形式から外れます。毎回システムプロンプトが変わるため、プロンプトキャッシュも効きにくくなります。
重複呼び出しという症状は抑えられますが、原因である結果の未返却は残ります。モデルは必要な情報を得られないまま、別の検索を試し続けます。
モデルはツール結果を会話履歴から読み、次の行動を決めます。結果が履歴に返らなければ、モデルから見て検索は一度も成功していません。tool_result は直前の tool_use に対応する ID で返します。
出題範囲:CCAR-F 分野1「エージェント設計と調整」・項目1.1 エージェントループの設計と実装
参考資料(公式ドキュメント)
公開資料をもとにした独自解説です。本番の問題・難易度・合否を再現するものではありません。
