gako.ai

Oroi: memoria para una conversación infinita

Una red semántica para agentes conversacionales · oroi, del euskera oroitu: recordar
la pista «cliente» activa la cadena: cliente, contacto, laura; laura recibe los jueves
la pista activa la red y la activación recorre las asociaciones hasta la respuesta, apagándose con la distancia

Hace un mes le contaste a tu asistente que tu contacto en el cliente ahora es Laura. La semana pasada, que Laura solo recibe los jueves. Hoy le preguntas: ¿qué día visito al cliente? La frase que responde no habla del cliente ni de visitar: habla de Laura. Solo se llega por asociación. Eso no es buscar: es recordar.

La memoria habitual de un chatbot (RAG) guarda la conversación como texto y recupera lo que más se parece. Pero una conversación no es un documento: lo que importa compite con hechos casi idénticos, cambia con el tiempo y a veces está a varias asociaciones de la pregunta. Oroi guarda la conversación como una red de conceptos y asociaciones con una dinámica tomada de los modelos cognitivos de la memoria humana: lo mencionado se activa, la activación se propaga a lo asociado, lo repetido se consolida —como en el sueño— y el desuso apaga.

La recuperación sensible a la activación supera a la recuperación por similitud vectorial pura en conversaciones largas con referencias recurrentes y deriva temática.
0,75 vs 0,55recall de recuperación frente a RAG híbrido (embeddings + BM25, fusión RRF), 224 escenarios
43 / 0escenarios ganados / perdidos; el resto, empates (test de McNemar, p<10⁻⁴)
0,97 vs 0con distractores: hechos casi idénticos que compiten por aflorar

El preprint

Castellano (PDF)Oroi: una red semántica para agentes conversacionales English (PDF)Oroi: a semantic network for conversational agents

El código

$ pip install oroi
$ oroi chat  # conversar con memoria · corre 100 % en local con Ollama
GitHublibrería, 65 tests y el protocolo de evaluación completo · Apache-2.0 PyPIoroi 0.1.0 · Python ≥ 3.12 · SQLite + sqlite-vec