View a markdown version of this page

コネクタターゲットとしての Amazon Bedrock マネージドナレッジベース - Amazon Bedrock AgentCore

コネクタターゲットとしての Amazon Bedrock マネージドナレッジベース

Amazon Bedrock マネージドナレッジベースは、完全マネージド型の取り出し拡張生成 (RAG) を提供します。Amazon Bedrock はベクトルストア、データ取り込み、取り出しの最適化を処理するため、プロビジョニングや運用のための取り出しインフラストラクチャはありません。Amazon Bedrock AgentCore はマネージドナレッジベースをネイティブゲートウェイコネクタとして公開します。AgentCoreゲートウェイにアタッチすると、エージェントは標準モデルコンテキストプロトコル (MCP) 呼び出しで検出してクエリを実行します。構築するカスタム取得統合はありません。マネージドナレッジベースの作成と管理の詳細については、「Amazon Bedrock ユーザーガイド」の「Amazon Bedrock のナレッジベース」を参照してください。

コネクタは 2 つのツールを公開します。1 つ目は ですAgenticRetrieveStream。単一の検索の代わりに、取得戦略を計画し、マネージドナレッジベース全体で複数の取得ステップを実行し、オプションで完全なドキュメントに拡張し、サポート結果と合成された引用ベースの回答の両方をストリーミングバックします。 は単一のハイブリッド検索Retrieveを実行し、最も関連性の高いパッセージを返します。

注記

このコネクタは、Amazon Bedrock マネージドナレッジベースでのみサポートされています。

以下のセクションでは、コネクタの仕組み、詳細なエージェント検索、一般的なユースケース、ターゲットの設定方法、両方のツールの入力スキーマとレスポンススキーマについて説明します。

仕組み

Amazon Bedrock AgentCore は、Amazon Bedrock マネージドナレッジベースへの組み込みコネクタを提供します。Gateway は、スキーマ管理、エンドポイント解決、サービス認証を処理します。コネクタは、エージェントが で検出する 2 つのツールを公開しますtools/list

  • AgenticRetrieveStream — 結果を返すマルチステップのストリーミングエージェント取り出し、トレースイベントの計画と取り出し、および引用を含む合成された回答 (デフォルトでは返され、 では無効generateResponse: false)。

  • Retrieve — ソース参照を含む最も関連性の高いパッセージを返す単一のハイブリッド検索。

1 回のRetrieve呼び出しはこのフローに従います。

  1. ゲートウェイのセットアップ — ゲートウェイを作成し、公開するマネージドナレッジベースを参照しながら、Amazon Bedrock マネージドナレッジベースターゲットを追加します。Gateway はツールスキーマをスナップショットし、統合をプロビジョニングします。

  2. ツール検出 — エージェントは Gateway エンドポイントtools/listで を呼び出し、入力スキーマを使用して取得ツールを検出します。

  3. 取得呼び出し — エージェントが自然言語クエリtools/callを使用して を呼び出します。Gateway はバックエンドに認証し、リクエストをマネージドナレッジベースにルーティングします。マネージドナレッジベースは、取り込まれたコンテンツ全体でハイブリッド検索を実行します。

  4. 結果 — ツールは、ツール結果のテキストコンテンツ内でソース参照を JSON として最も関連性の高いパッセージを返します。

  5. Grounded Response — エージェントは結果を使用して、引用されたソースでレスポンスを作成します。

エージェント取り出しフローについては、「エージェント取り出し」を参照してください。

エージェントの取得

AgenticRetrieveStream は質問をタスクとして扱います。1 つのクエリに対してRetrieve実行される単一のハイブリッド検索の代わりに、取得戦略を計画し、マネージドナレッジベース全体で複数の取得ステップを実行し、サポート結果と合成された引用ベースの回答をストリーミングバックします。これらはすべて 1 回のツール呼び出しで行われます。合成された回答はデフォルトで返されます。 generateResponseは結果のみを返すfalseように設定されます。

エージェントは会話 () で呼び出しますmessages。クエリを実行するリトリーバーは、それぞれがマネージドナレッジベースを指し、エージェントから提供されるのではなく、ターゲットの管理者が設定します。として MCP 経由で進行状況ストリームを計画および取得しnotifications/message、結果と回答がツール結果に返されます。

