View a markdown version of this page

ゲートウェイターゲット設定を定義する - Amazon Bedrock AgentCore

ゲートウェイターゲット設定を定義する

ターゲット設定は、ゲートウェイに追加するターゲットタイプによって異なります。サポートされているゲートウェイターゲットタイプの詳細については、「Amazon Bedrock AgentCore ゲートウェイでサポートされているターゲット」を参照してください。

トピックを選択すると、ターゲットタイプを追加する例が表示されます。

Lambda ターゲットを追加する

AgentCore CLI を使用してゲートウェイに Lambda ターゲットを追加するには、 を --typeとして指定lambda-function-arnし、Lambda ARN とツールスキーマファイルを指定します。

ターゲット設定

Lambda 関数のターゲット設定 (またはペイロード) には、次のフィールドが含まれます。

  • lambdaArn – ターゲットとして使用する Lambda 関数の ARN。

  • toolSchema – ゲートウェイターゲットのツールスキーマ。

Lambda ターゲットの詳細については、AWS 「Lambda 関数ターゲット」を参照してください。

次のいずれかの方法を選択します。

AgentCore CLI
  1. Lambda 関数をターゲットとして追加するには、 --type lambda-function-arnオプションagentcore add gateway-targetを使用して を実行します。Lambda ARN とツールスキーマを含む JSON ファイルを指定します。

    agentcore add gateway-target \ --name MyLambdaTarget \ --type lambda-function-arn \ --lambda-arn arn:aws:lambda:us-east-1:123456789012:function:MyFunction \ --tool-schema-file tools.json \ --gateway MyGateway agentcore deploy
AgentCore Python SDK
  1. AgentCore CLI を使用すると、デフォルト設定で Lambda ターゲットを簡単に作成できます。

    # Import dependencies from bedrock_agentcore_starter_toolkit.operations.gateway.client import GatewayClient # Initialize the client client = GatewayClient(region_name="us-east-1") # Create a lambda target. lambda_target = client.create_mcp_gateway_target( gateway=gateway, name=None, # If you don't set one, one will be generated. target_type="lambda", target_payload=None, # Define your own lambda if you pre-created one. Otherwise leave this as None and one will be created for you. credentials=None, # If you leave this as None, one will be created for you )

    以下は、 target_payload に提供できる引数の例です。target_payload 引数を省略すると、このペイロードが使用されます。

    { "lambdaArn": "<insert your lambda arn>", "toolSchema": { "inlinePayload": [ { "name": "get_weather", "description": "Get weather for a location", "inputSchema": { "type": "object", "properties": { "location": { "type": "string", "description": "the location e.g. seattle, wa" } }, "required": [ "location" ] } }, { "name": "get_time", "description": "Get time for a timezone", "inputSchema": { "type": "object", "properties": { "timezone": { "type": "string" } }, "required": [ "timezone" ] } } ] } }
Boto3
  1. 次の Python コードは、Python SDK (Boto3) を使用して Lambda AWS ターゲットを追加する方法を示しています。

    import boto3 # Create the agentcore client agentcore_client = boto3.client('bedrock-agentcore-control') # Create a Lambda target target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="LambdaTarget", targetConfiguration={ "mcp": { "lambda": { "lambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:YourLambdaFunction", "toolSchema": { "inlinePayload": [ { "name": "get_weather", "description": "Get weather for a location", "inputSchema": { "type": "object", "properties": {"location": {"type": "string"}}, "required": ["location"], }, }, { "name": "get_time", "description": "Get time for a timezone", "inputSchema": { "type": "object", "properties": {"timezone": {"type": "string"}}, "required": ["timezone"], }, }, ] } } } }, credentialProviderConfigurations=[ { "credentialProviderType": "GATEWAY_IAM_ROLE" } ] )
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 agentcore を実行し、 の追加を選択し、ゲートウェイターゲット を選択し、Lambda 関数 を選択します。

    Lambda 関数が強調表示された TUI ターゲットタイプの選択

    次に、ウィザードでターゲット名、Lambda 関数 ARN、ツールスキーマファイル、アウトバウンド認可設定の入力を求められます。

