Optimiza el Ciclo de Desarrollo de Agentes de IA con Amazon Bedrock AgentCore Runtime y Despliegue Directo

El servicio admite despliegues basados en contenedores, donde los agentes se empaquetan como imágenes de contenedor mediante Dockerfiles. Para aquellos con flujos de trabajo existentes de DevOps para contenedores, esto se integra sin problemas. Sin embargo, AgentCore Runtime ahora ofrece una segunda opción: el despliegue directo de código (direct code deployment), específicamente para Python.

Esta modalidad permite empaquetar el código del agente y sus dependencias en un archivo ZIP, eliminando la necesidad de Docker o repositorios de Amazon ECR. Facilita la creación de prototipos y acelera las iteraciones, ideal para desarrolladores que buscan simplicidad.

Despliegue basado en contenedores: Requiere crear un Dockerfile, construir un contenedor compatible con ARM, gestionra un repositorio de Amazon ECR y subir la imagen. Es adecuado para personalizaciones complejas o dependencias específicas.

Despliegue directo: Implica empaquetar el código en ZIP, subirlo a Amazon S3 y configurarlo en AgentCore. Reduce el tiempo de despliegue, especialmente en actualizaciones, y simplifica el proceso al omitir pasos relacionados con Docker.

A continuación, se demuestra el despliegue directo usando el SDK de Strands Agents y el kit de inicio de AgentCore.

Requisitos Previos

  • Python 3.10 a 3.13.
  • Gestor de paquetes como uv.
  • Cuenta de Amazon Web Services con acceso al modelo Anthropic Claude Sonnet en Amazon Bedrock.

Paso 1: Inicializar el Proyecto

Crea un nuevo proyecto Python con uv y accede al directorio.


uv init mi-proyecto-agente --python 3.13
cd mi-proyecto-agente

Paso 2: Añadir Dependencias

Instala las bibliotecas necesarias para AgentCore y Strands.


uv add bedrock-agentcore strands-agents strands-agents-tools
uv add --dev bedrock-agentcore-starter-kit
source .venv/bin/activate

Paso 3: Crear el Archivo del Agente (agent.py)

Define el comportamiento del agente. Este ejemplo incluye una herramienta personalizada y un modelo de Bedrock.


from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent, tool
from strands_tools import calculator
from strands.models import BedrockModel
import logging

# Configuración de la aplicación
agent_app = BedrockAgentCoreApp(debug_mode=True)

# Registro de logs
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__name__)

# Herramienta personalizada para obtener clima
@tool
def obtener_clima():
    """ Devuelve condiciones climáticas simuladas """
    return "soleado con nubes dispersas"

# Especificar el modelo de IA
modelo_id = "us.anthropic.claude-sonnet-4-20250514-v1:0"
modelo_ia = BedrockModel(model_id=modelo_id)

# Inicializar el agente
agente_ia = Agent(
    model=modelo_ia,
    tools=[calculator, obtener_clima],
    system_prompt="Eres un asistente útil. Puedes realizar cálculos matemáticos simples y proporcionar información climática."
)

# Punto de entrada del agente
@agent_app.entrypoint
def procesar_solicitud(payload):
    """ Función principal del agente """
    entrada_usuario = payload.get("prompt", "¡Hola! ¿En qué puedo ayudarte hoy?")
    log.info("Entrada del usuario: %s", entrada_usuario)
    respuesta = agente_ia(entrada_usuario)
    log.info("Resultado del agente: %s", respuesta.message)
    return respuesta.message['content'][0]['text']

if __name__ == "__main__":
    agent_app.run()

Paso 4: Desplegar en AgentCore Runtime

Configura y lanza el agente con el despliegue directo.


agentcore configure --entrypoint agent.py --name agente-clima-demo

Durante la configuración, selecciona el tipo de despliegue "Code Zip" y especifica un bucket de S3 para el archivo ZIP.

Para iniciar el despliegue:


agentcore launch

Esto crea y sube el paquete ZIP, desplegando el agente en AgentCore Runtime. Para probarlo:


agentcore invoke '{"prompt":"¿Qué tiempo hace hoy?"}'

El primer despliegue puede tardar alrededor de 30 segundos, pero las actualizaciones posteriores se completan en aproximadamente 10 segundos, acelerando significativamente los ciclos de iteración.

Despliegue directo: Ideal para paquetes menores de 250 MB, proyectos Python 3.10-3.13, y cuando se prioriza la velocidad de desarrollo. Perfecto para prototipos rápidos y flujos de trabajo simples.

Despliegue basado en contenedores: Recomendado para paquetes grandes (hasta 2 GB), necesidades multilingüe, dependencias complejas, o cuando ya existe una canalización de CI/CD para contenedores. Ofrece mayor control y personalización.

Para muchos equipos, un enfoque híbrido funciona mejor: usar despliegue directo para iteraciones rápidas y cambiar a contenedores para implementaciones de producción con requisitos avanzados.

Para más detalles, consulta la documentación oficial de Amazon Bedrock AgentCore.

Etiquetas: Amazon Bedrock AgentCore Runtime Python Serverless AI Agents

Publicado el 7-3 16:21