エージェント取り出しの仕組みの詳細については、「Amazon Bedrock ユーザーガイド」の「Amazon Bedrock のナレッジベース」を参照してください。

リクエストスキーマとイベントスキーマについては、AgenticRetrieveStream 入力スキーマ」とAgenticRetrieveStream レスポンス形式」を参照してください。

ユースケース

  • エンタープライズナレッジアシスタント — マネージドナレッジベースに取り込まれた内部 Wiki、ランブック、ポリシードキュメントのエージェントレスポンスをグラウンドします。

  • ドキュメント Q&A — ベクトルストアを構築または運用することなく、大規模なドキュメントコレクションに関する質問に回答します。

  • マルチソース RAG — 1 回の取り出し呼び出しで、複数のデータソースのコンテンツを 1 つのマネージドナレッジベースにまとめたクエリを実行します。

  • 複数ステップ計画AgenticRetrieveStreamを使用して、計画と複数の取得ステップを必要とする複数部分またはあいまいな質問に答え、合成された引用ベースの回答を 1 回の呼び出しで返します。

  • ツール拡張エージェント — マネージドナレッジベースの取得を他の Gateway ツールと組み合わせることで、エージェントは根拠のある事実を検索し、アクションを実行できます。

マネージドナレッジベースを設定する

Python SDK と CLI を使用したセットアップ例など、Amazon Bedrock Managed Knowledge Bases コネクタ設定でゲートウェイターゲットを作成する方法については、ターゲット設定ガイドの「マネージドナレッジベースのセットアップ」を参照してください。

Gateway サービスロールを設定する

Gateway には、AgentCoreサービスがユーザーに代わってマネージドナレッジベースで取得アクションを実行できるようにするサービスロールが必要です。必要な IAM アクセス許可とポリシー設定については、ターゲット設定ガイドの「ゲートウェイサービスロールの設定」を参照してください。

ツールを呼び出す

ターゲットを作成すると、エージェントは でツールを検出tools/listし、 で呼び出しますtools/call。各ツール名には、 <target-name>_<tool-name>_AgenticRetrieveStreamまたは の形式でターゲット名のプレフィックスが付けられますmanaged-kb___Retrieve)。

の場合AgenticRetrieveStream、エージェントは会話のみを渡します。リトリーバーは管理者によってターゲットに設定されるため、エージェントはナレッジベース IDsを送信しません。

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___AgenticRetrieveStream", "arguments": { "messages": [ { "role": "user", "content": { "text": "How do I configure a knowledge base target?" } } ] } } }

の場合Retrieve、マネージドナレッジベース識別子はターゲットにバインドされるため、エージェントはクエリのみを渡します。

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___Retrieve", "arguments": { "retrievalQuery": { "text": "What is Amazon Bedrock AgentCore?" } } } }

取得パラメータをエージェントに公開した場合 (「エージェントが設定できるパラメータを制御する」を参照)、エージェントは通話時に管理者設定のデフォルトを上書きできます。

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "managed-kb___Retrieve", "arguments": { "retrievalQuery": { "text": "insurance benefits" }, "retrievalConfiguration": { "managedSearchConfiguration": { "numberOfResults": 2 } } } } }

AgenticRetrieveStream 入力スキーマ

によって返されるスキーマtools/listは、エージェントが を呼び出すときに設定できる一連のフィールドですAgenticRetrieveStream。デフォルトでは、エージェントに表示されるフィールドは のみですmessages。クエリするリトリーバーとすべての取得設定は、ターゲットに管理者が設定します。「マネージドナレッジベースを設定する」を参照してください。さらに多くのフィールドをエージェントに公開するには、ターゲットparameterOverridesで を設定します。「エージェントが設定できるパラメータを制御する」を参照してください。

{ "type": "object", "properties": { "messages": { "description": "The messages for the agentic retrieval conversation. Contains the user query and conversation history.", "type": "array", "items": { "type": "object", "properties": { "role": { "description": "The role of the message sender (user or assistant).", "type": "string", "enum": ["user", "assistant"] }, "content": { "description": "The content of the message.", "type": "object", "properties": { "text": { "description": "The text content of the message.", "type": "string" } } } }, "required": ["content", "role"] } } }, "required": ["messages"] }
フィールド Type 必須 説明

messages

array

はい

エージェント取り出しの会話。各メッセージには role (user または assistant) と がありますcontent.text

管理者セットフィールド — retrieversagenticRetrieveConfiguration (基盤モデル、 による再ランク付け、maxAgentIteration、ガードレールpolicyConfiguration) および generateResponse — については、「マネージドナレッジベースのセットアップ」および「設定リファレンス」を参照してください。

AgenticRetrieveStream レスポンス形式

AgenticRetrieveStream は一連のイベントをストリーミングします。MCP では、トレースイベントはリアルタイムの進行notifications/message状況に応じて として配信され、取得結果と合成された回答はツール結果で配信されます。ストリームは次のイベントタイプを出力します。

[Event] (イベント) 説明

traceEvent

(、Planning、、または FullDocumentExpansion)、 step (statusIN_PROGRESSSUCCEEDED、または FAILED)RetrievalSpeculativeRetrieval、人間が読み取り可能な messageactions取得された 、および任意の warningsまたは を含む計画または取得ステップfailures

responseEvent

生成された回答テキストのチャンク。デフォルトで出力されます。 generateResponse が に設定されている場合にのみ抑制されますfalse

result

取得resultsと、 generateResponseが に設定されていない限りfalse、回答と引用generatedResponseを含む最後の 。

result イベントには次の構造があります。

{ "result": { "results": [ { "content": { "text": "Amazon Bedrock AgentCore manages the storage, indexing, and retrieval infrastructure for a managed knowledge base...", "mimeType": "text/plain" }, "sourceRetriever": { "identifier": "kb-retriever-1" }, "metadata": { "x-amz-bedrock-kb-source-uri": "s3://example-bucket/docs/overview.pdf" } } ], "generatedResponse": { "answer": "A managed knowledge base lets Amazon Bedrock AgentCore handle the vector store, ingestion, and retrieval for you.", "citations": [ { "startIndex": 0, "endIndex": 98, "references": [ { "..." : "references to supporting results" } ] } ] } } }
フィールド Type 必須 説明

results

array

はい

取得結果。各項目にはcontent、 ( textまたは byteContentmimeType)、それを生成sourceRetrieverした 、およびオプションの がありますmetadata

generatedResponse

オブジェクト

いいえ

デフォルトでは存在します。generateResponse が に設定されている場合にのみ省略されますfalse。回答スパン (startIndexendIndex) をサポート結果にマッピングcitationsする、合成された answerと が含まれます。

nextToken

string

いいえ

次の結果のセットを取得するためのトークン。

入力スキーマを取得する

によって返されるスキーマtools/listは、エージェントが を呼び出すときに設定できる一連のフィールドですRetrieve。デフォルトでは、エージェントに表示されるフィールドは のみですretrievalQuery.text。マネージドナレッジベース識別子とすべての取得設定は、ターゲットに管理者が設定します。numberOfResults やメタデータなどの取得設定をエージェントfilterに公開するには、ターゲットparameterOverridesで を設定します。「エージェントが設定できるパラメータを制御する」を参照してください。

{ "type": "object", "properties": { "retrievalQuery": { "description": "Contains the query to send the managed knowledge base.", "type": "object", "properties": { "text": { "description": "The text of the query made to the managed knowledge base.", "type": "string" } } } }, "required": ["retrievalQuery"] }
フィールド Type 必須 説明

retrievalQuery

オブジェクト

はい

マネージドナレッジベースに送信するクエリ。

retrievalQuery.text

string

はい

クエリのテキスト。

管理者設定フィールドと上書き可能なフィールド — numberOfResults、メタデータ filteroverrideSearchType、再ランク付け、およびマルチモーダルイメージクエリ — については、「設定リファレンス」を参照してください。

レスポンス形式を取得する

このRetrieveツールは、JSON-RPC エンベロープでラップされた MCP tools/call結果を返します。isError および contentフィールドは 内にありresulttextフィールドにはシリアル化されたretrievalResultsペイロードが含まれます。

