View a markdown version of this page

Obiettivi del connettore di inferenza - Amazon Bedrock AgentCore

Obiettivi del connettore di inferenza

Gli obiettivi dei connettori di inferenza forniscono una configurazione preconfigurata per i fornitori di modelli supportati. Quando si utilizza un connettore, il gateway gestisce automaticamente le operazioni, l'individuazione dei modelli, la traduzione degli ID dei modelli e la riscrittura dei percorsi in base alla conoscenza integrata dell'API del provider, quindi non è necessario specificarli manualmente.

I connettori sono consigliati quando si desidera aggiungere rapidamente un provider di modelli supportato senza configurare manualmente gli endpoint, le operazioni o le mappature dei modelli.

Configurazione della destinazione

La configurazione di destinazione per una destinazione del connettore di inferenza utilizza la seguente struttura:

{ "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }
  • connectorID (obbligatorio) — Identificatore del connettore integrato. I valori supportati sono bedrock-mantle, openai e anthropic.

Ogni connettore fornisce impostazioni predefinite integrate equivalenti a una configurazione del provider completamente specificata. Ad esempio, il connettore configura automaticamentebedrock-mantle:

  • Eliminazione del prefisso dell'ID del modello: i client possono omettere il prefisso del provider dagli ID del modello (ad esempio, utilizzarlo invece di). claude-opus-4-7 anthropic.claude-opus-4-7

  • Riscrittura dei percorsi: i percorsi delle richieste di inferenza in entrata vengono mappati sui percorsi API del provider.

  • Operazioni supportate: l'insieme di operazioni di inferenza esposte dal connettore, come il completamento delle chat e i messaggi.

Creazione di un obiettivo di inferenza del connettore

L'esempio seguente mostra come creare un target di inferenza utilizzando il connettore 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"} ] }'

L'esempio seguente mostra come creare un target di inferenza utilizzando il connettore 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 " } } } ] }'

L'esempio seguente mostra come creare un target di inferenza utilizzando il connettore 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" } } } ] }'

Richiamo di un target di inferenza del connettore

Per richiamare un target di inferenza, invia le richieste al percorso del gateway. /inference Il gateway indirizza ogni richiesta alla destinazione corretta in base al model campo nel corpo della richiesta. Il model valore può essere un semplice ID del modello (ad esempio,gpt-5.5) o un ID modello qualificato per il target nel modulo {targetName}/{modelId} (ad esempio,openai/gpt-5.5). Per i dettagli su come il model valore viene abbinato a un obiettivo, vedete routing. Model-based

Il formato dell'URL è:

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

Sostituisci {path} con il percorso dell'operazione di inferenza (ad esempiov1/chat/completions,v1/responses, ov1/messages).

Utilizzo dell'SDK OpenAI

Imposta il /inference/v1 percorso del gateway come: 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!"}] )

Utilizzando Anthropic SDK

Imposta il /inference percorso del gateway come: 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!"}] )

Usare 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!"}]}'

Elenco dei modelli disponibili

Per scoprire i modelli disponibili su tutti gli obiettivi di inferenza, chiama l'endpoint list models:

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

La risposta è nel /v1/models formato di OpenAI con gli ID del modello preceduti dal nome del target:

{ "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"} ] }

Il owned_by campo indica il fornitore del modello. Un valore di system indica un modello ospitato da Amazon Bedrock, mentre openai e anthropic indica i modelli serviti direttamente da tali fornitori.

Model-based routing

Il gateway indirizza le richieste di inferenza in base al model campo nel corpo della richiesta:

  1. Routing qualificato: se l'ID del modello contiene un / e il prefisso corrisponde al nome di una destinazione, la richiesta viene indirizzata a tale destinazione (ad esempio, le openai/gpt-5.5 rotte verso la destinazione). openai

  2. Routing non qualificato: se l'ID del modello non contiene un/, il gateway lo confronta con tutte le destinazioni configurate. Una corrispondenza esatta ha la priorità rispetto ai modelli a globo. Se esattamente un obiettivo corrisponde, la richiesta viene indirizzata ad esso.

  3. Gestione delle collisioni: quando più target corrispondono allo stesso modello con la stessa specificità, il gateway utilizza come impostazione predefinita il target Amazon Bedrock, se presente tra le corrispondenze. Altrimenti, seleziona uno degli obiettivi corrispondenti a caso per ogni richiesta, in modo che le richieste per lo stesso modello possano finire su obiettivi diversi. Per associare le richieste a un obiettivo specifico, qualifica il modello con il nome del target come prefisso (ad esempio,). bedrock/claude-opus-4-7

Streaming

Lo streaming segue la convenzione OpenAI SSE. Impostato "stream": true nel corpo della richiesta, il gateway passa attraverso il flusso SSE del provider senza alcuna trasformazione:

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

Limiti del flusso di risposta

Importante

AgentCore Gateway non impone un livello di servizio massimo per la durata o la dimensione della risposta del flusso di risposta. Se non si configura una politica di limite dei token sulla destinazione del gateway, ogni richiesta può generare una risposta in streaming illimitata.

Senza una politica di limitazione dei token configurata, le risposte illimitate possono causare i seguenti problemi:

  • Esaurimento delle risorse del gateway: il gateway mantiene le risorse di elaborazione (memoria, slot del pool di connessioni HTTP e CPU per la valutazione delle policy) aperte per la durata di ogni risposta di streaming. I flussi simultanei di grandi dimensioni possono esaurire le risorse delle attività del gateway.

  • Amplificazione dei costi grazie alle credenziali condivise: tutti gli utenti che utilizzano la stessa destinazione condividono un set di credenziali del provider. Un singolo utente che invia max_tokens richieste elevate può consumare la quota di token al minuto (TPM) del provider per tutti gli utenti di quella destinazione.

  • Noisy Neighbor Effects: la limitazione Requests-per-minute (RPM) limita il numero di richieste ma non il costo per richiesta. Un singolo utente può generare richieste dal costo massimo entro il limite di RPM, con un conseguente peggioramento delle prestazioni per gli altri utenti.

Per mitigare questi rischi, configura una politica di limite dei token sugli obiettivi del gateway. Per ulteriori informazioni, consulta le politiche del gateway.

Autorizzazione in uscita

Le destinazioni dei connettori di inferenza supportano i seguenti tipi di autorizzazione in uscita:

  • IAM (SigV4): da utilizzare GATEWAY_IAM_ROLE per i provider che accettano l'autenticazione IAM (come Amazon Bedrock).

  • Chiave API: da utilizzare API_KEY per i provider che richiedono una chiave API (come OpenAI e Anthropic). Il gateway inserisce la chiave API memorizzata nelle richieste in uscita.