Ir al contenido

IDEAS PRÁCTICAS · ASIMOV INGENIERÍA

5. Memoria en agentes de IA: cómo recuerdan y aprenden del contexto

Descubre cómo funciona la memoria en los agentes de inteligencia artificial, qué información pueden conservar, cómo utilizan el contexto de conversaciones anteriores y por qué la memoria es fundamental para crear agentes más útiles y personalizados.

Table of contents

No titles in the blog post

En los artículos anteriores de esta serie hemos visto cómo funcionan los agentes de inteligencia artificial, cómo razonan y planifican sus acciones, qué tipos de agentes existen según su nivel de autonomía y cómo pueden utilizar herramientas para conectarse con sistemas externos. Ahora que conocemos estos componentes, podemos abordar otra característica fundamental: la memoria.

Cuando hablamos con una persona, esperamos que pueda recordar información que le contamos anteriormente. Si le decimos nuestro nombre, nuestro trabajo o el objetivo de un proyecto, normalmente esperamos que pueda utilizar esos datos durante conversaciones posteriores. En el caso de una inteligencia artificial, esta capacidad no siempre funciona de la misma manera.

Un modelo de lenguaje puede trabajar con el contexto que recibe en una conversación, pero eso no significa necesariamente que tenga una memoria permanente de todo lo que ha ocurrido. Para que un agente pueda recordar información durante periodos más largos, es necesario diseñar mecanismos específicos de memoria.

La memoria permite que un agente conserve información relevante, recupere datos cuando los necesita y utilice experiencias o conversaciones anteriores para tomar mejores decisiones. Gracias a esto, podemos construir agentes capaces de mantener un contexto más amplio y ofrecer interacciones mucho más útiles.

1. ¿Qué significa que un agente tenga memoria?

La memoria de un agente de IA es el conjunto de mecanismos que le permiten conservar y recuperar información que puede ser útil posteriormente.

Esta información puede ser muy diferente dependiendo del objetivo del agente. Puede incluir mensajes anteriores de una conversación, preferencias de un usuario, resultados de tareas, información de un proyecto, documentos consultados o incluso experiencias obtenidas durante interacciones anteriores.

Por ejemplo, imaginemos un agente utilizado como asistente de programación. Durante una conversación, el usuario puede decirle que está desarrollando un proyecto utilizando Python y Flask.

Si el agente puede conservar esa información, posteriormente podría utilizarla para adaptar sus respuestas. En lugar de explicar ejemplos utilizando otro lenguaje, podría proporcionar soluciones orientadas a Python y Flask.

La memoria, por lo tanto, permite que el agente tenga una visión más completa del contexto en el que está trabajando.

Sin memoria, cada interacción puede parecer prácticamente independiente. Con memoria, el agente puede construir una relación más continua con la información que recibe.

2. Contexto y memoria no son exactamente lo mismo

Es importante distinguir entre contexto y memoria.

El contexto es la información que el modelo tiene disponible durante una interacción determinada. Por ejemplo, si una conversación contiene varios mensajes anteriores, el modelo puede utilizarlos para comprender qué se está hablando.

La memoria, en cambio, implica conservar información que puede ser recuperada posteriormente.

Podemos imaginarlo de una manera sencilla.

Si durante una conversación decimos:

"Estoy trabajando en un proyecto de automatización con Python."

El agente puede utilizar esa información como parte del contexto actual.

Pero si varios días después iniciamos otra conversación y el agente todavía puede recuperar que estamos trabajando en ese proyecto, entonces estamos hablando de una forma de memoria persistente.

Esta diferencia es importante porque un agente puede tener un contexto muy amplio sin necesariamente disponer de memoria permanente.

3. Memoria a corto plazo

Uno de los tipos más sencillos de memoria es la memoria a corto plazo.

Esta permite que el agente recuerde información dentro de una conversación o durante una tarea específica.

Por ejemplo, imaginemos que un usuario está trabajando con un agente y le proporciona las siguientes instrucciones:

"Estoy creando una aplicación web."

Después pregunta:

"¿Qué lenguaje debería utilizar?"

Más adelante pregunta:

"¿Y cómo puedo conectar la base de datos?"

Para responder correctamente, el agente necesita recordar que la conversación está relacionada con una aplicación web.

Esta información forma parte del contexto de la interacción.

La memoria a corto plazo es especialmente importante para mantener conversaciones coherentes. Sin ella, el agente tendría dificultades para comprender referencias como "eso", "el código anterior", "el proyecto que mencioné" o "continúa con el ejemplo anterior".