API Gateway ステージターゲットを追加する

API Gateway REST API のステージをターゲットとして追加するには、API とステージの ARN を指定し、API ゲートウェイでツールをフィルタリングするか、ゲートウェイ内のツールの名前と説明を上書きする設定を定義します。

次の例は、API Gateway ターゲットを追加する方法を示しています。次の設定も適用されます。

  • でフィルタリングされたツールは、/productsパスの GET メソッドと POST メソッドです。

  • GET /products の名前が に変更されましたget_items

次のいずれかの方法を選択します。

AgentCore CLI
  1. API Gateway REST API ステージをターゲットとして追加するには、 --type api-gatewayオプションagentcore add gateway-targetを使用して を実行します。

    agentcore add gateway-target \ --name MyAPIGatewayTarget \ --type api-gateway \ --rest-api-id your-rest-api-id \ --stage your-stage \ --gateway MyGateway agentcore deploy
AWS CLI
  1. 次のコマンドは CLI AWS を使用します。

    aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "your-gateway-id" \ --name "SearchAPITarget" \ --target-configuration '{ "mcp": { "apiGateway": { "restApiId": "your-rest-api-id", "stage": "your-stage", "apiGatewayToolConfiguration": { "toolFilters": [ { "filterPath": "/products", "methods": [ "GET", "POST" ] } ], "toolOverrides": [ { "path": "/products", "method": "GET", "name": "get_items", "description": "Gets information for items in the list of products." } ] } } } }' --credential-provider-configurations '[ { "credentialProviderType": "GATEWAY_IAM_ROLE" } ]'
Boto3
  1. 次のコードは、 が AWS Python SDK (Boto3) を使用していることを示しています。

    import boto3 # Create the client agentcore_client = boto3.client('bedrock-agentcore-control') # Create an API gateway REST API target with gateway service role authentication target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="SearchAPITarget", targetConfiguration={ "mcp": { "apiGateway": { "restApiId": "your-rest-api-id", "stage": "your-stage", "apiGatewayToolConfiguration": { "toolFilters": [ { "filterPath": "/products", "methods": [ "GET", "POST" ] } ], "toolOverrides": [ { "path": "/products", "method": "GET", "name": "get_item", "description": "Gets information for a specific item in the product list." } ] } } } }, credentialProviderConfigurations=[ { "credentialProviderType": "GATEWAY_IAM_ROLE" } ] )
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 agentcore を実行し、 の追加を選択し、ゲートウェイターゲット を選択し、API Gateway REST API を選択します。

    API Gateway REST API オプションを示す TUI ターゲットタイプの選択

    次に、ウィザードはターゲット名、REST API ID、ステージ、アウトバウンド認可設定を求めます。

OpenAPI ターゲットを追加する

次のいずれかの方法を選択します。

AgentCore CLI
  1. OpenAPI スキーマターゲットを追加するには、 --type open-api-schemaオプションagentcore add gateway-targetを使用して を実行し、OpenAPI 仕様ファイルへのパスを指定します。

    agentcore add gateway-target \ --name MyOpenAPITarget \ --type open-api-schema \ --schema path/to/openapi-spec.json \ --outbound-auth none|api-key|oauth \ --gateway MyGateway agentcore deploy
Boto3
  1. 次の Python コードは、Python SDK (Boto3) を使用して OpenAPI AWS ターゲットを追加する方法を示しています。スキーマは、 で URI が参照されている S3 target_payload の場所にアップロードされました。ターゲットのアウトバウンド認可は API キーを介して行われます。

    import boto3 # Create the client agentcore_client = boto3.client('bedrock-agentcore-control') # Create an OpenAPI target with API Key authentication target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="SearchAPITarget", targetConfiguration={ "mcp": { "openApiSchema": { "s3": { "uri": "s3://your-bucket/path/to/open-api-spec.json", "bucketOwnerAccountId": "123456789012" } } } }, credentialProviderConfigurations=[ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:agent-credential-provider:us-east-1:123456789012:token-vault/default/apikeycredentialprovider/abcdefghijk", "credentialLocation": "HEADER", "credentialParameterName": "X-API-Key" } } } ] )
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 agentcore を実行し、 の追加 を選択し、ゲートウェイターゲット を選択し、OpenAPI スキーマ を選択します。

    OpenAPI スキーマオプションを示す TUI ターゲットタイプの選択

    次に、ウィザードでターゲット名、OpenAPI 仕様ファイルへのパス、アウトバウンド認可設定の入力を求められます。

Smithy ターゲットを追加する

次のいずれかの方法を選択します。

AgentCore CLI
  1. Smithy モデルターゲットを追加するには、 --type smithy-modelオプションagentcore add gateway-targetを使用して を実行し、Smithy モデルファイルへのパスを指定します。

    agentcore add gateway-target \ --name MySmithyTarget \ --type smithy-model \ --schema path/to/smithy-model.json \ --gateway MyGateway agentcore deploy
Boto3
  1. 次の Python コードは、Python SDK (Boto3) を使用して Smithy AWS モデルターゲットを追加する方法を示しています。

    import boto3 # Create the agentcore client agentcore_client = boto3.client('bedrock-agentcore-control') # Create a Smithy model target target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="DynamoDBTarget", targetConfiguration={ "mcp": { "smithyModel": { "s3": { "uri": "s3://your-bucket/path/to/smithy-model.json", "bucketOwnerAccountId": "123456789012" } } } }, credentialProviderConfigurations=[ { "credentialProviderType": "GATEWAY_IAM_ROLE" } ] )
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 agentcore を実行し、 の追加を選択し、ゲートウェイターゲット を選択し、Smithy モデル を選択します。

    Smithy Model オプションを示す TUI ターゲットタイプの選択

    次に、ウィザードでターゲット名、Smithy モデルファイルへのパス、アウトバウンド認可設定の入力を求められます。

HTTP ランタイムターゲットを追加する

Amazon Bedrock AgentCore ランタイムエージェントを HTTP ターゲットとしてゲートウェイに追加できます。ゲートウェイは、集約やプロトコル変換を行うことなく、トラフィックをランタイムエージェントに直接送信します。

HTTP ターゲットの詳細については、「Amazon Bedrock AgentCore ランタイムターゲット」を参照してください。

次のいずれかの方法を選択します。

AWS CLI
  1. 次のコマンドは、IAM 認可を持つ HTTP ランタイムターゲットを作成します。

    aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "your-gateway-id" \ --name "MyRuntimeTarget" \ --description "Runtime gateway target" \ --target-configuration '{ "http": { "agentcoreRuntime": { "arn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID" } } }' \ --credential-provider-configurations '[{ "credentialProviderType": "GATEWAY_IAM_ROLE" }]'
Boto3
  1. 次の Python コードは、Python SDK (Boto3) を使用して HTTP AWS ランタイムターゲットを追加する方法を示しています。

    import boto3 agentcore_client = boto3.client('bedrock-agentcore-control') target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="MyRuntimeTarget", description="Runtime gateway target", targetConfiguration={ "http": { "agentcoreRuntime": { "arn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID" } } }, credentialProviderConfigurations=[ { "credentialProviderType": "GATEWAY_IAM_ROLE" } ] )

MCP サーバーターゲットを追加する

AgentCore CLI または Python SDK (Boto3) を使用して MCP AWS サーバーターゲットを追加できます。次の例は、さまざまなアウトバウンド認可タイプで MCP サーバーターゲットを作成する方法を示しています。

IAM (SigV4) 認可を持つ MCP サーバー

次の例では、IAM 認可を持つ MCP サーバーターゲットを作成します。ゲートウェイは、ゲートウェイサービスロールの認証情報を使用して SigV4 を使用して MCP サーバーへのリクエストに署名します。署名serviceの名前を指定する必要があります。region はオプションで、デフォルトはゲートウェイのリージョンです。

の値は、MCP サーバーがホストされている場所serviceによって異なります。以下は一般的な値です。

次のいずれかの方法を選択します。

AWS CLI
  1. aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "your-gateway-id" \ --name "MyMCPTarget" \ --target-configuration '{ "mcp": { "mcpServer": { "endpoint": "https://my-server.bedrock-agentcore.us-west-2.api.aws" } } }' \ --credential-provider-configurations '[{ "credentialProviderType": "GATEWAY_IAM_ROLE", "credentialProvider": { "iamCredentialProvider": { "service": "bedrock-agentcore", "region": "us-west-2" } } }]'
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 agentcore を実行し、 の追加を選択し、ゲートウェイターゲット を選択し、MCP サーバーエンドポイント を選択します。

    MCP Server エンドポイントが強調表示された TUI ターゲットタイプの選択

    次に、ウィザードでターゲット名、MCP サーバーエンドポイント URL、アウトバウンド認可設定の入力を求められます。

Boto3
  1. import boto3 agentcore_client = boto3.client('bedrock-agentcore-control') target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="MyMCPTarget", targetConfiguration={ "mcp": { "mcpServer": { "endpoint": "https://my-server.bedrock-agentcore.us-west-2.api.aws" } } }, credentialProviderConfigurations=[ { "credentialProviderType": "GATEWAY_IAM_ROLE", "credentialProvider": { "iamCredentialProvider": { "service": "bedrock-agentcore", "region": "us-west-2" } } } ] )

OAuth 認可を持つ MCP サーバー

次の例では、OAuth (クライアント認証情報) 認可を使用して MCP サーバーターゲットを作成します。

次のいずれかの方法を選択します。

AWS CLI
  1. aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "your-gateway-id" \ --name "MyMCPTarget" \ --target-configuration '{ "mcp": { "mcpServer": { "endpoint": "https://my-mcp-server.example.com" } } }' \ --credential-provider-configurations '[{ "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/oauth2credentialprovider/my-oauth-provider", "scopes": [] } } }]'
AgentCore CLI
  1. OAuth 認可で MCP サーバーターゲットを追加するには、 --type mcp-serverオプションagentcore add gateway-targetを使用して を実行し、OAuth 認証情報を指定します。

    agentcore add gateway-target \ --type mcp-server \ --name MyMCPTarget \ --endpoint https://my-mcp-server.example.com \ --gateway MyGateway \ --outbound-auth oauth \ --oauth-client-id my-client \ --oauth-client-secret my-secret \ --oauth-discovery-url https://auth.example.com/.well-known/openid-configuration agentcore deploy
Boto3
  1. import boto3 agentcore_client = boto3.client('bedrock-agentcore-control') target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="MyMCPTarget", targetConfiguration={ "mcp": { "mcpServer": { "endpoint": "https://my-mcp-server.example.com" } } }, credentialProviderConfigurations=[ { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/oauth2credentialprovider/my-oauth-provider", "scopes": [] } } } ] )

API キー認可を持つ MCP サーバー

次の の例では、API キー認可を使用して MCP サーバーターゲットを作成します。

次のいずれかの方法を選択します。

AWS CLI
  1. aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "your-gateway-id" \ --name "MyMCPTarget" \ --target-configuration '{ "mcp": { "mcpServer": { "endpoint": "https://my-mcp-server.example.com" } } }' \ --credential-provider-configurations '[{ "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-api-key", "credentialLocation": "HEADER", "credentialParameterName": "x-api-key", "credentialPrefix": "" } } }]'
Boto3
  1. import boto3 agentcore_client = boto3.client('bedrock-agentcore-control') target = agentcore_client.create_gateway_target( gatewayIdentifier="your-gateway-id", name="MyMCPTarget", targetConfiguration={ "mcp": { "mcpServer": { "endpoint": "https://my-mcp-server.example.com" } } }, credentialProviderConfigurations=[ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-api-key", "credentialLocation": "HEADER", "credentialParameterName": "x-api-key", "credentialPrefix": "" } } } ] )

Amazon Bedrock マネージドナレッジベースでコネクタターゲットを追加する

Amazon Bedrock Managed Knowledge Bases コネクタをターゲットとしてゲートウェイに追加できます。

Amazon Bedrock Managed Knowledge Bases コネクタの詳細については、「Amazon Bedrock Managed Knowledge Bases」を参照してください。

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

コネクタは、バックエンドオペレーションにちなんで という名前の 2 つのツールを公開します。AgenticRetrieveStream(複数ステップ、ストリーミングエージェント取り出し) と Retrieve (単一のハイブリッド検索)。ツールごとに設定エントリを追加します。

にはAgenticRetrieveStreamretrievers (クエリするマネージドナレッジベース) と を agenticRetrieveConfigurationに設定しますparameterValues。両方が必要です。 を省略するとランタイムエラーagenticRetrieveConfigurationが発生します。サービス管理のデフォルトを受け入れるには空のオブジェクト ({}) を使用できますが、 と を指定するfoundationModelTypeと設定が明示的にrerankingModelTypeなります。エージェントは、通話時にナレッジベース IDsを提供しません。の場合RetrieveknowledgeBaseIdで を設定しますparameterValues。必須です。

コネクタはマネージドナレッジベースのみをサポートします。コネクタターゲットは、GATEWAY_IAM_ROLE認証情報プロバイダータイプのみをサポートします。

Boto3
  1. 次の Python コードは、Python SDK (Boto3) AWS を使用して Amazon Bedrock Managed Knowledge Bases コネクタ設定でゲートウェイターゲットを作成する方法を示しています。

    import boto3 gateway_client = boto3.client("bedrock-agentcore-control", region_name="<REGION>") gateway_client.create_gateway_target( name="managed-kb", gatewayIdentifier="<GATEWAY_ID>", targetConfiguration={ "mcp": { "connector": { "source": {"connectorId": "bedrock-knowledge-bases"}, "configurations": [ { "name": "AgenticRetrieveStream", "parameterValues": { "retrievers": [ { "description": "Product documentation", "configuration": {"knowledgeBase": {"knowledgeBaseId": "<KB_ID_1>"}}, }, { "description": "Engineering runbooks", "configuration": {"knowledgeBase": {"knowledgeBaseId": "<KB_ID_2>"}}, }, ], "agenticRetrieveConfiguration": { "foundationModelType": "MANAGED", "rerankingModelType": "MANAGED", }, }, }, { "name": "Retrieve", "parameterValues": {"knowledgeBaseId": "<KB_ID>"}, }, ], } } }, credentialProviderConfigurations=[ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ], )
AWS CLI
  1. 次のコマンドは、 AWS CLI を使用して Amazon Bedrock Managed Knowledge Bases コネクタ設定でゲートウェイターゲットを作成します。

    aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "<GATEWAY_ID>" \ --name "managed-kb" \ --target-configuration '{ "mcp": { "connector": { "source": { "connectorId": "bedrock-knowledge-bases" }, "configurations": [ { "name": "AgenticRetrieveStream", "parameterValues": { "retrievers": [ { "description": "Product documentation", "configuration": {"knowledgeBase": {"knowledgeBaseId": "<KB_ID_1>"}} }, { "description": "Engineering runbooks", "configuration": {"knowledgeBase": {"knowledgeBaseId": "<KB_ID_2>"}} } ], "agenticRetrieveConfiguration": { "foundationModelType": "MANAGED", "rerankingModelType": "MANAGED" } } }, { "name": "Retrieve", "parameterValues": { "knowledgeBaseId": "<KB_ID>" } } ] } } }' \ --credential-provider-configurations '[{"credentialProviderType": "GATEWAY_IAM_ROLE"}]' \ --region "<REGION>"
AgentCore CLI
  1. マネージドナレッジベースコネクタターゲットを追加するには、 agentcore add gateway-targetで を実行します--type connector --connector bedrock-knowledge-bases

    agentcore add gateway-target \ --name MyKnowledgeBaseTarget \ --type connector \ --connector bedrock-knowledge-bases \ --knowledge-base-id <KB_ID> \ --gateway MyGateway agentcore deploy
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 を実行しagentcore add gateway-target、ターゲットタイプピッカーから Amazon Bedrock ナレッジベースを選択します。

    インタラクティブターミナルで Amazon Bedrock ナレッジベースが強調表示されたゲートウェイターゲットメニューを追加します。

    ウィザードは名前、説明を求め、1 つ以上のソースタイプとソースを選択できます。

を呼び出すとCreateGatewayTarget、ゲートウェイは設定を非同期 (通常は約 30 秒以内) で検証します。これには、各バインドナレッジベースのGetKnowledgeBaseチェックが含まれます。statusGetGatewayTargetになるまでポーリングしますREADYFAILEDステータスには問題を説明する理由が含まれます。

エージェント取り出しをカスタマイズするには、たとえば、反復計画の上限を設定したり、ガードレールをアタッチしたりするには、オプションフィールドを に追加しますagenticRetrieveConfiguration。これらを省略すると、サービス管理のデフォルトが適用されます。使用できるすべての値については、「設定リファレンス」を参照してください。

{ "name": "AgenticRetrieveStream", "parameterValues": { "retrievers": [ { "configuration": { "knowledgeBase": { "knowledgeBaseId": "<KB_ID>" } } } ], "agenticRetrieveConfiguration": { "maxAgentIteration": 5, "policyConfiguration": { "guardrailConfiguration": { "guardrailId": "<GUARDRAIL_ID>", "guardrailVersion": "1" } } } } }

エージェントが設定できるパラメータを制御する

各ツール設定エントリは、呼び出し元のエージェントに表示される内容と Gateway がナレッジベースに送信する内容を決定する 2 つのパラメータコントロールを受け入れます。

  • parameterValues — バインドされた knowledgeBaseIdやデフォルトの など、すべての呼び出しでナレッジベースに送信される管理者設定の値numberOfResults。これらは、エージェントが公開したフィールドを上書きしない限り使用されます。

  • parameterOverrides — エージェントが通話時に表示および設定できるリクエストフィールドを制御するリスト。各エントリには次のものがあります。

    • pathRetrieveリクエストの フィールド。例: $.retrievalQuery.textまたは $.retrievalConfiguration.managedSearchConfiguration.numberOfResults

    • description — フィールドを説明するオプションのテキストがエージェントに表示されます。

    • visible — に設定trueして フィールドをエージェントに公開するか、管理者設定のデフォルトを送信したままfalse非表示にします。

knowledgeBaseId にバインドparameterValuesし、公開しません。

次の設定エントリは、ナレッジベースをバインドし、デフォルトの結果を 10 に設定し、クエリテキストと結果数をエージェントに公開します。

{ "name": "Retrieve", "description": "Search the knowledge base for relevant documents.", "parameterValues": { "knowledgeBaseId": "<KB_ID>", "retrievalConfiguration": { "managedSearchConfiguration": { "numberOfResults": 10 } } }, "parameterOverrides": [ { "path": "$.retrievalQuery.text", "description": "The search query. Use specific keywords for best results.", "visible": true }, { "path": "$.retrievalConfiguration.managedSearchConfiguration.numberOfResults", "description": "Number of results to retrieve (1-100).", "visible": true } ] }

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

このコネクタは、ゲートウェイ実行ロールを使用します。これは、AgentCoreサービスがユーザーに代わってバックエンドを呼び出すために引き受けるCreateGateway、 に渡す IAM ロール ARN です。これは作成したロールであり、サービスにリンクされたロールではありません。Amazon Bedrock Managed Knowledge Bases コネクタには、次のアクセス許可が必要です。

  • bedrock:GetKnowledgeBase — ターゲットの作成時にバインドされたナレッジベースを検証します。マネージドナレッジベースリソースにスコープされます。

  • bedrock:RetrieveRetrieve ツール用。マネージドナレッジベースリソースにスコープされます。

  • bedrock:AgenticRetrieveStreamAgenticRetrieveStream ツール用。このアクションはマネージドナレッジベースリソースを対象としていないため、 で付与します*

Gateway はバックエンド呼び出しをbedrockサービスとして署名します。追加するツールbedrock:GetKnowledgeBaseに関係なく を含めます。1 つのツールのみを追加する場合は、そのツールの取得アクションのみを含めます。

注記

bedrock-agentcore:InvokeGateway は実行ロールの一部ではありません。このアクセス許可は、ゲートウェイを呼び出すエージェントまたはアプリケーションである発信者に属し、ゲートウェイが引き受けるロールに属しません。

Gateway にアタッチされた実行ロールに、次の内容のポリシーを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ValidateKnowledgeBase", "Effect": "Allow", "Action": "bedrock:GetKnowledgeBase", "Resource": "arn:aws:bedrock:<REGION>:<ACCOUNT_ID>:knowledge-base/<KB_ID>" }, { "Sid": "RetrieveFromKnowledgeBase", "Effect": "Allow", "Action": "bedrock:Retrieve", "Resource": "arn:aws:bedrock:<REGION>:<ACCOUNT_ID>:knowledge-base/<KB_ID>" }, { "Sid": "AgenticRetrieveStream", "Effect": "Allow", "Action": "bedrock:AgenticRetrieveStream", "Resource": "*" } ] }

また、サービスロールは AgentCore サービスを信頼して、ロールを引き受けられるようにする必要があります。次の信頼ポリシーをアタッチし、 aws:SourceAccount および aws:SourceArn条件でアカウントとゲートウェイにスコープします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAgentCoreToAssumeRole", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<ACCOUNT_ID>" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:<REGION>:<ACCOUNT_ID>:gateway/*" } } } ] }

組み込みコネクタをターゲットとしてゲートウェイに追加できます。ウェブ検索ツールコネクタは、カスタムインフラストラクチャや API キーを必要とせずに、マネージド型のウェブ検索機能を提供します。

ウェブ検索ツールコネクタの詳細については、「ウェブ検索ツール」を参照してください。

ウェブ検索ツールのセットアップ

Boto3
  1. 次の Python コードは、Python SDK (Boto3) AWS を使用して Web Search Tool コネクタ設定でゲートウェイターゲットを作成する方法を示しています。

    import boto3 gateway_client = boto3.client("bedrock-agentcore-control", region_name="<REGION>") gateway_client.create_gateway_target( name="web-search-tool", gatewayIdentifier="<GATEWAY_ID>", targetConfiguration={ "mcp": { "connector": { "source": {"connectorId": "web-search"}, "configurations": [{"name": "WebSearch", "parameterValues": {}}], } } }, credentialProviderConfigurations=[ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ], )
AWS CLI
  1. 次のコマンドは、 AWS CLI を使用して Web Search Tool コネクタ設定でゲートウェイターゲットを作成します。

    aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "<GATEWAY_ID>" \ --name "web-search-tool" \ --target-configuration '{ "mcp": { "connector": { "source": { "connectorId": "web-search" }, "configurations": [ { "name": "WebSearch", "parameterValues": {} } ] } } }' \ --credential-provider-configurations '[{"credentialProviderType": "GATEWAY_IAM_ROLE"}]' \ --region "<REGION>"
AgentCore CLI
  1. ウェブ検索ツールターゲットを追加するには、 agentcore add gateway-targetで を実行します--type connector --connector web-search

    agentcore add gateway-target \ --name MyWebSearchTarget \ --type connector \ --connector web-search \ --gateway MyGateway agentcore deploy
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、 を実行しagentcore add gateway-target、ターゲットタイプピッカーから Amazon Web Search を選択します。

    インタラクティブターミナルで Amazon Web Search が強調表示されたゲートウェイターゲットメニューを追加します。

    ウィザードでは、ターゲット名、アタッチ先のゲートウェイ、および検索結果から除外するドメインのオプションリストの入力を求められます。

ドメインフィルタリングを設定する

ドメイン拒否リストを設定することで、ウェブ検索ツールがクエリできるドメインを制限できます。これは、エージェントが特定のウェブサイトから結果を返さないようにしたい管理者にとって便利です。

ドメインフィルタリングは、ゲートウェイターゲットを作成または更新するときに、 parameterValues.domainFilter.excludeフィールドを使用してツールレベルで設定されます。拒否リストはサーバー側で強制され、LLM から非表示になります。エージェントは制限を認識しておらず、除外されたドメインから結果を受信しません。

次の例では、 blocked-website-1.comおよび から結果を除外するドメインフィルタリングを使用してウェブ検索ツールターゲットを作成しますblocked-website-2.com

Boto3
  1. 次の Python コードは、Python SDK (Boto3) AWS を使用してドメインフィルタリングを使用してウェブ検索ツールターゲットを作成する方法を示しています。

    import boto3 gateway_client = boto3.client("bedrock-agentcore-control", region_name="<REGION>") gateway_client.create_gateway_target( name="web-search-tool", gatewayIdentifier="<GATEWAY_ID>", targetConfiguration={ "mcp": { "connector": { "source": {"connectorId": "web-search"}, "configurations": [ { "name": "WebSearch", "parameterValues": { "domainFilter": { "exclude": ["blocked-website-1.com", "blocked-website-2.com"] } }, } ], } } }, credentialProviderConfigurations=[ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ], )
AWS CLI
  1. 次のコマンドは、CLI を使用してドメインフィルタリングを使用して Web Search Tool AWS ターゲットを作成します。

    aws bedrock-agentcore-control create-gateway-target \ --gateway-identifier "<GATEWAY_ID>" \ --name "web-search-tool" \ --target-configuration '{ "mcp": { "connector": { "source": { "connectorId": "web-search" }, "configurations": [ { "name": "WebSearch", "parameterValues": { "domainFilter": { "exclude": ["blocked-website-1.com", "blocked-website-2.com"] } } } ] } } }' \ --credential-provider-configurations '[{"credentialProviderType": "GATEWAY_IAM_ROLE"}]' \ --region "<REGION>"
AgentCore CLI
  1. 経由でドメインのカンマ区切りリストを渡します--exclude-domains

    agentcore add gateway-target \ --name MyWebSearchTarget \ --type connector \ --connector web-search \ --exclude-domains blocked-website-1.com,blocked-website-2.com \ --gateway MyGateway agentcore deploy
Interactive
  1. AgentCore CLI インタラクティブターミナル UI で、ゲートウェイターゲットの追加ウィザードは、Amazon Web Search を選択してゲートウェイを選択した後、検索結果から除外するドメインのカンマ区切りリストをオプションで求めます。プロンプトを空のままにすると、ドメインフィルタリングなしでターゲットが作成されます。

    インタラクティブターミナルのウェブ検索ツールのドメインフィルタリングプロンプト。

既存のターゲットを更新して、 を使用してドメインフィルタリングを追加または変更することもできますUpdateGatewayTarget

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

Gateway には、AgentCore サービスがユーザーに代わってアクションを実行できるようにするサービスロールが必要です。ウェブ検索ツールの場合、ロールには次のアクセス許可が必要です。

  • bedrock-agentcore:InvokeGateway — Gateway を呼び出すには

  • bedrock-agentcore:InvokeWebSearch — サービス所有 ARN に対してリクエストごとにチェックされたウェブ検索呼び出しを承認するには arn:aws:bedrock-agentcore:<region>:aws:tool/web-search.v1

Gateway にアタッチされたサービスロールに、次の内容のポリシーを追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeGateway", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<REGION>:<ACCOUNT_ID>:gateway/*" }, { "Sid": "InvokeWebSearch", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeWebSearch", "Resource": "arn:aws:bedrock-agentcore:<REGION>:aws:tool/web-search.v1" } ] }