🇻🇪🇨🇱 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
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
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
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
)
💾 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}"""
)
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}"""
)
El agente:
- Procesa la imagen usando
image_reader
- Analiza el diagrama arquitectónico
- Almacena automáticamente el análisis en memoria usando
s3_vector_memory
- 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)
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)
🔍 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
)
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']}")
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
- Clona el repositorio:
git clone https://github.com/elizabethfuentes12/strands-agent-samples
cd notebook
- Instala las dependencias:
pip install -r requirements.txt
Configura las credenciales de AWS para acceso a Bedrock
Prueba el notebook:
multi-understanding-with-s3-memory.ipynb
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:
- Documentación de Amazon S3 Vectors
- Framework Strands Agent
- Amazon Bedrock Knowledge Bases
- Publicación anterior: Procesamiento de Contenido Multi-Modal con FAISS
- Ejemplos de Código Completo
- Comenzando con Strands Agents
¡Mantente atento para más implementaciones de Strands Agent!
¡Gracias!
🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube
Linktr
Top comments (0)