# O modelo de memória SUMMARY: Como as memórias são estruturadas — categorias, keys, tags, prioridades, fontes, verificação. O modelo de memória O modelo de memória do Synapse é projetado para agentes LLM — estruturado o suficiente para recall confiável, flexível o suficiente para qualquer domínio. Anatomia de uma memória [CODE BLOCK] Campos | Campo | Tipo | Obrigatório | Descrição | |-------|------|-------------|-----------| | | string | auto | ID único (memxxx) | | | enum | ✅ | Uma das 8 categorias | | | string | ✅ | Identificador estável (usado para updates) | | | string | ✅ | O conteúdo da memória (qualquer texto) | | | string[] | – | Para busca e filtragem | | | enum | – | low, normal, high, critical (padrão: normal) | | | enum | auto | user, agent (quem armazenou) | | | bool | auto | Um humano verificou isso? | | | float | – | 0.0 a 1.0 (padrão: 1.0 para user, 0.7 para agent) | | | timestamp | – | Quando esquecer esta memória | | | string | auto | Qual mind é dono disso | | | timestamp | auto | Quando foi armazenada | | | timestamp | auto | Última modificação | Categorias Oito categorias cobrem os casos de uso comuns de agentes LLM: | Categoria | Finalidade | Exemplo de conteúdo | |-----------|------------|---------------------| | | Quem é o usuário | "User is Michael Schäfer, software engineer in Berlin" | | | Preferências do usuário | "Prefers concise technical responses" | | | Fatos verificáveis | "Office is in Berlin, timezone Europe/Berlin" | | | Status de projeto | "Synapse v1.5.0 deployed, working on v1.6.0 docs" | | | Habilidades do usuário | "Advanced Python, 10+ years" | | | Erros passados | "Forgot to bump npm version — CI failed" | | | Contexto de sessão | "Currently reviewing PR #42" | | | Notas diversas | "Try Redis for caching next sprint" | Keys: identificadores estáveis O campo é crítico — é como você atualiza memórias sem criar duplicatas. [CODE BLOCK] Regras de key: - Deve ser única dentro de (category, mind) - Use - Prefixe com a categoria para clareza: , - Mantenha estável — não mude keys após a criação Tags: para busca Tags permitem filtragem e busca rápidas: [CODE BLOCK] Melhores práticas de tags: - 2-5 tags por memória (não exagere) - Minúsculas para consistência - Use nomes de projeto, tópicos, tecnologias - Tags são case-insensitive Níveis de prioridade | Prioridade | Quando usar | Comportamento de recall | |------------|-------------|-------------------------| | | Identidade, jurídico, irreversível | Sempre no topo do recall | | | Projetos ativos, preferências-chave | Em destaque no recall | | | Maioria das memórias (padrão) | Ordem padrão de recall | | | Efêmero, bom saber | Pode ser resumido | ordena por prioridade (critical primeiro), depois por recenticidade. Source: User vs Agent Memórias são marcadas com : - — armazenada por um humano (via JWT ou interface humana) - — armazenada por um agente LLM (via Mind Key) Isso afeta: - Verificação: memórias são auto-verificadas, memórias não - Confiança: padrão 1.0, padrão 0.7 - Recall: marca memórias não verificadas com "(unverified)" > [!NOTE] > Trate memórias de source com ceticismo apropriado. Elas podem ser > inferidas ou presumidas em vez de diretamente declaradas pelo usuário. Verificação O flag indica que um humano confirmou a memória: - Memórias : auto-verificadas () - Memórias : padrão não verificadas () Verifique memórias via: [CODE BLOCK] > [!NOTE] > Verificação requer JWT (auth humana), não Mind Key (auth de agente). Isso > garante que apenas humanos possam marcar memórias como verificadas. Confiança O campo (0.0 a 1.0) indica quão confiável é a memória: - 1.0 — diretamente declarada pelo usuário - 0.7 — inferida pelo agente - 0.5 — incerta, precisa verificação - 0.0 — explicitamente duvidosa Defina a confiança ao armazenar: [CODE BLOCK] Expiração Defina para memórias sensíveis ao tempo: [CODE BLOCK] Memórias expiradas não são retornadas por (mas ainda existem no DB). Use para ver memórias expirando em breve. Ciclo de vida da memória [CODE BLOCK] Comportamento de recall retorna um resumo em texto puro otimizado para contexto de LLM: [CODE BLOCK] - Ordenado por prioridade (critical → low), depois por recenticidade - Memórias não verificadas marcadas com - Tags incluídas para contexto - Texto puro (sem necessidade de parsing JSON) Próximos passos - API de Memória - Melhores práticas de memória - Busca FTS5