Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Extracción de memoria

Las conversaciones y sesiones entre agentes generan conocimiento en dos formas: memoria a corto plazo y memoria a largo plazo. La memoria a corto plazo almacena la conversación paso a paso. La memoria a largo plazo almacena el conocimiento extraído de esa conversación, ya sea mediante extracción de memoria o como escritura directa desde un agente o aplicación. Para obtener más información sobre las diferencias entre las dos capas de memoria, consulte Memoria del agente.

El motor Atlas Agent Engine realiza la extracción en segundo plano a través de cuatro etapas:

  1. Almacena los turnos de conversación en el clúster de MongoDB configurado. Para los agentes implementados en la plataforma, esto sucede automáticamente cuando se habilita la memoria.

  2. Un proceso propiedad de la plataforma supervisa estas escrituras por sesión y, basándose en parámetros de tamaño y tiempo configurables, las agrupa en instantáneas.

  3. Un LLM extrae recuerdos a largo plazo de cada instantánea. Puedes configurar qué tipos de memoria extrae en la configuración de memoria del proyecto.

  4. Concilia cada recuerdo extraído con lo que ya sabe.

La plataforma almacena los turnos de conversación en el clúster de MongoDB configurado a medida que se producen. Para los agentes implementados en la plataforma, esto sucede automáticamente cuando se habilita la memoria. Los turnos de una conversación se acumulan en la memoria a corto plazo hasta que la plataforma los convierte en una instantánea de sesión. Una sesión puede convertirse en instantánea cuando alcanza un número máximo de mensajes o permanece inactiva durante un período configurado.

Una vez que cumplen los requisitos, los turnos no registrados de una sesión se promocionan conjuntamente. Cada instantánea abarca una secuencia continua de la conversación como una única unidad delimitada. Una sesión larga genera una serie de instantáneas a medida que se acumulan nuevos turnos. Cada pasada de extracción lee desde una instantánea, no desde turnos individuales.

Importante

Identidad de memoria de la cuenta de servicio

Cuando una cuenta de servicio invoca un agente implementado, el motor de agentes de Atlas utiliza la identidad de la propia cuenta de servicio como identidad de memoria en tiempo de ejecución. La plataforma ignora cualquier valor user_id del usuario final que proporcione la solicitud de invocación o el indicador agentengine invoke --user-id.

Las operaciones automáticas de grabación, extracción, consolidación y app.memory utilizan esta identidad resuelta. Como resultado, las invocaciones que se autentican a través de la misma cuenta de servicio comparten un ámbito de usuario de memoria.

Esta limitación se aplica únicamente a los agentes desplegados que invoca una cuenta de servicio. El servicio de memoria independiente, con ámbito de proyecto, no se ve afectado. Este servicio continúa aceptando valores explícitos de user_id y session_id del emisor.

Para aislar la memoria por usuario final, llame al servicio de memoria independiente desde su aplicación y pase los valores user_id y session_id explícitos en cada llamada. Para obtener más información, consulte la sección "Uso del servicio de memoria independiente".

Registrar un turno implica una escritura rápida en la memoria a corto plazo. La plataforma no realiza ninguna extracción durante dicha escritura.

Un proceso en segundo plano, propiedad de la plataforma, se ejecuta de forma asíncrona, comprobando si las sesiones cumplen los requisitos para la promoción y buscando periódicamente sesiones inactivas. Un trabajador en segundo plano se encarga de esta tarea y ejecuta los controladores de extracción habilitados en cada instantánea recién promocionada.

El agente nunca espera a que finalice esta tarea. El conocimiento adquirido en una conversación está disponible en la siguiente, en lugar de en el siguiente turno de la conversación actual. Los turnos recientes permanecen disponibles a través de la memoria a corto plazo. El conocimiento a largo plazo extraído aparece una vez finalizada la extracción.

La extracción destila una instantánea en cuatro tipos de memoria a largo plazo. Cuando una instantánea está lista, el controlador de extracción de cada tipo de memoria habilitado la lee de forma independiente. Un controlador no clasifica un turno como perteneciente a un tipo u otro. En cambio, le indica a un LLM que busque su tipo específico de conocimiento en la instantánea. Cada controlador extrae y almacena un resultado diferente:

  • Semántico: hechos, conciliados con lo que la plataforma ya sabe.

  • Episódico: eventos y sus participantes, cada uno almacenado con un resumen de lo sucedido.

  • Procedimental: procedimientos reutilizables que la conversación demostró

  • Taxonomía: términos de dominio y sus definiciones

Los recuerdos extraídos reciben una representación vectorial en el momento de la extracción, lo que permite a la plataforma encontrarlos mediante búsqueda semántica en conversaciones posteriores. Una representación vectorial es una representación numérica del significado de un recuerdo. El gestor de extracción semántica utiliza estas representaciones para comparar un nuevo dato con la información que ya posee.

Para obtener más información sobre cada tipo de memoria a largo plazo, consulte Tipos de memoria a largo plazo.

Cada gestor de extracción concilia los nuevos recuerdos con lo que la plataforma ya sabe, de modo que la información repetida o en evolución no crea registros duplicados o contradictorios. Cada gestor aplica una de tres acciones a un recuerdo extraído:

  • ADDLa memoria extraída no coincide con ningún registro existente en el ámbito del llamador, por lo que el controlador crea un nuevo documento.

  • UPDATELa información extraída reemplaza un registro existente, como por ejemplo, el de un usuario que informa sobre un nuevo aeropuerto de residencia. El gestor crea una nueva versión del documento y marca la versión anterior como obsoleta.

  • REINFORCELa memoria extraída reinterpreta un registro existente. El gestor no crea un duplicado, sino que refuerza el registro existente. Por ejemplo, incrementa el contador de refuerzo de un hecho semántico o integra nueva evidencia en un término taxonómico existente.

La reconciliación mantiene vigente la memoria a largo plazo al tiempo que preserva la historia de cómo se aprendió y reforzó cada recuerdo.

Puedes configurar qué tipos de memoria a largo plazo extrae automáticamente la plataforma en el archivo project-config.yaml de tu proyecto:

memory:
extraction:
enabled:
- semantic
- episodic
- procedural
- taxonomic

La plataforma entrega la lista enabled al servidor de memoria como la variable de entorno MONGOMEM_ENABLED_EXTRACTIONS. Eliminar un tipo de la lista solo desactiva su extracción automática en segundo plano. Su aplicación aún puede guardar ese tipo de memoria directamente a través del kit de desarrollo de software (SDK).

Tras editar la lista, ejecute agentengine memory configure para cargar la configuración y, a continuación, agentengine memory apply --wait para aplicarla y reiniciar el servidor de memoria. Espere hasta que indique que está listo. Ejecute agentengine memory status para confirmar que el cambio se ha aplicado. Para obtener más información sobre el flujo de trabajo de configuración completo, consulte Configurar la memoria.

El servidor de memoria requiere tanto un proveedor de incrustación como una clave de proveedor LLM para estar listo, independientemente de los tipos de extracción habilitados. Si el proyecto no tiene configurada una clave de proveedor LLM, la plataforma fallará durante la implementación antes de que se inicie el servidor de memoria. Para obtener más información sobre estos requisitos previos, consulte la sección Requisitos previos de Agregar memoria a su agente.

Una vez que comprenda cómo funciona la extracción, puede explorar las siguientes guías: