翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Bedrock Agents の仕組み
Amazon Bedrock Agents は、エージェントのセットアップと実行に役立つ以下の 2 つの主要なAPIオペレーションセットで構成されています。
-
エージェントとその関連リソースを作成、設定、管理するビルドタイムAPIオペレーション
-
ユーザー入力を使用してエージェントを呼び出し、タスクを実行するためのオーケストレーションを開始するランタイムAPIオペレーション。
ビルド時間の設定
エージェントは次のコンポーネントで構成されています。
-
基盤モデル – オーケストレーションプロセスで、エージェントがユーザー入力と後続のプロンプトを解釈するために呼び出す基盤モデル (FM) を選択します。エージェントは FM を呼び出して、プロセスのレスポンスとフォローアップステップを生成します。
-
手順 – エージェントが何をするように設計されているかを説明する手順を記述します。高度なプロンプトを使用すると、オーケストレーションの各ステップでエージェントの指示をさらにカスタマイズし、各ステップの出力を解析する Lambda 関数を含めることができます。
-
次のいずれか。
-
アクショングループ – 次のリソースを提供することで、エージェントがユーザーに対して実行するアクションを定義します。
-
エージェントがユーザーから引き出す必要があるパラメータを定義するために、次のいずれかのスキーマ (各アクショングループは異なるスキーマを使用できます)。
-
An OpenAPI エージェントがタスクを実行するために呼び出すことができるAPIオペレーションを定義するスキーマ。- OpenAPI スキーマには、ユーザーから引き出す必要があるパラメータが含まれます。
-
エージェントがユーザーから引き出すことができるパラメータを定義する関数詳細スキーマ。これらのパラメータは、エージェントによる詳細なオーケストレーションに使用することも、独自のアプリケーションでの使用方法を設定することもできます。
-
-
(オプション) 次の入力と出力を持つ Lambda 関数。
-
Input – オーケストレーション中に識別されるAPIオペレーションやパラメータ。
-
出力 — API呼び出しからのレスポンス
-
-
-
ナレッジベース – ナレッジベースをエージェントに関連付けます。エージェントは、追加のコンテキストについてナレッジベースにクエリを実行して、レスポンスの生成とオーケストレーションプロセスのステップへの入力を強化します。
-
-
プロンプトテンプレート — プロンプトテンプレートは、FM に提供するプロンプトを作成する基礎です。Amazon Bedrock Agents は、前処理、オーケストレーション、ナレッジベースのレスポンス生成、後処理中に使用されるデフォルトの 4 つの基本プロンプトテンプレートを公開します。オプションで、これらのベースプロンプトテンプレートを編集して、シーケンスの各ステップでのエージェントの動作をカスタマイズできます。トラブルシューティングの目的で、またはステップが不要であると判断した場合は、ステップをオフにすることもできます。詳細については、「Amazon Bedrock の高度なプロンプトテンプレートを使用してエージェントの精度を向上させる」を参照してください。
ビルド時に、これらのすべてのコンポーネントが収集され、ユーザーリクエストが完了するまでエージェントがオーケストレーションを実行するための基本プロンプトが作成されます。詳細プロンプトでは、追加のロジックやいくつかのサンプルを追加して基本プロンプトを変更し、エージェント呼び出しの各ステップの正解率を向上させることができます。基本プロンプトテンプレートには、手順、アクションの説明、ナレッジベースの説明、会話履歴が含まれており、これらはすべてカスタマイズしてニーズに合わせてエージェントを変更できます。次に、エージェントを準備します。エージェントは、セキュリティ設定を含むエージェントのすべてのコンポーネントをパッケージ化します。エージェントを準備すると、実行時にテストできる状態になります。次の図は、ビルドタイムAPIオペレーションがエージェントを構築する方法を示しています。
ランタイムプロセス
ランタイムは によって管理されます。 InvokeAgent API オペレーション。このオペレーションは、次の 3 つの主要なステップで構成されるエージェントシーケンスを開始します。
-
前処理 — エージェントがユーザー入力をコンテキスト化および分類する方法を管理し、入力の検証に使用できます。
-
オーケストレーション — ユーザー入力を解釈し、アクショングループを呼び出してナレッジベースをクエリし、出力をユーザーに返すか、継続的なオーケストレーションへの入力として返します。オーケストレーションは次のステップで構成されます。
-
エージェントが入力を基盤モデルで解釈し、次に取るべきステップのロジックを説明する理論的根拠を生成します。
-
エージェントは、アクショングループ内のどのアクションを呼び出すか、どのナレッジベースをクエリするかを予測します。
-
エージェントがアクションを呼び出す必要があると予測した場合、エージェントはユーザープロンプトから決定されたパラメータをアクショングループに設定された Lambda 関数に送信するか、 でパラメータを送信してコントロールを返します。 InvokeAgent レスポンス。エージェントにアクションを呼び出すのに十分な情報がない場合は、次のいずれかのアクションを実行できます。
-
関連するナレッジベース (ナレッジベースのレスポンス生成) をクエリして追加のコンテキストを取得し、データを要約して生成を強化します。
-
アクションに必要なすべてのパラメータを収集するためにユーザーをリプロンプトします。
-
-
エージェントは、アクションを呼び出したり、ナレッジベースから結果を要約したりすることで、観測 と呼ばれる出力を生成します。エージェントはオブザベーションを使用してベースプロンプトを補足し、それを基盤モデルで解釈します。次に、エージェントはオーケストレーションプロセスを繰り返す必要があるかどうかを判断します。
-
このループは、エージェントがユーザーにレスポンスを返すか、ユーザーに追加情報の入力を求める必要があるまで続きます。
オーケストレーション中、ベースプロンプトテンプレートは、エージェントに追加したエージェントの指示、アクショングループ、ナレッジベースで強化されます。次に、拡張ベースプロンプトを使用して FM を呼び出します。FM は、ユーザー入力を満たすための最良のステップと軌道を予測します。オーケストレーションを繰り返すたびに、FM は呼び出すAPIオペレーションまたはクエリするナレッジベースを予測します。
-
-
後処理 — エージェントは最終レスポンスをフォーマットしてユーザーに戻します。このステップはデフォルトでオフに設定されています。
エージェントを呼び出すと、実行時にトレースを有効にできます。トレースを使用すると、エージェントシーケンスの各ステップでエージェントの理論的根拠、アクション、クエリ、観察結果を追跡できます。トレースには、各ステップで基盤モデルに送信された完全なプロンプトと、基盤モデル、APIレスポンス、ナレッジベースクエリからの出力が含まれます。トレースを使用して、各ステップにおけるエージェントの推論を理解できます。詳細については、「トレースを使用してエージェントの step-by-step 推論プロセスを追跡する」を参照してください
エージェントとのユーザーセッションがより多くのInvokeAgent
リクエストを続行すると、会話履歴は保持されます。会話履歴は、オーケストレーションベースプロンプトテンプレートをコンテキストで継続的に強化し、エージェントの精度とパフォーマンスを向上させます。次の図は、ランタイム中のエージェントのプロセスを示しています。