DEV Community

Cover image for Construye Agentes de IA que Nunca Olvidan: Amazon S3 Vectors + Strands Agent
Elizabeth Fuentes L for AWS Español

Posted on

Construye Agentes de IA que Nunca Olvidan: Amazon S3 Vectors + Strands Agent

🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube
Linktr

Repositorio de GitHub: Strands Agent Samples

Parte 3: Añadiendo Memoria Persistente con Amazon S3 Vector Store

Construir agentes de IA sofisticados no tiene que ser complejo. Como demostramos en mi primera publicación del blog, el framework de código abierto Strands Agent hace que sea notablemente simple crear agentes de IA multimodales con solo unas pocas líneas de código. Ya sea que estés procesando imágenes, documentos o videos, Strands mantiene esta simplicidad mientras proporciona capacidades poderosas.

Esta publicación continúa mi serie de desarrollo de agentes de IA, basándose en nuestra exploración previa de agentes de IA multimodales con el framework Strands Agent usando FAISS para almacenamiento de memoria local. Ahora, avanzamos a capacidades de escala empresarial con Amazon S3 Vectors – el servicio de almacenamiento de objetos de AWS con soporte nativo de vectores que transforma cómo construyes aplicaciones de IA escalables sin sacrificar la simplicidad que hace a Strands Agent tan accesible.

De Local a la Nube: Memoria de IA Lista para Producción

Mientras que FAISS funciona efectivamente para desarrollo local y creación de prototipos, los agentes de IA en producción requieren capacidades escalables. Amazon S3 Vectors proporciona estas capacidades con ventajas de costo en comparación con bases de datos vectoriales tradicionales mientras mantiene un rendimiento de consultas de subsegundos a escala.

Capacidades Principales de Amazon S3 Vectors

s3

Amazon S3 Vectors ofrece almacenamiento de objetos en la nube con soporte nativo de vectores. Este enfoque reduce la complejidad de gestionar infraestructura vectorial separada mientras proporciona:

  • Escalabilidad masiva: Cada índice vectorial soporta almacenamiento vectorial a gran escala
  • Servicio administrado: Completamente administrado con optimización automática
  • Seguridad empresarial: Integración nativa con AWS Identity and Access Management (AWS IAM) con aislamiento de usuarios
  • Disponibilidad global: Soporte multi-región con recuperación ante desastres incorporada

Paso 1: Configuración del Bucket S3

Antes de comenzar, necesitas crear un bucket S3 que servirá como backend para tu memoria vectorial.

Puntos de configuración importantes:

  • Asegúrate de que el bucket esté en la misma región donde ejecutarás tu aplicación
  • Habilita el versionado para seguridad adicional
  • Configura políticas de acceso IAM apropiadas

Buckets e Índices Vectoriales

S3 Vectors introduce un tipo de bucket diseñado específicamente para datos vectoriales. Dentro de cada bucket, puedes crear múltiples índices vectoriales, cada uno capaz de almacenar vectores con metadatos adjuntos para filtrado sofisticado.

Métricas de Distancia y Rendimiento

Amazon S3 Vectors soporta cálculos de distancia tanto Coseno como Euclidiana.

Agente Mejorado de Procesamiento de Contenido Multi-Modal

Está aquí en este notebook

Nuestros agentes actualizados de Strands Agents ahora soportan S3 Vectors de forma nativa usando la herramienta s3_memory, proporcionando:

Operaciones Principales de Memoria

  • store(): Persiste conversaciones del agente e insights aprendidos
  • retrieve(): Consulta experiencias similares y contexto
  • list(): Enumera memorias almacenadas con metadatos
  • auto_store_and_retrieve(): Gestión inteligente de contexto
  • auto_context(): Continuidad dinámica de conversación

Procesamiento de Contenido Multi-Modal

Similar a nuestra implementación FAISS, el nuevo agente mantiene soporte completo para procesar imágenes, documentos y videos con memoria persistente entre sesiones.

🛠️ Configurando el Agente Mejorado

