# El modelo de memoria SUMMARY: Cómo se estructuran las memorias — categorías, claves, etiquetas, prioridades, fuentes, verificación. El modelo de memoria El modelo de memoria de Synapse está diseñado para agentes LLM — lo suficientemente estructurado para recall fiable, lo suficientemente flexible para cualquier dominio. Anatomía de una memoria [CODE BLOCK] Campos | Campo | Tipo | Obligatorio | Descripción | |-------|------|----------|-------------| | | string | auto | ID único (memxxx) | | | enum | ✅ | Una de 8 categorías | | | string | ✅ | Identificador estable (usado para actualizaciones) | | | string | ✅ | El contenido de la memoria (cualquier texto) | | | string[] | – | Para búsqueda y filtrado | | | enum | – | low, normal, high, critical (predeterminado: normal) | | | enum | auto | user, agent (quién la almacenó) | | | bool | auto | ¿La ha verificado un humano? | | | float | – | 0.0 a 1.0 (predeterminado: 1.0 para user, 0.7 para agent) | | | timestamp | – | Cuándo olvidar esta memoria | | | string | auto | A qué mind pertenece | | | timestamp | auto | Primera vez almacenada | | | timestamp | auto | Última modificación | Categorías Ocho categorías cubren los casos de uso comunes de agentes LLM: | Categoría | Propósito | Contenido de ejemplo | |----------|---------|-----------------| | | Quién es el usuario | "User is Michael Schäfer, software engineer in Berlin" | | | Preferencias del usuario | "Prefers concise technical responses" | | | Hechos verificables | "Office is in Berlin, timezone Europe/Berlin" | | | Estado del proyecto | "Synapse v1.5.0 deployed, working on v1.6.0 docs" | | | Habilidades del usuario | "Advanced Python, 10+ years" | | | Errores pasados | "Forgot to bump npm version — CI failed" | | | Contexto de sesión | "Currently reviewing PR #42" | | | Notas varias | "Try Redis for caching next sprint" | Claves: identificadores estables El campo es crítico — es la forma de actualizar memorias sin crear duplicados. [CODE BLOCK] Reglas de key: - Debe ser única dentro de (categoría, mind) - Use - Prefije con la categoría para claridad: , - Manténgala estable — no cambie las keys tras la creación Etiquetas: para búsqueda Las etiquetas permiten filtrado y búsqueda rápida: [CODE BLOCK] Mejores prácticas de etiquetado: - 2-5 etiquetas por memoria (no etiquete en exceso) - Minúsculas para consistencia - Use nombres de proyecto, temas, tecnologías - Las etiquetas son insensibles a mayúsculas/minúsculas Niveles de prioridad | Prioridad | Cuándo usarla | Comportamiento de recall | |----------|-------------|-----------------| | | Identidad, legal, irreversible | Siempre al inicio del recall | | | Proyectos activos, preferencias clave | Destacada en el recall | | | La mayoría de memorias (predeterminado) | Orden de recall estándar | | | Efímera, bueno saberlo | Puede resumirse | ordena por prioridad (critical primero), luego por recencia. Origen: usuario vs agente Las memorias se etiquetan con : - — almacenada por un humano (vía JWT o interfaz humana) - — almacenada por un agente LLM (vía Mind Key) Esto afecta: - Verificación: las memorias se auto-verifican, las no - Confianza: por defecto a 1.0, a 0.7 - Recall: marca las memorias no verificadas con "(unverified)" > [!NOTE] > Trate las memorias con origen con el escepticismo apropiado. Pueden > estar inferidas o asumidas en lugar de haber sido declaradas directamente por > el usuario. Verificación El flag indica que un humano ha confirmado la memoria: - memorias : auto-verificadas () - memorias : por defecto no verificadas () Verifique memorias vía: [CODE BLOCK] > [!NOTE] > La verificación requiere JWT (auth humana), no Mind Key (auth de agente). > Esto garantiza que solo los humanos puedan marcar memorias como verificadas. Confianza El campo (0.0 a 1.0) indica cuán fiable es la memoria: - 1.0 — declarada directamente por el usuario - 0.7 — inferida por el agente - 0.5 — incierta, necesita verificación - 0.0 — explícitamente dudosa Establezca la confianza al almacenar: [CODE BLOCK] Expiración Establezca para memorias sensibles al tiempo: [CODE BLOCK] Las memorias expiradas no se devuelven en (pero siguen existentes en la BD). Use para ver memorias que expiran pronto. Ciclo de vida de una memoria [CODE BLOCK] Comportamiento de recall devuelve un resumen en texto plano optimizado para el contexto del LLM: [CODE BLOCK] - Ordenado por prioridad (critical → low), luego por recencia - Las memorias no verificadas se marcan con - Etiquetas incluidas para contexto - Texto plano (no se necesita parsing JSON) Próximos pasos - API de Memory - Mejores prácticas de memoria - Búsqueda FTS5