AIP実装と統合
あるEC(電子商取引)企業は、Amazon Bedrock Agentを使った注文管理ボットを構築しています。顧客が高額商品の返金をリクエストした場合、エージェントは処理の前に人間のマネージャーによる承認を必要とします。承認プロセスは非同期で、数時間かかる場合があります。エージェントが処理を一時停止し、承認後にセッションの文脈を維持したまま処理を再開できる、最も適切なアーキテクチャはどれですか?
AアクショングループのLambda関数からSNSで承認依頼を送信し、承認完了まで同一Lambda実行内でDynamoDBをポーリングして待機するよう設定する
Lambdaの最大実行タイムアウトは15分であり、数時間に及ぶ人間の承認待ちをLambda内ポーリングで実装することは技術的に不可能です。SNS通知で承認依頼を送ること自体は有効ですが、タイムアウト制約が致命的な欠点となります。
Bアクショングループに「Return of Control(制御の返却)」を設定し、制御を呼び出し元アプリに返す。アプリ側で承認を完了させた後、同一sessionIdにActionResultを含めてInvokeAgentを再呼び出しする
✓ 正解
Return of Controlにより、エージェントが処理を一時停止して制御を呼び出し元に返し、アプリ側で非同期承認を処理した後、同一sessionIdで再Invokeすることで会話文脈を維持したまま長時間の非同期処理を実現できます。
CAWS Step Functions Standard Workflowで人間承認ステップを実装し、承認完了後に新しいsessionIdを生成してInvokeAgent APIでエージェントを再起動する
Step Functions Standard Workflowは人間承認の非同期待機に適していますが、承認後に新規セッションでInvokeAgentを呼び出すと会話履歴と処理文脈が失われ、エージェントが以前の状態を引き継げません。
DBedrock AgentsのSession Attributesに承認待ち状態を格納し、Amazon EventBridgeルールで一定間隔ごとにInvokeAgentを自動実行して状態を確認する
Session Attributesはリクエスト間のメタデータを受け渡す仕組みであり、複雑な承認状態管理には不適切です。EventBridgeによる定期実行は承認完了タイミングと一致しないため、不必要なAPI呼び出しが発生します。
解説
Return of Control(RoC)はBedrock Agentsの機能で、アクショングループをLambda関数ではなくアプリケーション側で処理する方式です。エージェントはアクション詳細をレスポンスとして返却し、アプリが非同期処理(人間承認など)を完了させた後、同一sessionIdにActionResultを含めて再Invokeします。これによりセッション文脈(会話履歴・状態)を維持したまま長時間の非同期処理を実現できます。
選択肢Aは、Lambdaのタイムアウト上限(最大15分)により数時間に及ぶ承認待ちを実装できません。SNS通知は可能ですが、Lambda内でのポーリング待機は時間的制約により機能しません。
選択肢Cは、Step Functionsで承認を管理できますが、新規セッションでInvokeAgentを呼び出すため会話文脈が失われ、エージェントが以前の処理状況を引き継げません。
選択肢Dは、Session Attributesはメタデータ受け渡し用途であり状態管理には適さず、EventBridgeによる定期自動実行は承認完了タイミングと合致しないため不適切です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでAIPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →