Memoria persistente de Discourse AI

Aprecio el desarrollo de Discourse AI, que ha sido excelente. Las características están madurando rápidamente y la dirección parece muy prometedora.

Una pregunta: ¿existe actualmente alguna forma, o algún plan en la hoja de ruta, para que la IA retenga el historial entre chats? En este momento, cada conversación comienza de nuevo, y me pregunto si se está considerando la memoria persistente o la continuidad entre sesiones.

Si aún no está en la hoja de ruta, me gustaría plantearlo como una solicitud de características. Tener la opción de que la IA recuerde interacciones pasadas haría las discusiones más naturales y ampliaría significativamente los casos de uso.

2 Me gusta

Implementé una tienda básica de clave/valor usando una persona y herramientas personalizadas en mi blog.

Dicho esto, es muy difícil hacerlo bien, tienes que seguir insistiendo a las personas para que recuerden cosas, lo cual es molesto.

La alternativa es simplemente usar RAG sobre todo tu historial con el bot (algo similar a cómo lo hace OpenAI)


Supongo que para empezar, ¿cuál es tu visión sobre cómo funcionaría esto? ¿Cómo mejoraría las cosas?

1 me gusta

Estoy pensando mucho en la experiencia de continuidad del usuario final, considero que RAG es excelente para que los administradores proporcionen información para la personalidad. Con ChatGPT/Gemini/otros, el bot mantiene un pequeño perfil: tono, profundidad, objetivos en curso, por lo que no tienes que volver a explicar cada sesión. Esa es la experiencia que sería genial en Discourse AI: el asistente recuerda algunas cosas duraderas sobre cada usuario y las utiliza cuando es relevante, para que las conversaciones retomen donde las dejaron.

No tengo idea de si el historial de conversaciones RAG del usuario final es posible de alguna manera.

El valor es que cualquier sensación confiable de “me conoce” sin indicaciones constantes mejora enormemente la experiencia para casos de uso donde los usuarios revisitan el mismo tipo de conversaciones.

Dicho esto, no creo que nada de esto sea una tarea menor. No puedo decir lo suficiente sobre lo bien que se ha desarrollado todo esto.

He logrado crear un plugin y una herramienta personalizada que permiten la memoria persistente para las personas de Discourse AI. Está funcionando bien según mis pruebas limitadas y quería compartirlo por si a alguien le resulta útil.

Lo que hace

Esta solución permite que las personas de IA recuerden información específica del usuario a través de las conversaciones.

Ejemplo: un usuario puede decir “Recuerda que prefiero el modo oscuro” y la IA almacenará y recordará esta preferencia en interacciones futuras.

Componentes

Este sistema tiene tres partes:

  • Plugin (discourse-ai-persistent-memory)
    Proporciona almacenamiento en el backend y una interfaz de usuario de preferencias donde los usuarios pueden ver, agregar o eliminar sus recuerdos.
  • Herramienta de IA personalizada
    Una herramienta de JavaScript que da a las personas acceso a las funciones de memoria:
    memory.set, memory.get, memory.list, memory.delete
  • Prompt del sistema de la persona
    Instrucciones que le dicen a la IA cuándo y cómo usar la herramienta de memoria.

Cómo funciona

  • Los recuerdos se almacenan como pares clave/valor en el PluginStore, con un espacio de nombres por usuario.
  • El plugin inyecta funciones de memoria en el ToolRunner mediante una preposición de módulo (module prepend).
  • Los usuarios pueden administrar sus recuerdos en:
    /u/{username}/preferences/interface
  • La IA carga todos los recuerdos en el contexto (no hay recuperación selectiva).

Repositorio de GitHub

https://github.com/BrianCraword/discourse-ai-persistent-memory

Buscando comentarios

Agradecería comentarios sobre:

  • El enfoque de usar preposición (prepend) para inyectar en ToolRunner
  • Si cargar todos los recuerdos frente a la recuperación selectiva tiene sentido
  • Cualquier consideración de seguridad que pueda haber pasado por alto
  • Mejoras generales en la calidad del código

Descargo de responsabilidad

No soy programador; esto se construyó con asistencia de IA. No puedo proporcionar soporte, pero cualquiera es bienvenido a usarlo, bifurcarlo o mejorarlo. Úselo bajo su propio riesgo.

PROMPT:

## Sistema de Memoria
Tienes un sistema de memoria persistente a través de la herramienta user_memory. Úsala para recordar hechos importantes sobre cada usuario.

### Cuándo GUARDAR recuerdos:

* El usuario menciona preferencias (estilo de comunicación, temas de interés, preferencias de formato)
* El usuario comparte detalles personales (profesión, ubicación, pasatiempos)
* El usuario menciona proyectos u objetivos en curso
* El usuario te pide explícitamente que recuerdes algo

### Cuándo RECORDAR recuerdos:

* Al comienzo de una nueva conversación, llama a user_memory con la acción "list" para ver lo que sabes
* Al discutir temas que podrían estar relacionados con conversaciones anteriores

### Convenciones de clave de memoria:

* preference_style, preference_topics, preference_format
* personal_profession, personal_location, personal_interests
* project_YYYY_MM (ej. project_2026_01)
* goal_[topic] (ej. goal_learning_python)

### Ejemplo de uso:

* Para guardar: `{ action: "save", key: "preference_style", value: "respuestas concisas" }`
* Para recordar: `{ action: "recall", key: "personal_profession" }`
* Para listar todo: `{ action: "list" }`
* Para olvidar: `{ action: "forget", key: "old_key" }`

Saluda siempre a los usuarios recurrentes comprobando primero sus recuerdos.

---

La definición de la herramienta en sí no necesita cambios ya que es genérica; solo actualiza el ejemplo del parámetro de descripción si lo deseas:

**Descripción del parámetro (key):** La clave de memoria (ej. preference_style, current_project)

¿Quieres que ajuste el tono o añada/elimine algún caso de uso específico?



HERRAMIENTA:

Name:        User Memory
Tool Name:   user_memory

Description:
Un sistema de memoria que permite a la IA guardar, recordar, listar y olvidar hechos sobre los usuarios.
Los recuerdos persisten a través de las conversaciones.

Summary:
Almacenar y recuperar hechos persistentes sobre el usuario

Parameters:
- action (string)  [REQUIRED]
  La acción a realizar: save, recall, list o forget

- key (string)     [optional]
  La clave de memoria (ej. preference_style, current_project)

- value (string)   [optional]
  El valor a almacenar (solo necesario para la acción save)

2 Me gusta