O registro oficial da memória de agentes v0.3.0 · pre-release · MIT

O problema da memória dos agentes

A memória dos agentes guarda tudo. Verdade ou não.

A Verimem é uma camada de memória persistente cujo add() faz cada escrita passar por um portão de admissão anti-confabulação — a fonte realmente implica o fato? — e cujo search() devolve proveniência em cada leitura. Um hipocampo com um tabelião à porta.

100% gratuito e open source — licença MIT. Auto-hospedado, local-first: sem conta, sem API key, sem cobrança.

Admitidogrounding 0.97
Escrita candidata
«O deploy usa PostgreSQL 16.»
fonte ⊢ fato — a nota de versão citada implica a afirmação.
status ADMITIDO · salvo com proveniência.
§01 O portão de admissão

As outras camadas de memória guardam o que quer que o extrator produza. A Verimem não.

Na escrita, um fato candidato é admitido, rebaixado ou recusado — conforme a fonte citada realmente o implique. Um filtro léxico barato, sem LLM, rebaixa primeiro as afirmações sem respaldo do tipo «funciona / verificado / feito»; o modo mais estrito adiciona uma verificação de implicação fonte⊢fato. Medido em SNLI atinge AUROC 0.971, e esse número é independente do juiz.

Uma revisão estruturada de mem0, Zep, Letta, Cognee e MemOS constatou que nenhum deles traz um portão de admissão na escrita. Esse portão — mais a proveniência que cada leitura traz de volta — é o ponto todo.

Ilustrativo — o portão em três veredictos

Admitido0.97
Escrita · implicada
«O deploy usa PostgreSQL 16.»
ADMITIDO · salvo com proveniência
Rebaixado0.41
Escrita · sem respaldo
«A migração está feita e tudo funciona.»
REBAIXADO · mantido, marcado como baixa confiança
Recusado0.08
Escrita · contradita
«O limite da API é 10.000 req/s.»
RECUSADO · a fonte diz 1.000 — não salvo

Proveniência em cada leitura

As leituras não devolvem só texto — devolvem de cada fato o seu status e o grounding_score do momento da escrita, para o seu código condicionar por confiança em vez de confiar às cegas. E update() nunca destrói o fato antigo: ele o substitui, deixando um rastro history() auditável.

memory.py · a escrita passa pelo portão, a leitura devolve a proveniência

from engram import Memory

mem = Memory()                                  # local SQLite, offline
mem.add("The deployment uses PostgreSQL 16.")   # write goes THROUGH the gate

for hit in mem.search("which database?"):       # read returns provenance
    print(hit["text"], hit["status"], hit["grounding_score"])
# -> The deployment uses PostgreSQL 16.  ADMITTED  0.97
§02 Evidências — medidas, não proclamadas
MétricaResultadoPara constar
Entailment do portão de escrita AUROC 0.971 Fonte⊢fato, independente do juiz (SNLI). O moat do caminho de escrita.
Alucinação a jusante 95.9% → 12.2% −83,7 pp; McNemar p≈6e-44, replicado em 2 seeds. Funciona convertendo a confabulação em abstenção (omissão 3%→85%), não elevando a correção — e este braço é acoplado ao juiz.
Over-rejection de fatos limpos 30–39% O custo honesto no limiar estrito. O portão local destilado (v2) admite 0,924 dos fatos limpos, fechando isso em grande parte.
Retrieval recall@5 · LongMemEval-s 0.8745 500 completo, sem juiz, mesmo embedder e5, zero APIs externas. Fusion ON vs 0.8525 OFF (+2,2 pp). Um n=300 anterior dava 0.909 — otimista; o número sobre 500 completo é o honesto. Isto é recall@k, não exatidão QA de ponta a ponta.
Retrieval em italiano MRR +52% 0.466 → 0.710 ao trocar para o embedder e5, com zero regressão no inglês.
Detecção de contradições · HaluMem TPR 0.66 / FPR 0.0125 Após a correção da supersessão temporal.
Suíte de testes 5.830 no verde 764 arquivos de teste, ~84k linhas. Auto-executados, reproduzíveis a partir do repo.

Cada número aqui é auto-executado e reproduzível a partir do repositório — não é uma colocação em ranking de terceiros. Os números de retrieval são recall@k, não a exatidão QA de ponta a ponta que Mem0 e Zep destacam, então não são diretamente comparáveis.

§03 A diferença — uma combinação honesta

01Portão de admissão na escrita

Admite, rebaixa ou recusa cada escrita por implicação da fonte. Nenhum concorrente aqui tem um.

02Proveniência na leitura

Cada fato devolve status + grounding_score; update() substitui, history() continua auditável.

03Valid-time bitemporal

valid_until com expiração firme — uma memória que sabe quando um fato deixou de ser verdade.

04Roda na sua assinatura

Modo MCP hosted: sem API key, sem cobrança por token — o LLM do host faz o trabalho.

05Tela anti-injection multilíngue

Uma tela anti prompt-injection na escrita — italiano incluído, não só inglês.

06MCP-native

228 ferramentas de memória no início da sessão em Claude Code, Cursor, Cline, Continue, Zed.

SistemaPortão de escritaProveniência na leituraAbordagemMaturidade
Mem0 Vetor plano + resumo LLM Consolidado, amplamente adotado
Zep / Graphiti parcial (temporal) Grafo de conhecimento temporal Comercial, maduro
HippoRAG OpenIE + PageRank Pesquisa
Verimem Fusion recall + portão + consolidação no sono Novíssimo · 0 adoção ainda

Os placares e a adoção dos concorrentes variam por fonte e ao longo do tempo; as duas colunas em que nos apoiamos — um portão de escrita e proveniência na leitura — vêm de uma revisão estruturada, não de uma tabela de marketing.

§04 O que a Verimem NÃO é
para constar
  • 0 adoção.

    Um lançamento público novíssimo. Ninguém depende dele ainda — nós inclusive, além do uso diário do maintainer.

  • Não está no PyPI.

    Por ora instala-se a partir da fonte / git. Um pacote engram-memory é um alvo pós-v0.4.0.

  • Benchmarks próprios.

    Cada número é reproduzível a partir do repo, mas nenhum é auditado por terceiros. Trate-os como reproduzíveis, não certificados.

  • SQLite de nó único.

    Usuário único e local. O scoping multi-tenant existe na camada de fatos; um store hospedado / distribuído não.

  • Grafo de entidades regex-tier.

    O motor entidade+PageRank está vivo sobre dados reais mas o extrator é regex determinístico, executado como backfill — ainda não conectado ao caminho de escrita ao vivo.

  • Answer-path não provado.

    Uma revisão adversária achou inflada a primeira demo de condicionamento na resposta. Só o moat do caminho de escrita se sustenta com a própria evidência — então é tudo o que afirmamos.

§05 Instale em 2 minutos

① Python — a partir da fonte

pip install "git+https://github.com/aureliocpr-ctrl/verimem.git"

Fornece o comando engram e o SDK from engram import Memory. SQLite local, offline, portão ativo por padrão.

github.com/aureliocpr-ctrl/verimem ↗ · MIT · README · BENCHMARKS.md

② Como servidor MCP — Claude Code, Cursor, Cline, Zed

{
  "mcpServers": {
    "engram": {
      "command": "engram",
      "args": ["mcp"],
      "env": { "ENGRAM_HOSTED": "1" }
    }
  }
}

Reinicie o seu host; as ferramentas de memória ficam chamáveis com zero API key. O motor é distribuído hoje como engram — a renomeação para Verimem está em andamento.