Pular para o conteúdo
    Análise

    Hindsight, da Vectorize: memória de agente que aprende em vez de só recordar

    Análise técnica do Hindsight, framework open source de memória de agentes da Vectorize: as operações retain, recall e reflect, a arquitetura de quatro redes, os benchmarks do paper e o comparativo com Mem0, Letta e Zep.

    Filipe Mendes

    8 de out. de 2026 · 10 min de leitura

    Seguir no Google
    Fotografia editorial em um café de bairro ao fim da manhã, com luz natural quente entrando pela vitrine e formando feixes com poeira suspensa. No primeiro plano, à esquerda, uma barista entrega uma xícara pronta na direção da porta, sem con
    A memória que antecipa: no Hindsight, da Vectorize, reter, recordar e refletir transformam o histórico acumulado em cuidado — a xícara certa, servida antes do pedido.

    Um agente que atendeu o mesmo cliente cinco vezes ainda pergunta, na sexta, como ele gosta de receber o relatório. O transcript completo existe em algum banco de dados, mas o agente não aprende com ele: só recupera. Essa é a consequência de tratar memória como busca, e é exatamente o problema que o Hindsight (abre em nova aba), framework open source mantido pela Vectorize (abre em nova aba), se propõe a resolver. O projeto, licenciado sob MIT e descrito no repositório no GitHub (abre em nova aba) como "Agent Memory That Learns", não quer que agentes apenas lembrem; quer que eles acumulem experiência e revisem crenças ao longo do tempo.

    A diferença entre lembrar e aprender é o fio que percorre todo o desenho do sistema, e é também o critério mais honesto para avaliar se ele entrega o que promete.

    Memória que aprende, não memória que busca

    A maioria dos sistemas de memória para agentes de IA disponíveis hoje funciona como uma camada de recuperação sobre o histórico da conversa. O RAG (retrieval-augmented generation, geração aumentada por recuperação) divide documentos em pedaços, indexa embeddings e devolve os pedaços mais parecidos com a pergunta. Grafos de conhecimento estruturam relações, mas tendem a ser rígidos e caros de manter. A crítica do Hindsight a essas abordagens aparece no paper publicado no arXiv em 14 de dezembro de 2025 (abre em nova aba), assinado por Chris Latimer, Nicoló Boschi, Andrew Neeser, Chris Bartholomew, Gaurav Srivastava e Naren Ramakrishnan: nenhuma delas separa o que o mundo é do que o agente vivenciou, e nenhuma trata crenças como algo que pode ser revisado.

    Fotografia editorial em luz de fim de tarde entrando lateralmente por janelas altas de um arquivo técnico antigo: um estagiário de silhueta não identificável reorganiza fichas sobre uma mesa de madeira gasta, com pilhas caóticas de fitas e
    No Hindsight, framework open source da Vectorize, a memória do agente deixa de ser mero arquivo: operações como retain, recall e reflect reorganizam informações em camadas conectadas por relações — e revisam crenças antigas quando novas evidências chegam.

    A proposta do framework é organizar a memória em quatro redes lógicas distintas:

    • Fatos do mundo: informações sobre o ambiente, pessoas e objetos, independentes da experiência do agente.
    • Experiências do agente: o que aconteceu nas interações, com o agente como participante.
    • Resumos de entidades: sínteses acumuladas sobre pessoas, projetos e conceitos que aparecem ao longo do tempo.
    • Crenças em evolução: conclusões provisórias que podem ser reforçadas ou derrubadas por novas evidências.

    Essa última rede é o que separa o Hindsight de uma pilha de busca sofisticada. Uma crença é datada, tem fontes e pode ser substituída; um pedaço de texto num índice vetorial não tem nenhuma dessas propriedades.

    No lado de armazenamento, o framework usa Postgres com a extensão pgvector. É uma escolha pragmática: um único banco relacional cobre armazenamento, busca vetorial e o grafo de entidades, sem exigir Neo4j ou um repositório vetorial dedicado para começar. Quem opera Postgres em produção já tem replicação, backup e monitoramento resolvidos.

    Retain: da conversa a unidades narrativas

    A primeira das três operações, retain, é onde o aprendizado começa. Em vez de fatiar o texto em "pedaços arbitrários de 512 tokens", como descreve a documentação do produto, o retain extrai fatos estruturados em unidades narrativas completas, identifica entidades e relações entre elas, anota metadados temporais e classifica o tipo da informação. A saída não é uma lista plana, mas um grafo consultável.

    Esse detalhe tem consequência direta na qualidade da recuperação. Um chunk de 512 tokens mistura geralmente várias afirmações e muito ruído; uma unidade narrativa carrega um fato com contexto mínimo necessário para ser entendido isoladamente. A extração é feita por um modelo de linguagem configurado entre os mais de 25 provedores suportados, o que significa que o custo de retenção é proporcional ao volume de conversa processada.

    Recall: quatro buscas paralelas e um rerank

    A operação recall devolve memórias brutas a partir de uma pergunta. O detalhe técnico relevante é que cada consulta dispara quatro buscas em paralelo:

    1. Semântica: busca vetorial por similaridade de significado.
    2. Por palavra-chave: BM25, o algoritmo clássico de ranking lexical, para nomes próprios, códigos e strings exatas.
    3. Por grafo: percurso pelas relações entre entidades armazenadas.
    4. Temporal: filtragem por janelas de tempo e recência.

    Os resultados das quatro buscas passam por fusão de ranking (rank fusion) e, em seguida, por um rerank com cross-encoder (um modelo que avalia pares pergunta-resposta em conjunto, com precisão maior que a similaridade de embeddings, ao custo de mais computação por candidato), respeitando um orçamento de tokens definido pelo chamador.

    A documentação também descreve o que chama de "temporal spreading activation": ativação que se propaga ao longo de cadeias causais no grafo, com decaimento ao longo do tempo. Eventos conectados por causalidade recebem reforço mútuo na recuperação, e eventos antigos pesam menos, o que espelha o comportamento de memória humana descrito na literatura de recall associativo.

    O uso básico em código é enxuto:

    await hs.retain(bank, transcript)
    await hs.recall(bank, "what does she prefer?")
    await hs.reflect(bank, "should I suggest Vue?")

    O conceito de bank (banco de memória) é a unidade de escopo: cada bank agrupa memórias de um agente, projeto ou usuário, e carrega a missão e as diretrizes que orientam as operações seguintes.

    Reflect: raciocínio com missão, diretrizes e temperamento

    Se o recall devolve memórias brutas, o reflect devolve uma conclusão. A operação, detalhada na documentação oficial (abre em nova aba), executa um loop agentic de até dez rodadas: recupera memórias com o mesmo mecanismo híbrido do recall, injeta modelos mentais acumulados pelo próprio sistema, e deixa o modelo raciocinar sobre o conjunto até produzir uma resposta sintetizada.

    AspectoRecallReflect
    SaídaMemórias brutasResposta sintetizada
    ProcessamentoApenas buscaRaciocínio por IA
    Uso de tokensMenorMaior
    FontesAs próprias memóriasCitadas separadamente
    ConfiançaNão se aplicaScore baseado na força das evidências

    Dois elementos diferenciam o reflect de um prompt qualquer sobre o contexto recuperado. O primeiro são os disposition traits, traços de temperamento configuráveis por bank, como ceticismo, literalismo e empatia, que influenciam como o modelo pesa evidências contraditórias. O segundo é o score de confiança: cada resposta vem acompanhada de uma medida baseada na força e convergência das fontes encontradas, além das citações correspondentes, o que permite ao agente chamador decidir se age sobre a conclusão ou se pede mais informação.

    É justo reconhecer que um loop de dez rodadas não é barato: reflect custa mais tokens que recall por construção. A decisão de arquitetura embutida aqui é que o sistema memória não deve se limitar a entregar matéria-prima; deve entregar julgamento. Para casos em que a matéria-prima basta, o recall continua disponível, e a diferença de custo entre os dois é o preço do julgamento.

    Os números, o paper e quem os conferiu

    O paper do arXiv traz os resultados mais verificáveis do projeto. Com um modelo aberto de 20 bilhões de parâmetros como backbone, o Hindsight eleva a acurácia geral de 39% para 83,6% sobre um baseline de contexto completo com o mesmo modelo, e supera o GPT-4o com contexto completo. Escalando o backbone, o sistema atinge 91,4% no LongMemEval e 89,61% no LoCoMo, contra 75,78% do mais forte sistema aberto anterior, segundo os autores. O LongMemEval é um benchmark acadêmico de memória de longo prazo que pergunta sobre sessões distantes de conversas longas; o LoCoMo (às vezes escrito LoComo pela própria Vectorize) avalia compreensão de diálogos extensos com lacunas temporais.

    Os números divulgados na página do produto e no site de benchmarks (abre em nova aba) são ainda mais altos, mas medem coisas distintas:

    BenchmarkHindsightMelhor anterior
    LongMemEval-S94,6%74,0%
    LoComo92,0%80,3%
    PersonaMem86,6%84,4%
    PrecisionMemBench85,7%sem comparação publicada
    LifeBench71,5%61,0%
    BEAM (10 milhões de tokens)64,1%40,6%

    A leitura exige cuidado com três pontos. Primeiro, o 94,6% refere-se ao subconjunto LongMemEval-S, não ao benchmark completo, e os números do site refletem versões posteriores do sistema em relação ao paper de dezembro de 2025. Segundo, os escores dos sistemas concorrentes são declarados como autodeclarados pelos próprios fabricantes. Terceiro, ainda que o README afirme que os dados de benchmark foram reproduzidos de forma independente pelo Sanghani Center da Virginia Tech e pelo The Washington Post, essas reproduções são externas apenas em parte: o desenho experimental completo continua sendo da Vectorize.

    Onde o Hindsight se coloca frente a Mem0, Letta e Zep

    O ecossistema de memória de agentes tem outros nomes estabelecidos, e a comparação ajuda a localizar o que há de novo aqui. O Mem0 (abre em nova aba) popularizou a camada de memória como extração de fatos de conversas com armazenamento vetorial e busca híbrida; é o sistema aberto mais maduro em adoção comercial. O Letta (abre em nova aba), descendente direto do projeto MemGPT, modela o agente como um processo com blocos de memória central editáveis pelo próprio modelo, inspirado no gerenciamento de memória de sistemas operacionais. O Zep (abre em nova aba), por sua vez, aposta em grafos temporais de conhecimento (o motor Graphiti) para representar fatos com validade temporal.

    O Hindsight compartilha elementos com todos, mas a composição é distinta. De Mem0 herda a busca híbrida com rerank; de Letta, a ideia de memória gerenciada dinamicamente; de Zep, a consciência temporal. O que não existe em nenhum dos três como primitiva de primeira classe é o reflect: raciocínio com temperamento configurável, score de confiança e citações como parte do contrato da API. A rede de crenças em evolução, alimentada pelo retain e consultada pelo reflect, é a aposta estrutural do projeto: memória como sistema que revisa o que sabe.

    O paper também posiciona o sistema contra o baseline de contexto completo, e esse contraste é o mais importante do ponto de vista de engenharia. Encher a janela de contexto com o histórico inteiro funciona até certo volume, e o resultado de 39% com contexto completo no LongMemEval mostra onde essa estratégia quebra: o modelo afoga na própria transcrição. Toda a categoria de sistemas de memória existe porque esse limite é real, e o Hindsight quantifica a distância entre as duas abordagens.

    Operação: Docker, clientes e o caminho para produção

    O framework é um monorepo com componentes separados para API, CLI, clientes, deploy com Helm, Docker e um cookbook de exemplos. O repositório mostra sinais de maturidade em construction: commit inicial em 30 de outubro de 2025, licença MIT adicionada em 3 de dezembro do mesmo ano, versão v0.10.2 lançada em 29 de setembro de 2026 e mais de 3.500 commits até o início de outubro de 2026, com atividade diária em módulos como API, plano de controle, embeddings, integrações e suítes de avaliação.

    O caminho self-host é curto: a imagem ghcr.io/vectorize-io/hindsight:latest expõe a API na porta 8888 e uma interface de administração na 9999. Os clientes oficiais cobrem Python (pip install hindsight-client), JavaScript/TypeScript (npm install @vectorize-io/hindsight-client) e Go. Para quem não quer operar, existe o Hindsight Cloud, com SLA de 99,9% de disponibilidade e cobrança por uso, além de US$ 5 de crédito ao criar conta com GitHub. O argumento antigo do open source com serviço gerenciado se aplica na íntegra: a saída é barata, e o vendor lock-in fica baixo com o formato de dados em Postgres.

    As mais de 60 integrações declaradas incluem harnesses de agentes de código, dos mais de 20 mapeados, como Claude Code, Codex e Cursor, além de orquestradores como LangGraph e CrewAI e plataformas de automação como n8n e Zapier. A amplitude sugere que o alvo inicial é o desenvolvedor que quer adicionar memória a um agente existente sem trocar de stack.

    Limites e veredito

    Os limites são claros e vale nomeá-los. O sistema está em versão 0.x, e a API pode mudar. O reflect com dez rodadas tem custo por consulta que precisa ser orçado. A operação de quatro redes lógicas sobre Postgres e pgvector desloca complexidade do schema para o runtime, e o comportamento em escala de centenas de banks por instância ainda é território pouco documentado. Os benchmarks comparativos, embora parcialmente reproduzidos por terceiros, partem de um desenho da própria Vectorize. E a evidência de adoção fora do repositório e dos benchmarks ainda é incipiente para um projeto com menos de um ano de código público.

    Nada disso, porém, tira o mérito central: o Hindsight é a tentativa mais completa em código aberto de tratar memória de agente como um sistema que aprende, com retenção estruturada, recuperação híbrida e raciocínio como primitivas de API no mesmo nível. O paper sustenta os ganhos de acurácia, os números são fortes mesmo descontando a margem de erro da comparação entre fabricantes, e a operação é factível sem comprar nada da Vectorize. Para equipes cujo agente precisa acumular conhecimento entre sessões, é o candidato que exige mais avaliação, não um que se descarta por ser imaturo. Quando a memória deixa de ser busca e passa a ser aprendizado, o gargalo do agente muda de endereço: sai da janela de contexto e vai morar na qualidade do que ele consegue reter.

    Filipe Mendes

    Ver perfil completo