Agentes de IA

Implementación de memoria persistente para agentes con NVIDIA NeMo y AWS S3 Vectors

Una guía técnica detalla cómo construir una memoria a largo plazo escalable y consistente para agentes de IA utilizando el NVIDIA NeMo Agent Toolkit y Amazon S3 Vectors en EKS.

Traducido automáticamente del original en inglés.

Los ingenieros que desarrollan sistemas multiagente ahora disponen de una ruta concreta para implementar memoria persistente y compartida mediante el NVIDIA NeMo Agent Toolkit (NAT) respaldado por Amazon S3 Vectors. Publicada en octubre de 2026, esta guía técnica demuestra cómo desplegar estos componentes en Amazon Elastic Kubernetes Service (EKS) para resolver los desafíos de consistencia y escalabilidad en entornos de producción.

Qué ha ocurrido

El artículo ofrece una estrategia de implementación paso a paso para crear un proveedor de memoria personalizado dentro de NAT. Aunque NAT admite backends existentes como Redis y Zep, la guía argumenta que Amazon S3 Vectors es más adecuado para sistemas multiagente de producción que requieren escala elástica y fuerte consistencia de escritura. Los autores explican cómo crear la infraestructura necesaria, escribir un plugin personalizado y configurar el flujo de trabajo del agente.

El núcleo de la implementación implica definir una interfaz MemoryEditor, que sirve como contrato de plugin para backends personalizados. Los desarrolladores deben implementar tres métodos específicos: add_items(), search() y remove_items(). Este plugin permite a los agentes almacenar el historial de conversaciones, las preferencias del usuario y el conocimiento a largo plazo como objetos MemoryItem, que incluyen campos de metadatos para filtrar y limitar las consultas.

El despliegue depende de Amazon EKS para el control operativo del ciclo de vida del agente. La arquitectura utiliza el HorizontalPodAutoscaler para escalar las réplicas del agente según la utilización de CPU. Cada réplica se conecta al mismo índice de S3 Vectors utilizando Roles de IAM para Cuentas de Servicio (IRSA). Esta configuración garantiza que cualquier pod que maneje una solicitud pueda acceder a las memorias más recientes sin necesidad de estrategias de invalidación de caché.

Cómo funciona

El sistema opera envolviendo los agentes estándar con un componente auto_memory_agent. Este wrapper gestiona automáticamente la captura y recuperación del contexto, eliminando la necesidad de que el modelo de lenguaje grande invoque explícitamente herramientas de memoria en cada turno. Cuando un agente genera una respuesta, el sistema incrusta el contenido utilizando un modelo como Amazon Titan Text Embeddings V2 y lo almacena en el índice de S3 Vectors.

S3 Vectors actúa como el backend duradero, admitiendo hasta dos mil millones de vectores por índice. Proporciona recuperación semántica utilizando métricas de distancia configurables, como similitud coseno o euclidiana. Crucialmente, ofrece fuerte consistencia de escritura, lo que significa que cuando un pod de agente escribe una memoria, todos los demás pods la ven inmediatamente. Esto elimina las condiciones de carrera comunes en bases de datos eventualmente consistentes cuando múltiples agentes coordinan una sola tarea.

El filtrado de metadatos permite a los agentes limitar sus búsquedas de manera efectiva. Cada vector puede llevar metadatos de tipo cadena, número, booleano o lista, lo que habilita consultas dirigidas a usuarios, sesiones o temas específicos. Esta estructura admite diferentes tipos de memoria, incluyendo episódica, semántica y procedimental, permitiendo al sistema recuperar solo el contexto más relevante para una interacción dada.

Detalles clave

  • Interfaz de Plugin: Los backends de memoria personalizados deben implementar la interfaz abstracta MemoryEditor con los métodos add_items, search y remove_items.
  • Modelo de Consistencia: Amazon S3 Vectors proporciona fuerte consistencia de escritura, garantizando la visibilidad inmediata de nuevas memorias en todos los pods de agentes sin gestión de caché.
  • Mecanismo de Escalado: Las réplicas de agentes en Amazon EKS escalan mediante HorizontalPodAutoscaler basado en el uso de CPU, con todas las instancias compartiendo un único índice de S3 Vectors.
  • Métricas de Evaluación: El entorno de evaluación de NAT (nat eval) mide mejoras en fundamentación, uso de tokens, latencia y reducción de trabajo duplicado.
  • Límites de Infraestructura: S3 Vectors admite hasta dos mil millones de vectores por índice, sin necesidad de planificación de capacidad y con precios por uso para almacenamiento y consultas.
  • Control de Acceso: La seguridad se gestiona mediante políticas de AWS IAM por bucket e índice, permitiendo aislamiento estricto entre inquilinos o equipos.

Por qué importa

Para los equipos de software que construyen flujos de trabajo complejos de agentes, la gestión de memoria suele ser un cuello de botella. Sin una capa de memoria compartida y consistente, los agentes repiten trabajo, pierden contexto entre sesiones y tienen dificultades para coordinarse. Al descargar la memoria a S3 Vectors, los desarrolladores obtienen un sistema que escala elásticamente sin gestionar recursos informáticos ociosos. Esto reduce la sobrecarga operativa mientras mejora la fiabilidad de las colaboraciones multiagente.

La capacidad de cuantificar el impacto de la memoria también es significativa. La guía destaca que habilitar la memoria generalmente mejora la fundamentación al proporcionar contexto de fuente verificable y reduce el uso de tokens al omitir la re-derivación de hechos conocidos. Aunque la latencia aumenta ligeramente debido a las consultas vectoriales, el intercambio de resultados a menudo conduce a salidas de mayor calidad y menores costos generales para tareas repetitivas. Este enfoque basado en datos ayuda a los ingenieros a ajustar parámetros como top_k y umbrales de similitud para equilibrar costo y rendimiento.

Qué puedes hacer

  • Instala NVIDIA NeMo Agent Toolkit versión 1.6 o posterior y asegúrate de que tu entorno ejecute Python 3.11 o 3.12.
  • Crea un bucket y un índice de Amazon S3 Vectors con un esquema de metadatos que coincida con los requisitos de memoria de tu agente, utilizando 1024 dimensiones para las incrustaciones de Titan.
  • Implementa la interfaz MemoryEditor en Python para conectar NAT a tu índice de S3 Vectors, gestionando la generación de incrustaciones y el etiquetado de metadatos.
  • Configura el wrapper auto_memory_agent en tu configuración YAML de NAT para habilitar la captura y recuperación automática de memoria para tus agentes.
  • Ejecuta evaluaciones comparativas usando nat eval con y sin memoria habilitada para medir cambios en precisión, fundamentación y consumo de tokens.
  • Ajusta los parámetros de búsqueda y filtrado basándote en los resultados de las evaluaciones para optimizar el equilibrio entre costo y rendimiento.

Herramientas de la Tienda de Bytechap

$79

WorkBento

Suite de RR. HH. y gestión del entorno laboral impulsada por IA que puedes alojar tú mismo.

Demo en vivo

Seguir leyendo

Todos los artículos