Primero, necesitas configurar las variables:

# Configuración del entorno para S3 Vectors
VECTOR_BUCKET_NAME = "tu-bucket-vectorial"
VECTOR_INDEX_NAME = "agent-memory-index"
USER_ID = "identificador-unico-usuario"  # Para aislamiento de usuarios
Enter fullscreen mode Exit fullscreen mode

Comencemos configurando nuestro agente con capacidades de memoria S3:

# Configuración del modelo
model = BedrockModel(
    model_id="us.anthropic.claude-3-5-sonnet-20241022-v2:0",
    region="us-east-1"
)

# Prompt del sistema para procesamiento multimodal con memoria
MULTIMODAL_SYSTEM_PROMPT = """Eres un asistente de IA con capacidades de procesamiento multimodal y memoria persistente.

Tus capacidades:
- **Análisis Multi-Modal**: Procesa imágenes, documentos, videos y texto
- **Memoria Persistente**: Recuerda preferencias, análisis previos e historial de conversación
- **Conciencia de Contexto**: Usa la memoria para proporcionar respuestas personalizadas y contextuales
- **Aprendizaje Continuo**: Construye comprensión a lo largo del tiempo mediante acumulación de memoria

Guías de Uso de Memoria:
- Verifica memorias relevantes antes de responder
- Almacena insights importantes, preferencias y resultados de análisis
- Referencia conversaciones previas cuando sea relevante
- Mantén continuidad de conversación entre sesiones

Al procesar contenido:
1. Primero recupera memorias relevantes para contexto
2. Analiza el nuevo contenido exhaustivamente
3. Almacena insights y hallazgos clave
4. Proporciona respuestas comprensivas usando tanto el nuevo análisis como el contexto de memoria
"""

# Crear el agente multimodal con memoria S3 Vectors
multimodal_agent = Agent(
    model=model,
    tools=[
        s3_vector_memory,  # Nuestra herramienta de memoria S3 Vectors
        image_reader,      # Procesamiento de imágenes
        file_read,         # Procesamiento de documentos  
        video_reader,      # Procesamiento de videos
        use_llm           # Razonamiento avanzado
    ],
    system_prompt=MULTIMODAL_SYSTEM_PROMPT
)
Enter fullscreen mode Exit fullscreen mode

💾 Operaciones de Memoria en Acción

1. Almacenando Contexto Inicial del Usuario

Primero, almacenemos información básica sobre nuestro usuario:

response1 = multimodal_agent(
    f"""Hola, soy Elizabeth Fuentes. Puedes llamarme Eli, soy developer advocate en AWS, me gusta trabajar temprano en la mañana, 
    prefiero café italiano, y quiero entender qué hay en imágenes, videos y documentos para mejorar mi trabajo diario. 
    También estoy muy interesada en inteligencia artificial y trabajo en el sector financiero.

    Por favor guarda esta información sobre mis preferencias para futuras conversaciones.

    USER_ID: {USER_ID}"""
)
Enter fullscreen mode Exit fullscreen mode

2. Análisis de Imagen con Almacenamiento en Memoria

Ahora analicemos una imagen y almacenemos automáticamente los resultados:

print("=== 📸 ANÁLISIS DE IMAGEN CON MEMORIA ===")
image_result = multimodal_agent(f"""
                                  Analiza la imagen data-sample/diagram.jpg en detalle y describe todo lo que observes. 
                                  USER_ID: {user_id}"""
)
Enter fullscreen mode Exit fullscreen mode

El agente:

  1. Procesa la imagen usando image_reader
  2. Analiza el diagrama arquitectónico
  3. Almacena automáticamente el análisis en memoria usando s3_vector_memory
  4. Proporciona una descripción detallada

3. Análisis de Video con Memoria

Procesemos un video y almacenemos su contenido:

print("=== 🎬 ANÁLISIS DE VIDEO CON MEMORIA ===")
video_result = multimodal_agent(
    "Analiza el video data-sample/moderation-video.mp4 y describe en detalle "
    "las acciones y escenas que observes. Almacena esta información en tu memoria."
)
print(video_result)
Enter fullscreen mode Exit fullscreen mode

