[アップデート] Amazon Bedrock Flows が複数ターンの会話をサポートしました
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
Amazon Bedrock Flows が複数ターンの会話をサポートしました。
Amazon Bedrock Agents を利用しているケースでは、初回のユーザーからの入力が Agents のアクションを実行するために必要な情報を満たせないケースがあります。このケースにおいて Amazon Bedrock Agents ではユーザー入力を利用して不足した情報を再度ユーザーに問い合わせることができます。
今まで、Amazon Bedrock Flows を経由した場合、このユーザー入力が正しく利用できなかったのですが、今回の複数ターンの会話サポートにより双方向の会話をサポートしました。
AWS Blog ではフロー図が用意されていました。Agent ノードを続行する際に、ユーザーからの説明や追加のコンテキストが必要な場合、フローを一時停止し、ユーザー固有の情報を要求するようです。また、 executionId
を利用して会話の続きを保つような仕組みになりました。
Introducing multi-turn conversation with an agent node for Amazon Bedrock Flows (preview) より画像引用
やってみる
それでは実際にやってみましょう。
Agents や IAM 周りは Terraform で作成します。コードは以下に格納しています。
ユーザー入力
ユーザー入力が利用できるように Agents を変更します。編集画面から、ユーザー入力を受け付けるよう設定変更を行います。
準備を押して、ユーザー入力を ENABLED に変更します。
テストを行うと、確かに追加の情報を求められますね。
フローの作成
それではフローの作成を行います。今回はシンプルにユーザーからのインプットを、エージェントに渡す、シンプルなフローを作成してみました。
フローを実行してみます。Execution ID が付与され、会話がスタートしていますね。
必要な情報も求められています。
API での実装
API での実装パターンも、以下のドキュメントに記載がありました。
executionId
を含めて、リクエストを送りなおすよう、明記されていますね。
Send the user response back to the flow by calling the InvokeFlow operation again. Be sure to include the executionIdfor the conversation.
{
"flowIdentifier": "AUS7BMHXBE",
"flowAliasIdentifier": "4KUDB8VBEF",
"executionId": "b6450554-f8cc-4934-bf46-f66ed89b60a0",
"inputs": [
{
"content": {
"document": "1. 5 songs 2. Welsh rock music 3. Castles"
},
"nodeName": "AgentsNode_1",
"nodeInputName": "agentInputText"
}
]
}
まとめ
以上、簡単ではありますが「Amazon Bedrock Flows が複数ターンの会話をサポートしました。」でした。非常に少ないコード量で、この辺りのフローを制御できるのは、とても嬉しいですね。
AWS Blog では複数エージェントを掛け合わせるような実装が紹介されており、合わせてご覧になると良いかと思いました。
このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!