Las organizaciones implementan cada vez más modelos de habla egregio (LLM) personalizados en puntos finales de IA en tiempo actual de Amazon SageMaker utilizando sus marcos de servicio preferidos, como SGLang, vLLM o TorchServe, para ayudar a obtener un longevo control sobre sus implementaciones, optimizar costos y alinearse con los requisitos de cumplimiento. Sin bloqueo, esta flexibilidad introduce un desafío técnico crítico: incompatibilidad de formato de respuesta con agentes de Strands. Si aceptablemente estos marcos de servicio personalizados generalmente devuelven respuestas en formatos compatibles con OpenAI para simplificar un amplio soporte del entorno, Agentes de hebras Espere respuestas maniquí alineadas con el formato API de Bedrock Messages.
El desafío es particularmente importante porque la compatibilidad con la API de mensajes no está garantizada para los modelos alojados en SageMaker IA puntos finales en tiempo actual. Mientras Motor de inferencia distribuida Amazon Bedrock Mantle ha admitido los formatos de transporte OpenAI desde diciembre de 2025, la flexibilidad de SageMaker AI permite a los clientes penetrar varios modelos básicos, algunos de los cuales requieren formatos esotéricos de mensajes y respuestas que no se ajustan a las API habitual. Esto crea una brecha entre la estructura de salida del ámbito de servicio y lo que Strands dilación, lo que impide una integración perfecta a pesar de que los dos sistemas son técnicamente funcionales. La decisión está en implementar analizadores de modelos personalizados que se extienden SageMakerAIModelo y traducir el formato de respuesta del servidor maniquí a lo que Strands dilación, permitiendo a las organizaciones beneficiarse sus marcos de servicio preferidos sin inmolar la compatibilidad con el SDK de Strands Agents.
Esta publicación demuestra cómo crear analizadores de modelos personalizados para agentes de Strands cuando se trabaja con LLM alojados en SageMaker que no admiten de forma nativa el formato API de Bedrock Messages. Revisaremos la implementación de Lumbre 3.1 con SGLang en SageMaker usando awslabs/ml-contenedor-creadory luego implementar un analizador personalizado para integrarlo con los agentes de Strands.
Analizadores personalizados de Strands
Los agentes de Strands esperan respuestas maniquí en un formato específico seguidor con la API de Bedrock Messages. Cuando implementa modelos utilizando marcos de servicio personalizados como SGLang, vLLM o TorchServe, normalmente devuelven respuestas en sus propios formatos, a menudo compatibles con OpenAI para un amplio soporte del entorno. Sin un analizador personalizado, encontrará errores como:
TypeError: 'NoneType' object is not subscriptable
Esto sucede porque los agentes de Strands incumplen SageMakerAIModel La clase intenta analizar las respuestas asumiendo una estructura específica que su punto final personalizado no proporciona. En esta publicación y en la pulvínulo del código complementario, ilustramos cómo extender el SageMakerAIModel clase con razonamiento de exploración personalizada que traduce el formato de respuesta de su servidor maniquí a lo que Strands dilación.
Descripción universal de la implementación
Nuestra implementación consta de tres capas:
- Capa de implementación del maniquí: Lumbre 3.1 servido por SGLang en SageMaker, que devuelve respuestas compatibles con OpenAI
- Capa de analizador: Costumbre
LlamaModelProviderclase que se extiendeSageMakerAIModelpara manejar el formato de respuesta de Lumbre 3.1 - Capa de agente: Agente de Strands que utiliza el proveedor personalizado para la IA conversacional, analizando adecuadamente la respuesta del maniquí.
Empezamos usando awslabs/ml-contenedor-creadorun creador Yeoman de código franco de AWS Labs que automatiza la creación de proyectos de implementación BYOC (Bring Your Own Container) de SageMaker. Genera los artefactos necesarios para crear contenedores de servicio LLM, incluidos Dockerfiles, configuraciones de CodeBuild y scripts de implementación.
Instalar ml-contenedor-creador
El primer paso que debemos dar es construir el recipiente para servir para nuestro maniquí. Usamos un esquema de código franco para construir el contenedor y crear scripts de implementación para ese contenedor. Los siguientes comandos ilustran cómo instalar awslabs/ml-contenedor-creador y sus dependencias, que incluyen mpn y Rico. Para obtener más información, revise el esquema LÉAME y wiki para emprender.
Crear esquema de implementación
Una vez instalado y vinculado, el comando yo le permite ejecutar los generadores instalados, yo ml-container-creator le permite ejecutar el creador que necesitamos para este adiestramiento.
El creador crea una estructura de esquema completa:
Construir e implementar
Proyectos construidos por awslabs/ml-contenedor-creador Incluye scripts de compilación e implementación con plantillas. El ./deploy/submit_build.sh and ./deploy/deploy.sh Los scripts se utilizan para crear la imagen, enviarla a Amazon Elastic Container Registry (ECR) e implementarla en un punto final de IA en tiempo actual de Amazon SageMaker.
El proceso de implementación:
- CodeBuild crea la imagen de Docker con SGLang y Lumbre 3.1
- La imagen se envía a Amazon ECR
- SageMaker crea un punto final en tiempo actual
- SGLang descarga el maniquí de HuggingFace y lo carga en la memoria de la GPU
- El terminal alcanza el estado InService (aproximadamente entre 10 y 15 minutos)
Podemos probar el punto final usando ./test/test_endpoint.sho con una invocación directa:
Comprender el formato de respuesta
Lumbre 3.1 devuelve respuestas compatibles con OpenAI. Strands dilación que las respuestas del maniquí se adhieran al formato API de Bedrock Messages. Hasta finales del año pasado, esto era una discrepancia de compatibilidad habitual. Desde diciembre de 2025, el El motor de inferencia distribuida de Amazon Bedrock Mantle admite formatos de transporte OpenAI:
Sin bloqueo, la compatibilidad con la API de mensajes no está garantizada para los modelos alojados en puntos finales en tiempo actual de SageMaker AI. SageMaker AI permite a los clientes penetrar muchos tipos de modelos básicos en una infraestructura administrada acelerada por GPU, algunos de los cuales pueden requerir formatos esotéricos de aviso/respuesta. Por ejemplo, el valencia predeterminado SageMakerAIModel utiliza el formato API de Bedrock Messages heredado e intenta conseguir a campos que no existen en el formato habitual de OpenAI Messages, lo que provoca TypeError Fallos de estilo.
Implementación de un analizador de modelos personalizado
Los analizadores de modelos personalizados son una característica del SDK de agentes de Strands que proporciona una gran compatibilidad y flexibilidad para los clientes que crean agentes impulsados por LLM alojados en SageMaker AI. Aquí describimos cómo crear un proveedor personalizado que extienda SageMakerAIModel:
El método de flujo anula el comportamiento del SageMakerAIModel y permite al agente analizar respuestas basadas en los requisitos del maniquí subyacente. Si aceptablemente la gran mayoría de los modelos son compatibles con el protocolo Message API de OpenAI, esta capacidad permite a los usuarios avanzados beneficiarse LLM enormemente específicos en SageMaker AI para impulsar cargas de trabajo de agentes utilizando Strands Agents SDK. Una vez creada la razonamiento de respuesta del maniquí personalizado, Strands Agents SDK simplifica la inicialización de agentes con proveedores de modelos personalizados:
La implementación completa de este analizador personalizado, incluido el cuaderno Jupyter con explicaciones detalladas y el esquema de implementación ml-container-creator, está habitable en el complemento repositorio de GitHub.
Conclusión
La creación de analizadores de modelos personalizados para agentes de Strands ayuda a los usuarios a beneficiarse diferentes implementaciones de LLM en SageMaker, independientemente de su formato de respuesta. Al extender SageMakerAIModel e implementar el stream() método, puede integrar modelos alojados personalizados mientras mantiene la interfaz de agente limpia de Strands.
Conclusiones esencia:
- awslabs/ml-contenedor-creador simplifica las implementaciones BYOC de SageMaker con código de infraestructura vivo para producción
- Los analizadores personalizados cierran la brecha entre los formatos de respuesta del servidor maniquí y las expectativas de Strands
- El método stream() es el punto de integración crítico para los proveedores personalizados.
Sobre los autores
Daniel Ferguson es arquitecto senior de soluciones en AWS, con sede en Nueva York, EE. UU. Como versado en servicios de formación automotriz, Dan trabaja para ayudar a los clientes en su camino en torno a la integración de flujos de trabajo de formación automotriz de guisa apto, efectiva y sostenible.