Sin embargo, esta memoria tiene límites. Los modelos de lenguaje trabajan con una cantidad determinada de contexto, por lo que no pueden mantener indefinidamente toda la información de una conversación.

Cuando la cantidad de información aumenta demasiado, puede ser necesario resumirla, seleccionar los datos más importantes o utilizar mecanismos de memoria externa.

Laptop screen showing a search bar

4. Memoria a largo plazo

La memoria a largo plazo permite almacenar información para recuperarla posteriormente, incluso después de que una conversación haya terminado.

Este tipo de memoria resulta especialmente interesante para los agentes porque permite mantener información entre diferentes sesiones.

Por ejemplo, un agente podría almacenar que un determinado usuario prefiere recibir información técnica mediante explicaciones detalladas y ejemplos prácticos.

En una conversación futura, podría recuperar esa información y adaptar sus respuestas.

Otro ejemplo sería un agente utilizado dentro de una empresa.

El agente podría almacenar información relacionada con un proyecto, como los objetivos, las decisiones tomadas anteriormente o determinadas características del sistema.

Cuando el usuario vuelva a trabajar con el agente, este podría recuperar esa información y continuar desde donde se quedó.

La memoria a largo plazo permite pasar de una inteligencia artificial que responde únicamente al contexto actual a un sistema capaz de construir una historia de interacción.

5. ¿Qué información debería guardar un agente?

Una pregunta importante al diseñar un sistema con memoria es decidir qué información vale la pena conservar.

No todo lo que ocurre durante una conversación necesita almacenarse.

Guardar absolutamente todos los mensajes puede generar una enorme cantidad de información y hacer más difícil encontrar posteriormente los datos relevantes.

Por eso, normalmente es necesario seleccionar la información importante.

Un agente podría almacenar preferencias del usuario, objetivos de un proyecto, configuraciones, resultados de tareas, información de clientes o decisiones tomadas anteriormente.

Por ejemplo, si un usuario está desarrollando un proyecto de software, puede ser útil recordar el lenguaje de programación, la arquitectura utilizada y determinados requisitos.

En cambio, puede no ser necesario guardar cada mensaje de una conversación informal.

Una buena memoria no consiste en recordar absolutamente todo. Consiste en conservar la información que realmente puede resultar útil en el futuro.

6. Memoria episódica

Otra forma de entender la memoria de un agente es mediante el concepto de memoria episódica.

La memoria episódica almacena acontecimientos o experiencias concretas.

Por ejemplo:

"El usuario solicitó generar un reporte el lunes."

"El agente realizó una consulta a una base de datos y obtuvo determinado resultado."

"El usuario rechazó una determinada propuesta."

Estos acontecimientos pueden ayudar al agente a comprender qué ha ocurrido anteriormente.

Imaginemos un agente encargado de gestionar tareas.

El usuario le dice:

"Recuérdame revisar el proyecto el viernes."

El agente puede registrar ese evento y posteriormente utilizarlo para responder cuando el usuario pregunte por sus tareas pendientes.

En sistemas más avanzados, la memoria episódica puede utilizarse para aprender de interacciones anteriores y mejorar la manera en que el agente realiza determinadas tareas.

7. Memoria semántica

La memoria semántica está relacionada con conocimientos y conceptos.

En lugar de almacenar solamente que ocurrió un evento específico, puede conservar información general.

Por ejemplo, un agente podría almacenar:

"El proyecto utiliza Python."

"El sistema utiliza una base de datos SQLite."

"El dispositivo utiliza un microcontrolador ESP32."

Esta información puede ser recuperada posteriormente para comprender mejor el entorno en el que trabaja el agente.

La memoria semántica resulta especialmente útil en agentes especializados.

Por ejemplo, un agente empresarial podría tener acceso a información sobre productos, políticas internas, procedimientos y documentación técnica.

Cuando recibe una pregunta, puede recuperar los datos relevantes y utilizarlos para generar una respuesta.

8. Memoria mediante bases de datos

Una de las formas más sencillas de implementar memoria es utilizar una base de datos.

Podemos almacenar información estructurada en sistemas como SQLite, PostgreSQL, MySQL u otros gestores de bases de datos.

Por ejemplo, podríamos tener una tabla donde cada registro represente una interacción con un usuario.

Podríamos almacenar datos como el identificador del usuario, la fecha, el tipo de interacción y la información relevante.

Cuando el agente necesita recordar algo, puede consultar la base de datos y recuperar los registros correspondientes.

Esta estrategia es especialmente útil cuando la información tiene una estructura clara.

