[アップデート] Amazon Bedrock Flows が複数ターンの会話をサポートしました

[アップデート] Amazon Bedrock Flows が複数ターンの会話をサポートしました

Clock Icon2025.01.26

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

Amazon Bedrock Flows が複数ターンの会話をサポートしました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/01/amazon-bedrock-flows-multi-turn-conversation-support/

Amazon Bedrock Agents を利用しているケースでは、初回のユーザーからの入力が Agents のアクションを実行するために必要な情報を満たせないケースがあります。このケースにおいて Amazon Bedrock Agents ではユーザー入力を利用して不足した情報を再度ユーザーに問い合わせることができます。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/agents-enable-user-input.html

今まで、Amazon Bedrock Flows を経由した場合、このユーザー入力が正しく利用できなかったのですが、今回の複数ターンの会話サポートにより双方向の会話をサポートしました。

AWS Blog ではフロー図が用意されていました。Agent ノードを続行する際に、ユーザーからの説明や追加のコンテキストが必要な場合、フローを一時停止し、ユーザー固有の情報を要求するようです。また、 executionId を利用して会話の続きを保つような仕組みになりました。


Introducing multi-turn conversation with an agent node for Amazon Bedrock Flows (preview) より画像引用

やってみる

それでは実際にやってみましょう。

Agents や IAM 周りは Terraform で作成します。コードは以下に格納しています。

https://github.com/takakuni-classmethod/genai-blog/tree/main/flow_agents_multi_turn

ユーザー入力

ユーザー入力が利用できるように Agents を変更します。編集画面から、ユーザー入力を受け付けるよう設定変更を行います。

2025-01-26 at 01.36.24-Amazon Bedrock  us-west-2-1.png

準備を押して、ユーザー入力を ENABLED に変更します。

2025-01-26 at 02.48.37-Amazon Bedrock  us-west-2.png

テストを行うと、確かに追加の情報を求められますね。

2025-01-26 at 01.44.58-Amazon Bedrock  us-west-2.png

フローの作成

それではフローの作成を行います。今回はシンプルにユーザーからのインプットを、エージェントに渡す、シンプルなフローを作成してみました。

2025-01-26 at 01.46.25-Amazon Bedrock  us-west-2.png

フローを実行してみます。Execution ID が付与され、会話がスタートしていますね。

必要な情報も求められています。

2025-01-26 at 02.58.46-Amazon Bedrock  us-west-2 2.png

API での実装

API での実装パターンも、以下のドキュメントに記載がありました。

https://docs.aws.amazon.com/bedrock/latest/userguide/flows-multi-turn-invocation.html

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 では複数エージェントを掛け合わせるような実装が紹介されており、合わせてご覧になると良いかと思いました。

https://aws.amazon.com/jp/blogs/machine-learning/introducing-multi-turn-conversation-with-an-agent-node-for-amazon-bedrock-flows-preview/

このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.