View a markdown version of this page

Destinos del conector de inferencia - Amazon Bedrock AgentCore

Destinos del conector de inferencia

Los destinos del conector de inferencia proporcionan una configuración preconfigurada para los proveedores de modelos compatibles. Cuando se utiliza un conector, la puerta de enlace gestiona automáticamente las operaciones, la detección del modelo, la traducción del identificador del modelo y la reescritura de rutas en función del conocimiento incorporado de la API del proveedor, por lo que no es necesario especificarlos manualmente.

Se recomiendan los conectores si se quiere añadir rápidamente un proveedor de modelos compatible sin necesidad de configurar manualmente los puntos finales, las operaciones o las asignaciones de modelos.

Configuración de destino

La configuración de destino de un conector de inferencia utiliza la siguiente estructura:

{ "inference": { "connector": { "source": { "connectorId": "bedrock-mantle" } } } }
  • ConnectoriD (obligatorio): identificador del conector integrado. Los valores admitidos son bedrock-mantle, openai y anthropic.

Cada conector proporciona valores predeterminados integrados equivalentes a una configuración de proveedor completamente especificada. Por ejemplo, el bedrock-mantle conector configura automáticamente:

  • Eliminación de prefijos de ID de modelo: los clientes pueden omitir el prefijo del proveedor en los ID de modelo (por ejemplo, usarlo en lugar de). claude-opus-4-7 anthropic.claude-opus-4-7

  • Reescritura de rutas: las rutas de las solicitudes de inferencia entrantes se asignan a las rutas de API del proveedor.

  • Operaciones compatibles: el conjunto de operaciones de inferencia que expone el conector, como la finalización de conversaciones y los mensajes.

Creación de un objetivo de inferencia de conectores

El siguiente ejemplo muestra cómo crear un objetivo de inferencia mediante el conector 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"} ] }'

El siguiente ejemplo muestra cómo crear un objetivo de inferencia mediante el conector 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 " } } } ] }'

El siguiente ejemplo muestra cómo crear un objetivo de inferencia mediante el conector 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" } } } ] }'

Invocar un objetivo de inferencia de conector

Para invocar un objetivo de inferencia, envíe las solicitudes a la ruta de la puerta de enlace. /inference La pasarela enruta cada solicitud al destino correcto en función del model campo del cuerpo de la solicitud. El model valor puede ser un identificador de modelo simple (por ejemplo,gpt-5.5) o un identificador de modelo apto para el objetivo en el formulario {targetName}/{modelId} (por ejemplo,openai/gpt-5.5). Para obtener detalles sobre cómo se hace coincidir el model valor con un objetivo, consulte Model-based enrutamiento.

El formato de la dirección URL es:

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

{path}Sustitúyalo por la ruta de la operación de inferencia (por ejemplov1/chat/completions,,v1/responses, ov1/messages).

Uso del SDK de OpenAI

Establezca la /inference/v1 ruta de la puerta de enlace como: 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!"}] )

Uso del SDK de Anthropic

Establezca la /inference ruta de la puerta de enlace como: 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!"}] )

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

Listado de modelos disponibles

Para descubrir los modelos disponibles en todos los objetivos de inferencia, llame al punto final de la lista de modelos:

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

La respuesta está en el /v1/models formato de OpenAI con los ID de modelo con el prefijo del nombre del objetivo:

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

El owned_by campo indica el proveedor del modelo. Un valor de system indica un modelo hospedado por Amazon Bedrock, mientras que openai e anthropic indica modelos servidos directamente por esos proveedores.

Model-based enrutamiento

La pasarela enruta las solicitudes de inferencia en función del model campo del cuerpo de la solicitud:

  1. Enrutamiento cualificado: si el ID del modelo contiene una / y el prefijo coincide con el nombre de un destino, la solicitud se enruta a ese destino (por ejemplo, se openai/gpt-5.5 dirige al openai objetivo).

  2. Enrutamiento no cualificado: si el ID del modelo no contiene un/, la puerta de enlace lo compara con todos los destinos configurados. Una coincidencia exacta tiene prioridad sobre los patrones globales. Si un objetivo coincide exactamente, la solicitud se dirige a él.

  3. Gestión de colisiones: cuando varios objetivos coinciden con el mismo modelo con la misma especificidad, la puerta de enlace elige de forma predeterminada el objetivo de Amazon Bedrock si hay uno de los que coinciden. De lo contrario, selecciona uno de los objetivos coincidentes de forma aleatoria en cada solicitud, de modo que las solicitudes del mismo modelo puedan dirigirse a objetivos diferentes. Para fijar las solicitudes a un objetivo específico, califique el modelo con el nombre del objetivo como prefijo (por ejemplo,bedrock/claude-opus-4-7).

Transmisión

La transmisión sigue la convención OpenAI SSE. Si se configura "stream": true en el cuerpo de la solicitud, la pasarela pasa por el flujo de SSE del proveedor sin transformarse:

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

Límites del flujo de respuesta

importante

AgentCore Gateway no impone un máximo de nivel de servicio en cuanto a la duración del flujo de respuesta ni al tamaño de la respuesta. Si no configuras una política de límite de tokens en el destino de tu puerta de enlace, cada solicitud puede generar una respuesta de streaming ilimitada.

Sin una política de límite de token configurada, las respuestas ilimitadas pueden provocar los siguientes problemas:

  • Agotamiento de los recursos de la puerta de enlace: la puerta de enlace mantiene abiertos los recursos informáticos (memoria, ranuras del conjunto de conexiones HTTP y CPU para la evaluación de políticas) durante cada respuesta de transmisión. Los flujos simultáneos de gran tamaño pueden agotar los recursos de las tareas de la pasarela.

  • Amplificación de los costes de las credenciales compartidas: todos los usuarios que pasan por el mismo destino comparten un conjunto de credenciales de proveedor. Un único usuario que envíe max_tokens solicitudes elevadas puede consumir la cuota de tokens por minuto (TPM) del proveedor para todos los usuarios de ese objetivo.

  • Efectos de vecindad ruidosa: la limitación Requests-per-minute (RPM) limita el número de solicitudes, pero no el costo por solicitud. Un solo usuario puede generar solicitudes con el máximo coste dentro del límite de RPM, lo que reduce el rendimiento de otros usuarios.

Para mitigar estos riesgos, configure una política de límite de tokens en los objetivos de su pasarela. Para obtener más información, consulte Políticas de puerta de enlace.

Autorización de salida

Los destinos del conector de inferencia admiten los siguientes tipos de autorización de salida:

  • IAM (SiGv4): se usa GATEWAY_IAM_ROLE para los proveedores que aceptan la autenticación de IAM (como Amazon Bedrock).

  • Clave de API: se usa API_KEY para los proveedores que requieren una clave de API (como OpenAI y Anthropic). La puerta de enlace inyecta la clave de API almacenada en las solicitudes salientes.