Por ejemplo, para un agente de atención al cliente podríamos almacenar datos como nombre, número de cliente, historial de solicitudes y estado de cada caso.

Sin embargo, las bases de datos tradicionales no siempre son la mejor opción para almacenar grandes cantidades de información textual.

Cuando queremos encontrar información basándonos en el significado de una consulta, pueden ser más útiles otras tecnologías.

9. Memoria mediante bases de datos vectoriales

Una tecnología muy utilizada en sistemas modernos de inteligencia artificial son las bases de datos vectoriales.

Para comprender su utilidad, primero debemos hablar brevemente de los embeddings.

Un embedding es una representación numérica de una pieza de información, como un texto.

En lugar de almacenar únicamente una frase como texto, podemos transformarla en una serie de números que representan determinadas características semánticas.

Esto permite comparar diferentes textos según su significado.

Por ejemplo, imaginemos que la memoria del agente contiene:

"El proyecto utiliza un ESP32 para controlar sensores."

Posteriormente el usuario pregunta:

"¿Qué microcontrolador estamos utilizando?"

Aunque las palabras utilizadas sean diferentes, ambas frases están relacionadas conceptualmente.

Una base de datos vectorial puede ayudar a encontrar esa información porque permite realizar búsquedas basadas en similitud semántica.

Este mecanismo es muy importante para construir agentes capaces de recuperar información relevante de grandes cantidades de documentos y conversaciones.

10. Recuperación de memoria

Guardar información es solamente una parte del problema.

Un agente también necesita saber cuándo recuperar esa información.

Imaginemos que un agente tiene almacenados miles de recuerdos.

Si el usuario pregunta:

"¿Qué lenguaje utiliza mi proyecto?"

El agente necesita identificar qué recuerdos están relacionados con esa pregunta.

Por eso, los sistemas de memoria suelen incorporar mecanismos de recuperación.

Primero se analiza la solicitud del usuario.

Después se buscan los recuerdos que podrían estar relacionados.

Posteriormente se selecciona la información más relevante.

Finalmente, esa información se incorpora al contexto que recibe el modelo de lenguaje.

El resultado es que el modelo puede responder utilizando información almacenada anteriormente sin necesidad de incluir absolutamente toda la memoria disponible en cada interacción.

Este concepto es fundamental para crear agentes capaces de trabajar con grandes cantidades de información.

11. Memoria y personalización

Una de las aplicaciones más interesantes de la memoria es la personalización.

Un agente que recuerda determinadas preferencias puede adaptar sus respuestas a cada usuario.

Por ejemplo, un usuario puede preferir explicaciones cortas y directas, mientras que otro puede necesitar explicaciones detalladas.

También puede existir información relacionada con proyectos, intereses o necesidades específicas.

Un agente con memoria puede utilizar estos datos para reducir la necesidad de repetir información.

Esto puede mejorar considerablemente la experiencia del usuario.

En una empresa, la personalización también puede ser útil.

Un agente puede recordar el contexto de cada cliente y consultar información relacionada con interacciones anteriores.

De esta forma, cuando un cliente vuelve a comunicarse, el agente puede tener una visión más completa del caso.

12. Memoria y aprendizaje no son lo mismo

Es común escuchar que un agente "aprende" porque tiene memoria, pero técnicamente estos conceptos son diferentes.

La memoria significa que el sistema puede almacenar y recuperar información.

El aprendizaje implica modificar el comportamiento o los parámetros del sistema a partir de información o experiencias.

Un agente puede tener memoria sin modificar su modelo de inteligencia artificial.

Por ejemplo, puede almacenar una conversación en una base de datos y posteriormente recuperarla, pero el modelo sigue siendo exactamente el mismo.

Esto es diferente del entrenamiento de un modelo de machine learning, donde los parámetros pueden modificarse mediante nuevos datos.

Por eso, cuando hablamos de agentes de IA, debemos diferenciar entre recordar información y entrenar nuevamente el modelo.

13. Problemas que puede tener la memoria

Aunque la memoria aumenta considerablemente las capacidades de un agente, también introduce nuevos problemas.

Uno de ellos es almacenar información incorrecta.

Si el agente guarda un dato equivocado y posteriormente lo recupera, puede utilizarlo para tomar decisiones incorrectas.

Otro problema es almacenar información que ya no es válida.

Por ejemplo, si un proyecto cambia de Python a C++, la memoria antigua podría provocar respuestas incorrectas si el agente continúa utilizándola.

También puede existir información contradictoria.

El agente podría tener varios recuerdos relacionados con el mismo tema y necesitar determinar cuál es el más reciente o confiable.