4. Procesamiento de Documentos con Memoria

Procesa y recuerda el contenido de documentos:

print("=== 📄 ANÁLISIS DE DOCUMENTO CON MEMORIA ===")
doc_result = multimodal_agent(
    "Resume como json el contenido del documento data-sample/Welcome-Strands-Agents-SDK.pdf "
    "y almacena esta información en tu memoria."
)
print(doc_result)
Enter fullscreen mode Exit fullscreen mode

🔍 Recuperación y Gestión de Memoria

Recuperando Memorias Específicas

# Recuperar memorias relacionadas con una consulta específica
memory_result = s3_vector_memory(
    action="retrieve",
    query="preferencias e intereses",
    user_id=user_id
)
Enter fullscreen mode Exit fullscreen mode

Listando Todas las Memorias Almacenadas

# Listar todas las memorias
memory_result = s3_vector_memory(
    action="list",
    user_id=user_id
)
print(f"Total de memorias en el sistema: {memory_result['total_found']}")
Enter fullscreen mode Exit fullscreen mode

Casos de Uso en Producción

Sistemas de Memoria para Agentes de IA

Almacena contexto de conversación, preferencias de usuario y comportamientos aprendidos a través de múltiples usuarios con escalado automático y seguridad de nivel empresarial.

Generación Aumentada por Recuperación (RAG)

Construye bases de conocimiento rentables que crecen con los requisitos de tu negocio sin sobrecarga de gestión de infraestructura.

Aplicaciones de Búsqueda Semántica

Procesa y busca a través de grandes conjuntos de datos de contenido con tiempos de respuesta optimizados.

Recomendaciones Personalizadas

Mantén patrones de comportamiento de usuario y preferencias con disponibilidad multi-región incorporada.

Costo y Disponibilidad

Amazon S3 Vectors sigue el modelo de pago por uso de AWS sin costos iniciales de infraestructura. El servicio está actualmente disponible en vista previa en US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Frankfurt) y Asia Pacific (Sydney).

🚀 Comenzando

  1. Clona el repositorio:
   git clone https://github.com/elizabethfuentes12/strands-agent-samples
   cd notebook
Enter fullscreen mode Exit fullscreen mode
  1. Instala las dependencias:
   pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode
  1. Configura las credenciales de AWS para acceso a Bedrock

  2. Prueba el notebook:

   multi-understanding-with-s3-memory.ipynb
Enter fullscreen mode Exit fullscreen mode

La Ventaja de Strands Agent

Lo que hace único a Strands Agent es su compromiso con la simplicidad sin comprometer el poder. Ya sea que estés construyendo un prototipo con memoria FAISS local o desplegando un sistema de producción con Amazon S3 Vectors, la experiencia de desarrollo principal permanece consistente y accesible.

Esto concluye nuestra serie de tres partes explorando las capacidades del framework Strands Agent. A lo largo de esta serie, hemos mantenido el principio fundamental de que construir agentes de IA poderosos debe permanecer simple y accesible, incluso cuando escalamos a capacidades de nivel empresarial.

Lo Que Hemos Cubierto en Esta Serie:

Parte 1: Procesamiento de Contenido Multi-Modal con Solo Unas Pocas Líneas de Código - Mostramos cómo Strands Agent hace que sea fácil construir agentes que entienden imágenes, documentos y videos.
Parte 2: Añadiendo Memoria FAISS para Desarrollo Local - Mejoramos nuestros agentes con capacidades de memoria persistente para desarrollo local y creación de prototipos
Parte 3: Escalando con Amazon S3 Vectors - Evolucionamos a memoria de escala empresarial lista para producción con infraestructura en la nube

¿Listo para crear tu propio agente Strands? Aquí hay algunos recursos:


¡Mantente atento para más implementaciones de Strands Agent!


¡Gracias!

🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube
Linktr

Top comments (0)