View a markdown version of this page

推論プロバイダーのターゲット - Amazon Bedrock AgentCore

推論プロバイダーのターゲット

推論プロバイダーターゲットを使用すると、モデルプロバイダーのエンドポイント、モデルマッピング、およびオペレーションを明示的に制御できます。使用可能なモデルをカスタマイズしたり、モデルごとのトークン制限を設定したり、パスの書き換えを設定したり、コネクタが組み込まれていないプロバイダーに接続したりする必要がある場合は、プロバイダー設定を使用します。

ターゲット設定

推論プロバイダーターゲットのターゲット設定では、次の構造を使用します。

{ "inference": { "provider": { "endpoint": "https://api.openai.com", "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"}, {"model": "gpt-5.4-mini"} ] }, { "path": "/v1/responses", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"} ] } ] } } }
  • endpoint (必須) – モデルプロバイダーの HTTPS URL。

  • modelMapping (オプション) – モデル ID 変換設定。

    • providerPrefix (オプション) – クライアントがモデル IDs からプロバイダープレフィックスを省略する方法を設定します。省略した場合、プレフィックス変換は適用されず、クライアントはプロバイダーの完全なモデル IDs を使用する必要があります。

      • strip (オプション) – の場合true、クライアントはプロバイダープレフィックスなしでモデル IDs を使用できます (たとえば、 claude-opus-4-7の代わりに)anthropic.claude-opus-4-7。デフォルトは false です。

      • separator (オプション) – プロバイダープレフィックスとモデル名の間の区切り文字 (例: .)。

  • operations (オプション) – リクエストパスをサポートされているモデルにマッピングするオペレーション設定のリスト。

    • path (必須) – このオペレーションのリクエストパス (例: /v1/chat/completions)。

    • providerPath (オプション) – リクエストパスと異なる場合にプロバイダーで に転送するパス。

    • models (オプション) – このオペレーションでサポートされているモデル。各エントリには、モデル ID または glob パターン ( など) を含むモデルフィールド (必須) が含まれますanthropic.claude-opus-*

プロバイダー推論ターゲットの作成

次の例では、プロバイダー設定を使用して OpenAI 推論ターゲットを作成します。

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "openai", "targetConfiguration": { "inference": { "provider": { "endpoint": "https://api.openai.com", "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"}, {"model": "gpt-5.4-mini"} ] }, { "path": "/v1/responses", "models": [ {"model": "gpt-5.5"}, {"model": "gpt-5.4"} ] } ] } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/apikeycredentialprovider/openai-key", "credentialLocation": "HEADER", "credentialParameterName": "Authorization", "credentialPrefix": "Bearer " } } } ] }'

次の例では、明示的なプロバイダー設定とモデルマッピングを使用して Bedrock 推論ターゲットを作成します。を使用したmodelMapping設定providerPrefixでは、クライアントは短いモデル名 ( などclaude-opus-4-7) を使用でき、ゲートウェイはそれらをプロバイダープレフィックス名 ( など) に変換しますanthropic.claude-opus-4-7

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "bedrock", "targetConfiguration": { "inference": { "provider": { "endpoint": "https://bedrock-mantle.us-east-1.api.aws", "modelMapping": { "providerPrefix": {"strip": true, "separator": "."} }, "operations": [ { "path": "/v1/chat/completions", "models": [ {"model": "anthropic.claude-opus-*"}, {"model": "anthropic.claude-sonnet-*"}, {"model": "openai.gpt-oss-*"} ] }, { "path": "/v1/messages", "providerPath": "/anthropic/v1/messages", "models": [ {"model": "anthropic.claude-opus-*"}, {"model": "anthropic.claude-sonnet-*"} ] } ] } } }, "credentialProviderConfigurations": [ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ] }'

プロバイダー推論ターゲットの呼び出し

推論ターゲットを呼び出すには、ゲートウェイの/inferenceパスにリクエストを送信します。ゲートウェイは、リクエスト本文の modelフィールドに基づいて、各リクエストを正しいターゲットにルーティングします。model 値は、プレーンモデル ID ( などgpt-5.5) または 形式のターゲット修飾モデル ID {targetName}/{modelId} ( など) のいずれかですopenai/gpt-5.5model 値がターゲットと一致する方法の詳細については、「モデルベースのルーティング」を参照してください。

URL 形式は次のとおりです。

https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/inference/{path}

を推論オペレーションパス (、、 などv1/messages) v1/chat/completions{path}に置き換えv1/responsesます。

OpenAI SDK の使用

ゲートウェイの/inference/v1パスを として設定しますbase_url

from openai import OpenAI client = OpenAI( base_url="https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1", api_key="<gateway-auth-token>" ) response = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Hello!"}] )

Anthropic SDK の使用

ゲートウェイの/inferenceパスを として設定しますbase_url

import anthropic client = anthropic.Anthropic( base_url="https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference", api_key="<gateway-auth-token>" ) response = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}] )

awscurl の使用

awscurl --service bedrock-agentcore --region us-west-2 -X POST \ "https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{"model": "gpt-5.5", "messages": [{"role": "user", "content": "Hello!"}]}'

認定モデルルーティング

複数のターゲットが同じモデルを提供する場合は、モデル ID にターゲット名をプレフィックスして、特定のプロバイダーにルーティングします。

# Route explicitly to the "bedrock" target response = client.chat.completions.create( model="bedrock/claude-opus-4-7", messages=[{"role": "user", "content": "Hello!"}] )

モデルベースのルーティング

ゲートウェイは、リクエスト本文の modelフィールドに基づいて推論リクエストをルーティングします。

  1. 認定ルーティング – モデル ID に が含まれ/、プレフィックスがターゲット名と一致する場合、リクエストはそのターゲットにルーティングされます (openaiターゲットへのopenai/gpt-5.5ルートなど)。

  2. 非修飾ルーティング – モデル ID に が含まれていない場合/、ゲートウェイは設定されたすべてのターゲットと照合します。完全一致は glob パターンよりも優先されます。ターゲットが 1 つだけ一致する場合、リクエストはそのターゲットにルーティングされます。

  3. 衝突処理 – 複数のターゲットが同じモデルを同じ特異度で一致させる場合、ゲートウェイはデフォルトで Amazon Bedrock ターゲットに一致させます。それ以外の場合、リクエストは一致するターゲット全体にラウンドロビンの順序で分散されます。特定のターゲットにリクエストを固定するには、ターゲット名をプレフィックスとしてモデルを認定します (例: bedrock/claude-opus-4-7)。

ストリーミング

ストリーミングは OpenAI SSE 規則に従います。リクエスト本文"stream": trueに を設定すると、ゲートウェイは変換なしでプロバイダーから SSE ストリームを通過します。

stream = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Write a story."}], stream=True ) for chunk in stream: print(chunk.choices[0].delta.content, end="")

アウトバウンド認可

推論プロバイダーターゲットは、次のアウトバウンド認可タイプをサポートしています。

  • IAM (SigV4) – IAM 認証を受け入れるプロバイダー (Amazon Bedrock など) GATEWAY_IAM_ROLEに使用します。

  • API キー – API キーを必要とするプロバイダー (OpenAI や Anthropic など) API_KEYに使用します。ゲートウェイは、保存された API キーをアウトバウンドリクエストに挿入します。