View a markdown version of this page

推論連接器目標 - Amazon Bedrock AgentCore

推論連接器目標

推論連接器目標為支援的模型提供者提供預先設定的設定。當您使用連接器時,閘道會根據供應商 API 的內建知識,自動處理操作、模型探索、模型 ID 轉譯和路徑重寫,因此您不需要手動指定。

當您想要快速新增支援的模型提供者,而無需手動設定端點、操作或模型映射時,建議使用連接器。

目標組態

推論連接器目標的目標組態使用以下結構:

{ "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }
  • connectorId (必要) – 內建連接器的識別符。支援的值為 bedrock-mantleopenaianthropic

每個連接器都提供等同於完整指定提供者組態的內建預設值。例如,bedrock-mantle連接器會自動設定:

  • 模型 ID 字首分割 – 用戶端可以從模型 IDs(例如,使用 claude-opus-4-7而不是 anthropic.claude-opus-4-7)。

  • 路徑重寫 – 傳入推論請求路徑會映射至提供者的 API 路徑。

  • 支援的操作 – 連接器公開的一組推論操作,例如聊天完成和訊息。

建立連接器推論目標

下列範例示範如何使用 Bedrock Mantle 連接器建立推論目標:

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "bedrock-mantle", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }, "credentialProviderConfigurations": [ {"credentialProviderType": "GATEWAY_IAM_ROLE"} ] }'

下列範例示範如何使用 OpenAI 連接器建立推論目標:

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "openai", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "openai" } } } }, "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 " } } } ] }'

下列範例示範如何使用 Anthropic 連接器建立推論目標:

aws bedrock-agentcore-control create-gateway-target --cli-input-json '{ "gatewayIdentifier": "GATEWAY_ID", "name": "anthropic", "targetConfiguration": { "inference": { "connector": { "source": { "connectorId": "anthropic" } } } }, "credentialProviderConfigurations": [ { "credentialProviderType": "API_KEY", "credentialProvider": { "apiKeyCredentialProvider": { "providerArn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:token-vault/default/apikeycredentialprovider/anthropic-key", "credentialLocation": "HEADER", "credentialParameterName": "x-api-key" } } } ] }'

叫用連接器推論目標

若要叫用推論目標,請將請求傳送到閘道的/inference路徑。閘道會根據請求內文中的 model 欄位,將每個請求路由至正確的目標。model 值可以是純模型 ID (例如 gpt-5.5) 或以 格式顯示的目標合格模型 ID {targetName}/{modelId}(例如 openai/gpt-5.5)。如需 model值如何符合目標的詳細資訊,請參閱以模型為基礎的路由

URL 格式為:

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

{path} 將 取代為推論操作路徑 (例如 v1/chat/completionsv1/responsesv1/messages)。

使用 OpenAI 開發套件

將閘道的/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!"}]}'

列出可用的模型

若要探索所有推論目標中可用的模型,請呼叫清單模型端點:

awscurl --service bedrock-agentcore --region us-west-2 \ "https://<gateway-id>.gateway.bedrock-agentcore.us-west-2.amazonaws.com/inference/v1/models"

回應的/v1/models格式為 OpenAI,模型 IDs字首為目標名稱:

{ "data": [ {"id": "bedrock-mantle/anthropic.claude-opus-4-7", "object": "model", "owned_by": "system"}, {"id": "openai/gpt-5.5", "object": "model", "owned_by": "openai"}, {"id": "anthropic/claude-sonnet-4-6", "object": "model", "owned_by": "anthropic"} ] }

owned_by 欄位指出模型的提供者。值 system表示 Amazon Bedrock 託管的模型,而 openaianthropic則表示這些提供者直接提供的模型。

模型型路由

閘道會根據請求內文中的 model 欄位路由推論請求:

  1. 合格路由 – 如果模型 ID 包含 ,/且字首符合目標名稱,則請求會路由到該目標 (例如,openai/gpt-5.5路由到openai目標)。

  2. 不合格的路由 – 如果模型 ID 不包含 /,閘道會比對它與所有設定的目標。完全相符項目的優先順序高於 glob 模式。如果只有一個目標相符,請求會路由到該目標。

  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="")

回應串流限制

重要

AgentCore Gateway 不會對回應串流持續時間或回應大小強制執行服務層級上限。如果您未在閘道目標上設定權杖限制政策,則每個請求都可以產生不受限制的串流回應。

如果沒有設定的字符限制政策,未限制的回應可能會導致下列問題:

  • 閘道資源耗盡 – 閘道會在每次串流回應期間開啟運算資源 (記憶體、HTTP 連線集區插槽和 CPU 以進行政策評估)。大型並行串流可能會耗盡閘道任務資源。

  • 共用登入資料的成本擴增 – 透過相同目標路由的所有使用者都會共用一組提供者登入資料。傳送高請求max_tokens的單一使用者,可以對該目標的所有使用者使用供應商tokens-per-minute (TPM) 配額。

  • 雜訊鄰近效果 – Requests-per-minute(RPM) 限流限制請求計數,但不是每次請求成本。單一使用者可以在 RPM 限制內產生成本最高的請求,降低其他使用者的效能。

若要降低這些風險,請在閘道目標上設定字符限制政策。如需詳細資訊,請參閱閘道政策

傳出授權

推論連接器目標支援下列傳出授權類型:

  • IAM (SigV4)GATEWAY_IAM_ROLE用於接受 IAM 身分驗證 (例如 Amazon Bedrock) 的供應商。

  • API 金鑰API_KEY用於需要 API 金鑰 (例如 OpenAI 和 Anthropic) 的提供者。閘道會將儲存的 API 金鑰注入傳出請求。