無限ノック › AIP 練習問題一覧 › 問題
AIPテスト、検証、トラブルシューティング

ある人材マッチングプラットフォームが、Amazon Bedrock Agentsを使って求職者向けのキャリアアドバイスエージェントを構築しています。エージェントには以下の2つの要件があります: ①求職者の職種カテゴリ(エンジニア/デザイナー/マーケターなど)に応じて、システムプロンプト内のアドバイスのトーンや専門用語を動的に変える、 ②アクショングループのLambda関数が求職者のユーザーIDを参照して、適切な求人データベースに対してクエリを実行する。これらの要件を同時に満たすため、InvokeAgent API呼び出し時のsessionStateパラメータをどのように設定すべきですか?

A
職種カテゴリをpromptSessionAttributesに、ユーザーIDをsessionAttributesに設定する
✓ 正解
promptSessionAttributesは$prompt_session_attributes$プレースホルダーでシステムプロンプトに展開でき職種カテゴリのトーン変更(要件①)に適します。userIDはセッション全体で安定するためsessionAttributesに置き、Lambdaのinput eventから参照してDBクエリ(要件②)に利用できます。
B
職種カテゴリをsessionAttributesに、ユーザーIDをpromptSessionAttributesに設定する
sessionAttributesはプロンプトテンプレートのプレースホルダーで参照できないため、職種カテゴリをここに置くとシステムプロンプトの動的変更(要件①)が実現できません。またuserIDをpromptSessionAttributesに置くとプロンプトに不要に露出します。
C
職種カテゴリとユーザーIDの両方をpromptSessionAttributesに設定する
promptSessionAttributesもLambdaのinput eventに渡るため要件②自体は満たせますが、userIDが不要にシステムプロンプトへ露出し、ターン単位でしか保持されません。セッション全体で安定するuserIDはsessionAttributesが適切で最適ではありません。
D
職種カテゴリとユーザーIDの両方をsessionAttributesに設定する
sessionAttributesはLambdaから参照できますが、プロンプトテンプレートのプレースホルダーで展開できないため、職種カテゴリによるシステムプロンプトの動的変更(要件①)を実現できません。

解説

正解: 職種カテゴリをpromptSessionAttributesに、ユーザーIDをsessionAttributesに設定する。 Amazon Bedrock AgentsのsessionStateには用途の異なる2種類の属性があります。 promptSessionAttributesはエージェントのプロンプトテンプレート(システムプロンプト)内の$prompt_session_attributes$プレースホルダーを通じて参照でき、プロンプトの内容をリクエスト(ターン)ごとに動的にカスタマイズするために使用します。職種カテゴリのようにシステムプロンプトのトーンや専門用語を変えたい場合はpromptSessionAttributesが適切です(sessionAttributesはプロンプトテンプレートのプレースホルダーで展開できません)。 一方、sessionAttributesはセッション全体で永続する属性で、Lambda関数のinput eventからevent['sessionAttributes']['userId']のように参照できます。ユーザーIDはセッション中安定して使われるため、sessionAttributesに置くのが適切です。 選択肢Bは、職種カテゴリをsessionAttributesに置くとプロンプトテンプレートのプレースホルダーで参照できず、システムプロンプトの動的変更(要件①)が実現できません。またユーザーIDをpromptSessionAttributesに置くとシステムプロンプトに不要に露出します。 選択肢Cは、promptSessionAttributesもLambdaのinput eventに渡るため要件②自体は満たせますが、ユーザーIDが不要にシステムプロンプトへ露出し、かつpromptSessionAttributesはターン単位でしか保持されません。セッション全体で安定して使うユーザーIDはsessionAttributesに置くのが適切で、Cは最適ではありません。 選択肢Dは、両方sessionAttributesに置くとLambdaへの受け渡しは可能ですが、sessionAttributesはプロンプトテンプレートのプレースホルダーで展開できないため、システムプロンプトの動的変更(要件①)を実現できません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでAIPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← AIP の問題一覧に戻る