{ "jsonrpc": "2.0", "id": 1, "result": { "isError": false, "content": [ { "type": "text", "text": "{\"retrievalResults\":[{\"content\":{\"type\":\"TEXT\",\"text\":\"Amazon Bedrock AgentCore manages the storage, indexing, and retrieval infrastructure for a managed knowledge base...\"},\"location\":{\"type\":\"S3\",\"s3Location\":{\"uri\":\"s3://example-bucket/docs/overview.pdf\"}},\"score\":0.87,\"metadata\":{\"x-amz-bedrock-kb-source-uri\":\"s3://example-bucket/docs/overview.pdf\"}}]}" } ] } }

の各項目retrievalResultsには次の構造があります。

フィールド Type 必須 説明

content

オブジェクト

はい

取得したチャンクの内容。(typeTEXTIMAGE、、ROWAUDIOまたは VIDEO) と、テキストチャンクtextの などの対応するコンテンツが含まれます。

location

オブジェクト

いいえ

ソースデータの場所。(typeS3WEB、、CUSTOMSHAREPOINTなど) CONFLUENCEと、 などの一致する場所オブジェクトが含まれますs3Location.uri

score

数値

いいえ

クエリに対する結果の関連性。

metadata

オブジェクト

いいえ

データソース内のソースファイルのメタデータ属性とその値。

設定リファレンス

以下のフィールドは、 の管理者が設定するかparameterValues、ターゲットの作成parameterOverrides時に でエージェントに公開されます。設定する場所については、「マネージドナレッジベースを設定する」と「エージェントが設定できるパラメータを制御する」を参照してください。

AgenticRetrieveStreamagenticRetrieveConfiguration

フィールド 有効値 注意事項

foundationModelType

MANAGED, CUSTOM

MANAGED はサービスマネージドモデル (デフォルト) を使用します。 は、指定した Bedrock モデル ARN CUSTOMを使用します。

rerankingModelType

MANAGED, CUSTOM, NONE

MANAGED はサービス管理のリランク付け (デフォルト) を使用します。 は独自の CUSTOMを使用します。 はリランク付けNONEを無効にします。

foundationModelConfiguration.type

BEDROCK_FOUNDATION_MODEL

foundationModelType が の場合は必須ですCUSTOM

maxAgentIteration

整数

計画と取得の反復回数を上限します。

policyConfiguration.guardrailConfiguration

guardrailId, guardrailVersion

Amazon Bedrock ガードレールをアタッチします。

RetrievemanagedSearchConfiguration

フィールド 有効値 注意事項

numberOfResults

整数 (1~100)

取得するソースチャンクの数。

overrideSearchType

HYBRID, SEMANTIC

HYBRID はキーワード検索とベクトル検索を組み合わせます。 はベクトル検索のみSEMANTICを使用します。

rerankingModelType

MANAGED, CUSTOM, NONE

と同じですAgenticRetrieveStream

rerankingConfiguration.type

BEDROCK_RERANKING_MODEL

カスタム再ランク付けを使用する場合に必要です。

rerankingConfiguration.bedrockRerankingConfiguration.metadataConfiguration.selectionMode

SELECTIVE, ALL

リランク付けに渡されるメタデータフィールドを制御します。

filter

equals, notEquals, greaterThan, greaterThanOrEquals, lessThan, lessThanOrEquals, in, notIn, startsWith, listContains, stringContains, andAll, orAll

メタデータフィルター。演算子を 1 つだけ指定します。

アクセスコントロールのフィルタリング

マネージドナレッジベースがアクセスコントロールを使用してユーザーまたはグループごとに結果をフィルタリングする場合、呼び出し元のアプリケーションはリクエストuserContextで を渡す必要があります。Gateway はナレッジベースにパスuserContextスルーし、それに基づいてアクセスコントロールフィルタリングを適用します。Gateway は発信者の IAM ID userContextから入力しません。アプリケーションはそれを明示的に指定する必要があります。

これを使用するには:

  1. ターゲットparameterOverridesで を設定してエージェント$.userContextに公開する — 「エージェントが設定できるパラメータを制御する」を参照してください。

  2. 呼び出し元のアプリケーション (モデルではない) に引tools/calluserContextに を含めます。

{ "arguments": { "retrievalQuery": { "text": "insurance benefits" }, "userContext": { "userId": "user@example.com" } } }