Azure認定資格 WEB問題集&徹底解説

AI-901:Microsoft Azure AI Fundamentals

正解 D問題
分野2:Microsoft Foundry を使用して AI ソリューションを実装する タスクステートメント2.1:Foundry を使用して生成型 AI アプリとエージェントを実装する
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
旅行会社が、ツアーの問い合わせに答えるエージェントを Foundry Agent Service で用意しました。Web アプリは最初の質問のときに会話(conversation)を作成し、その会話を指定して応答を生成しています。

利用者が続けて「その日程で空きはありますか」と尋ねたときの 2 回目の呼び出しを実装します。アプリ側では過去のやり取りを保存・再構成しない方針です。

2 回目の呼び出しとして最も適切なものはどれですか。
  • アプリ側で保存しておいた 1 回目の質問と回答を今回の質問と一緒に並べ、すべてを入力として送る
  • 1 回目の回答内容をエージェントの指示文(instructions)に追記して新しいバージョンを作成してから、今回の質問を送る
  • 2 回目以降はモデル デプロイを直接呼び出すチャット補完 API に切り替え、今回の質問だけを送る
  • 1 回目と同じ会話を指定し、今回の質問だけを入力として送る
解説 頻出度★★★★★
この問題は、「会話は 1 回目で作成済み」×「アプリ側で履歴を保存・再構成しない」という条件から、2 回目は同じ会話を指定して今回の質問だけを送れば、サービス側の履歴で文脈が引き継がれると判断できるかがポイント

A. アプリ側で保存しておいた 1 回目の質問と回答を今回の質問と一緒に並べ、すべてを入力として送る

過去の質問と回答を並べて毎回すべて送る方式は、会話を使わない場合に文脈を持たせる手法としては成り立ちます。
しかし本問は「アプリ側では過去のやり取りを保存・再構成しない方針」と明示されており、1 回目の質問と回答をアプリで保存して並べ直す時点でこの方針に反します。
既に会話で履歴が保持されているため、送り直す必要もありません。

B. 1 回目の回答内容をエージェントの指示文(instructions)に追記して新しいバージョンを作成してから、今回の質問を送る

指示文(instructions)は、エージェントの全利用者に共通する振る舞いを定める定義です。
ある利用者との 1 回目の回答を書き込んで新しいバージョンを作ると、その内容が他の利用者の応答にまで影響してしまいます。
個々のやり取りの文脈を引き継ぐ手段として不適切であり、ターンのたびにエージェントを更新する運用も現実的ではありません。

C. 2 回目以降はモデル デプロイを直接呼び出すチャット補完 API に切り替え、今回の質問だけを送る

モデル デプロイのチャット補完 API を直接呼び出すと、エージェントも会話も経由しない呼び出しになります。
今回の質問だけを送れば、モデルは 1 回目のやり取りを知らないため「その日程」が何を指すか分からず、エージェントの指示文やツールも使われません。
文脈の引き継ぎという目的を自ら放棄する実装です。

正解

D. 1 回目と同じ会話を指定し、今回の質問だけを入力として送る

Foundry Agent Service の会話(conversation)は、やり取りの履歴をサービス側に保持しています。
2 回目の呼び出しで1 回目と同じ会話を指定し、今回の質問だけを入力として送ると、エージェントは会話に残る 1 回目の質問と回答を踏まえて「その日程」を解釈し、回答します。
アプリ側で履歴を保存・再構成しない方針とも両立するため、これが正解です。

構成図

Web アプリ(履歴は保存しない)
  │ (1) 会話を作成 ─────────────────────▶ 会話(conversation)
  │ (2) 会話 ID + 1 回目の質問 ────────▶ エージェント ── 質問と回答を会話に記録
  │ (3) 同じ会話 ID + 今回の質問だけ ──▶ エージェント
  │                                        │ 会話に残る 1 回目のやり取りを参照
  ◀──────── 「その日程」を文脈で解釈して回答 ┘
これだけ覚える(記憶フック)
2 ターン目は「同じ会話 ID +今回の質問だけ」。履歴は会話がサービス側で保持している。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
アプリ側では過去のやり取りを保存・再構成しない 1 回目の質問と回答をアプリで保存して並べ直す方式は、方針に正面から反する
→選択肢(A)を消す
利用者の「その日程」は 1 回目の話題を指している 文脈を持たないチャット補完 API の直接呼び出しでは、何の日程か解釈できない
→選択肢(C)を消す
1 人の利用者とのやり取りの文脈を引き継ぎたい 指示文は全利用者共通の定義。個別のやり取りを書き込む場所ではない
→選択肢(B)を消す
1 回目の呼び出しで会話を作成済み 会話が履歴を保持しているので、同じ会話を指定して今回の質問だけを送れば文脈が引き継がれる
→選択肢(D)が正解
ひっかけポイント
  • 選択肢 A は会話機能を使わない場合の定番手法なので正解に見えやすい。問題文の「アプリ側では保存・再構成しない方針」という条件を読み落とすと選んでしまう
  • 選択肢 D の「今回の質問だけ」を見て「それでは前の文脈が伝わらない」と不安になりがち。文脈は会話 ID を通じてサービス側が補うのが会話を使う意味である
  • 選択肢 C は「2 回目以降は軽い API で十分」という最適化に見せかけた誤り。エージェントも会話も外れるため、文脈も指示文も失われる
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「会話を使わず、アプリ側で履歴を管理する方針」 過去の質問と回答を入力にまとめて毎回送る方式(本問の A)が正解側に回る。
「別の利用者から新しい問い合わせが来た」 その利用者用に新しい会話を作成して応答を生成するのが正解。
「すべての利用者に対して、回答の最後に予約ページを案内させたい」 全員共通の振る舞いなので指示文(instructions)の更新が正解軸に(本問の B が扱う領域)。
「会話にメッセージを追加したのに回答が返らない」 会話を指定して responses.create を呼ぶ処理が不足していることを疑う。
関連サービスの解説 Microsoft Foundry
Foundry Agent Service
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
同じ会話を指定したフォローアップ質問(複数ターンの会話) クイック スタート: プロンプト エージェントを作成する
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 40%
No.11 解説
旅行会社が、ツアーの問い合わせに答えるエージェントを Foundry Agent Service で用意しました。Web アプリは最初の質問のときに会話(conversation)を作成し、その会話を指定して応答を生成しています。

利用者が続けて「その日程で空きはありますか」と尋ねたときの 2 回目の呼び出しを実装します。アプリ側では過去のやり取りを保存・再構成しない方針です。

2 回目の呼び出しとして最も適切なものはどれですか。
  • アプリ側で保存しておいた 1 回目の質問と回答を今回の質問と一緒に並べ、すべてを入力として送る
  • 1 回目の回答内容をエージェントの指示文(instructions)に追記して新しいバージョンを作成してから、今回の質問を送る
  • 2 回目以降はモデル デプロイを直接呼び出すチャット補完 API に切り替え、今回の質問だけを送る
  • 1 回目と同じ会話を指定し、今回の質問だけを入力として送る

(会員限定)当問題の評価をお願いします。改善に活用します。