Por esta razón, los sistemas de memoria necesitan mecanismos para actualizar, corregir y eliminar información cuando sea necesario.

14. Privacidad y seguridad de la memoria

La memoria también plantea preguntas importantes relacionadas con la privacidad.

Si un agente almacena información sobre usuarios, proyectos o empresas, debemos controlar cuidadosamente quién puede acceder a esos datos.

No toda la información debería estar disponible para todos los usuarios.

Por ejemplo, un agente empresarial podría tener información confidencial de diferentes departamentos.

Un empleado debería acceder únicamente a la información que tiene autorización para consultar.

También es necesario considerar cuánto tiempo debe conservarse determinada información y qué sucede cuando un usuario solicita que sus datos sean eliminados.

Por esta razón, la memoria debe diseñarse considerando desde el principio aspectos como permisos, autenticación, protección de datos y control de acceso.

La memoria hace que un agente sea más útil, pero también aumenta la responsabilidad sobre la información que almacena.

15. Memoria en un agente de IA: ejemplo práctico

Imaginemos que queremos construir un agente para ayudar a desarrollar un proyecto de software.

Durante la primera conversación, el usuario explica:

"Estoy desarrollando una aplicación web utilizando Python y Flask. La base de datos será SQLite."

El agente puede guardar esta información.

Una semana después, el usuario pregunta:

"Necesito agregar una nueva función al proyecto."

El agente puede recuperar la información anterior y entender que debe proporcionar una solución compatible con Python, Flask y SQLite.

Si además recuerda decisiones tomadas anteriormente, puede evitar recomendar tecnologías que ya fueron descartadas.

Esto permite que el agente funcione como un asistente de proyecto y no solamente como un chatbot que responde preguntas aisladas.

El usuario ya no necesita explicar desde cero el proyecto en cada conversación.

16. Memoria en agentes de IA y automatización

La memoria también tiene un papel importante en la automatización.

Imaginemos un agente encargado de revisar periódicamente el estado de una máquina.

El agente recibe datos de sensores y analiza las condiciones del sistema.

Si detecta una anomalía, puede registrar el evento.

Posteriormente, si vuelve a aparecer una condición similar, puede consultar eventos anteriores y utilizar esa información para contextualizar el problema.

Por ejemplo, podría determinar que una determinada anomalía ya ocurrió varias veces durante el último mes.

Esto permite pasar de una automatización basada únicamente en reglas a sistemas capaces de trabajar con un historial de información.

En aplicaciones industriales, esta combinación puede ser especialmente interesante porque permite conectar inteligencia artificial, sensores, bases de datos y sistemas de control.

17. ¿Qué papel tendrá la memoria en los futuros agentes?

A medida que los agentes de IA se vuelven más capaces, la memoria probablemente tendrá un papel cada vez más importante.

Un agente que puede recordar proyectos, objetivos, preferencias, decisiones y experiencias puede trabajar durante periodos mucho más largos.

Esto permite imaginar asistentes capaces de acompañar a una persona durante meses o incluso años en determinados proyectos.

También puede permitir agentes empresariales que conozcan los procesos internos de una organización y que puedan consultar información histórica para tomar mejores decisiones.

Sin embargo, este avance debe ir acompañado de mejores mecanismos de seguridad y control.

La memoria no debe convertirse simplemente en un almacén gigante de información. Debe ser un sistema organizado capaz de identificar qué información es importante, cuándo debe recuperarse y cuándo debe actualizarse o eliminarse.

18. Conclusiones

La memoria es uno de los componentes que permiten que un agente de inteligencia artificial sea mucho más útil y coherente.

Mientras que el contexto permite al agente trabajar con información disponible durante una interacción, la memoria permite conservar y recuperar información posteriormente.

Existen diferentes formas de implementar memoria. Podemos utilizar conversaciones, bases de datos tradicionales, almacenamiento estructurado o bases de datos vectoriales para recuperar información según su significado.

Sin embargo, almacenar información no significa automáticamente que el agente esté aprendiendo. La memoria y el aprendizaje son conceptos diferentes, y es importante entender esta diferencia cuando diseñamos sistemas de inteligencia artificial.

También debemos considerar aspectos como la privacidad, la seguridad, la actualización de información y el control de acceso.

En el siguiente artículo utilizaremos todos los conceptos que hemos aprendido hasta ahora para dar un paso más práctico: construiremos nuestro primer agente de IA paso a paso, desde su funcionamiento básico hasta la incorporación de herramientas para que pueda realizar tareas.

Anterior  ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​Siguiente