Módulo NGT Memory mostra como dar memória persistente a um LLM sem banco de dados vetorial
O NGT Memory é um módulo de memória open source para LLMs que guarda fatos sobre o usuário entre sessões e os incorpora às respostas do modelo. Por dentro, combina busca por cosseno, um grafo associativo, um perfil estruturado e um filtro de ruído. Nos testes, o sistema dobrou a precisão factual e venceu 17 de 18 cenários A/B, embora por enquanto viva na memória de um único processo.
Processado por IA de Habr AI; editado por Hamidun News
O projeto open source NGT Memory oferece uma resposta mais prática para um velho problema dos LLMs: como não esquecer fatos importantes sobre o usuário entre sessões. Em vez de ampliar o contexto indefinidamente, o módulo salva fatos, monta um perfil e incorpora a memória à resposta do modelo.
Como a memória funciona
O autor parte de uma ideia simples: manter todo o histórico da conversa na janela de contexto só é conveniente até o primeiro limite de tokens. Depois vêm o corte de mensagens antigas, a sumarização que perde detalhes ou a conexão de um banco vetorial externo com infraestrutura desnecessária. O NGT Memory propõe outro caminho: a memória vive diretamente no processo Python, sobe via REST API e Docker e não exige um banco de dados separado no início. A ideia é recuperar não a conversa inteira, mas apenas os fatos de que o modelo realmente precisa na consulta atual.
- A similaridade de cosseno busca fatos próximos em significado
- Um grafo associativo conecta conceitos como "vegetariano" e "restaurantes"
- A consolidação hierárquica promove fatos muito usados para a memória de longo prazo
- Um perfil estruturado separa idade, cidade, dieta e alergia em campos próprios
Além da memória textual, o módulo também monta um perfil do usuário. Se a pessoa escreve de forma fragmentada, o sistema pode juntar pedaços como "eu" + "30" + "anos" em um fato com sentido e salvá-lo com confiança reduzida. Se mais tarde surgir um conflito, por exemplo a idade diminuir de repente, a atualização fica bloqueada até uma correção explícita, como "eu errei". Assim, a memória se comporta não como um log passivo, mas como uma camada de validação que tenta distinguir dados reais do usuário de ruído aleatório.
Resultados dos testes
O mais interessante do artigo não é a arquitetura em si, mas a verificação em cenários práticos. Em um experimento com um assistente médico, um assistente pessoal e um suporte técnico, o modo com memória elevou a precisão factual de 1.22 para 2.44 pontos de 3. Em um teste A/B mais realista, a memória venceu 17 de 18 avaliações, e a nota média da resposta foi 0.889 contra 0.056 sem memória. Separadamente, o autor rodou 54 verificações de casos extremos e obteve 51 resultados bem-sucedidos, cerca de 94%.
"A resposta ao lixo também é lixo."
Essa fórmula explica outra camada importante do sistema: o filtro de qualidade. Mensagens curtas sem sentido, números puros, caracteres especiais e até respostas do assistente a esse lixo não entram na memória. Caso contrário, fatos úteis logo se afogariam no ruído. Esse filtro é especialmente importante para chatbots e sistemas de agentes, em que o usuário costuma escrever em fragmentos e o próprio modelo tende a gerar frases educadas, porém vazias, que só poluem o resultado da próxima busca na memória.
Principais limitações
Apesar dos bons resultados, o NGT Memory ainda não pode ser considerado uma memória universal pronta para produção sem ressalvas. A versão atual guarda tudo na RAM de um único processo, então o estado se perde quando o contêiner reinicia. Ao rodar vários workers, surge outro problema: cada um mantém seu próprio armazenamento de sessões, e uma requisição de salvamento pode cair em um processo e a de recuperação em outro. Nos testes, a memória local é rápida, cerca de 2–3 ms na CPU, mas a maior parte da latência ainda vem das chamadas externas de embeddings e de chat, que levam centenas de milissegundos.
O autor também descreve bugs mais prosaicos. Um system prompt mole demais fazia o modelo enxergar a memória, mas ignorá-la como uma dica opcional. Depois que a instrução foi endurecida, as respostas ficaram mais estáveis. Outro caso desagradável veio de uma regex para extrair nomes: um padrão como I'm + name passou a tomar palavras como allergic por nome. Esses detalhes mostram que a memória para LLMs depende não só de retrieval, mas de uma enorme quantidade de pequenas regras, sem as quais uma demo logo desmorona em uma conversa real.
O que isso significa
O NGT Memory mostra uma mudança útil na abordagem de aplicações com LLMs: não basta a memória ser "inteligente"; ela precisa ser verificável, barata e resistente a lixo. Para quem desenvolve bots e agentes de IA, é um bom sinal de que a camada de contexto de longo prazo já pode ser construída como um módulo de engenharia separado, e não como um conjunto de gambiarras avulsas.
- 1 de nov. de 2026Juiz do EditAgent, da Adobe, escolhe uma edição aceitável em 81,3% dos casos, contra 74,8% do EditScore
- 1 de nov. de 2026Teste com 16 modelos em 7 buscadores: Exa fez em média 10,5 pontos de 14; SearXNG, cerca de 3
- 1 de nov. de 2026Camada de proteção MoneyGate barrou os 42 pedidos fraudulentos feitos a IAs locais
- 1 de nov. de 2026Tokenizador do BERT na Hugging Face fica 50 vezes mais rápido ao eliminar trabalho desnecessário com ASCII
Perguntas frequentes sobre a notícia
Como a memória funciona?
O autor parte de uma ideia simples: manter todo o histórico da conversa na janela de contexto só é conveniente até o primeiro limite de tokens. Depois vêm o corte de mensagens antigas, a sumarização que perde detalhes ou a conexão de um banco vetorial externo com infraestrutura desnecessária. O NGT Memory propõe outro caminho: a memória vive diretamente no processo Python, sobe via REST API e Docker e não exige um banco de dados separado no início. A ideia é recuperar não a conversa inteira, mas apenas os fatos de que o modelo realmente precisa na consulta atual. A similari
O que se sabe sobre Resultados dos testes?
O mais interessante do artigo não é a arquitetura em si, mas a verificação em cenários práticos. Em um experimento com um assistente médico, um assistente pessoal e um suporte técnico, o modo com memória elevou a precisão factual de 1.22 para 2.44 pontos de 3. Em um teste A/B mais realista, a memória venceu 17 de 18 avaliações, e a nota média da resposta foi 0.889 contra 0.056 sem memória. Separadamente, o autor rodou 54 verificações de casos extremos e obteve 51 resultados bem-sucedidos, cerca de 94%. "A resposta ao lixo também é lixo." Essa fórmula explica outra camada im
O que se sabe sobre Principais limitações?
Apesar dos bons resultados, o NGT Memory ainda não pode ser considerado uma memória universal pronta para produção sem ressalvas. A versão atual guarda tudo na RAM de um único processo, então o estado se perde quando o contêiner reinicia. Ao rodar vários workers, surge outro problema: cada um mantém seu próprio armazenamento de sessões, e uma requisição de salvamento pode cair em um processo e a de recuperação em outro. Nos testes, a memória local é rápida, cerca de 2–3 ms na CPU, mas a maior parte da latência ainda vem das chamadas externas de embeddings e de chat, que lev
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.