Eu vi o tópico de Sarah Wooders na semana passada e concordei imediatamente com metade dele.

Wooders, cocriador do MemGPT (agora Letta), [argumentou que a memória não é um plugin, é o chicote](https://x.com/sarahwooders/status/2040121230473457921). O chicote toma decisões invisíveis que nenhuma ferramenta externa pode controlar: o que sobrevive à compactação, como o contexto é carregado, se o agente pode modificar suas próprias instruções. "Pedir para conectar a memória a um chicote de agente é como pedir para conectar a direção a um carro."

O enquadramento é fácil de transmitir. Continuo ouvindo a linha do arnês repetida como pano de fundo estabelecido, não como um pedido de inspeção. Isso ocorre em parte porque a metade com a qual concordo está correta.

## As decisões invisíveis são reais

[Claude Code tem uma hierarquia de memória multinível integrada ao chicote](https://docs.anthropic.com/en/docs/claude-code/memory): CLAUDE.md, estado da sessão, regras de compactação, injeção de mensagens do sistema. Quando [Claude Code compacta](https://docs.anthropic.com/en/docs/claude-code/best-practices) uma conversa de 100 mil tokens para 20 mil, o chicote decide o que sobrevive. Nenhuma ferramenta externa pode replicar ou substituir essa decisão.

Ahmed Kidwai, que cria o [Contexto Virtual](https://github.com/virtual-context/virtual-context), descreveu a mesma estrutura do assento do usuário em [A IA passa a maior parte da vida lendo sobre sua vida](https://open.substack.com/pub/virtualcontext/p/ai-spends-most-of-its-life-reading). Cada turno pode reproduzir o thread completo, então a maioria dos tokens de entrada vai para a releitura do que já aconteceu. Quando a janela é preenchida, a compactação substitui o histórico bruto por um resumo. Você não recebe um recibo do que desapareceu.

Dentro de uma única sessão, as escolhas do equipamento sobre o que entra na janela de contexto, o que é resumido e o que é descartado constituem o sistema de memória efetivo. Wooders está certo sobre isso.

## O argumento assume um chicote

O tópico conclui que você deve usar um equipamento que prioriza a memória. Essa conclusão exige que você opere dentro de um.

Eu não. Eu uso Cursor como interface principal, Claude Code para tarefas específicas, ChatGPT para conversas e scripts personalizados para automação. São quatro grupos, cada um tomando suas próprias decisões invisíveis sobre o que lembrar.

As pessoas com quem converso que constroem com agentes usam de três a cinco ferramentas. Cada um compacta de maneira diferente, carrega o contexto de maneira diferente, armazena o estado de maneira diferente. O usuário se torna a camada de sincronização humana entre todos eles.

Adicionar mais memória incorporada no chicote torna isso pior, não melhor. Cada ferramenta obtém melhor memória interna. Nenhum deles concorda.

## Três preocupações, não uma

Wooders reúne o gerenciamento de janelas de contexto, o estado da sessão e o estado durável em um conceito que ela chama de “memória”. Estes são arquitetonicamente distintos.

**Gerenciamento de janelas de contexto**: o que cabe no prompt no momento, o que é compactado, o que o modelo vê neste turno. Esta é uma preocupação do arnês. Wooders está certo.

**Estado da sessão**: persiste em uma conversa. Esta também é uma preocupação do arnês.

**Estado durável**: persiste em sessões, ferramentas e agentes, com origem e controle de versão. Isto é infraestrutura, não aproveitamento.

Nenhum chicote fornece estado determinístico, vinculado a esquema, somente anexação e de plataforma cruzada com proveniência. O gerenciamento de contexto está impulsionando. O estado durável são os dados de navegação. Ele informa a direção, mas não pertence ao sistema de transmissão.

## Até o contexto pode ser externalizado

O [Contexto Virtual] do Kidwai (https://github.com/virtual-context/virtual-context) é um proxy que fica entre o seu cliente e a API LLM upstream. O cliente define uma janela de contexto de 20 milhões de tokens. A janela real do modelo é de 200K. O Contexto Virtual compacta, indexa e páginas entre eles. Uma carga útil do Claude Code de 937 mil tokens com 52 cadeias de ferramentas cai para aproximadamente 65 mil de sinal selecionado.

No [LongMemEval](https://github.com/virtual-context/virtual-context#benchmark-results), o Virtual Context obteve 95% de precisão contra 33% do Claude Sonnet 4.5 com contexto bruto completo, pela metade do custo. O proxy funciona com Claude Code, Cursor, OpenClaw ou qualquer cliente que aceite uma URL base. O VCATTACH permite que dois clientes compartilhem a mesma base de conhecimento compactada entre plataformas.

O mecanismo é importante. VC não ignora o chicote. O chicote ainda toma suas próprias decisões de compactação e truncamento e compõe a solicitação da API. Interceptações de VC que solicitam downstream por meio de um redirecionamento de URL base. Quando o chicote trunca o histórico de conversação, o VC detecta o truncamento e se recupera de seu próprio armazenamento durável. O que chega ao modelo é a janela selecionada do VC, não a saída bruta do chicote.

Wooders está certo ao dizer que nenhuma ferramenta externa pode controlar as decisões internas do chicote. Mas um proxy situado entre o chicote e a API pode observar essas decisões e revertê-las parcialmente. O chicote envia 937 mil tokens após sua própria compactação. VC envia 65K de sinal selecionado para o modelo. O chicote ainda executa o loop de ferramentas e o agente. A camada que decide o que o modelo realmente vê fica do lado de fora.

Isso deixa três camadas, não duas. O chicote comanda o agente. Uma camada opcional de gerenciamento de contexto pode ficar entre o chicote e a API. E uma camada de estado durável fica por baixo de tudo, persistindo o que é verdadeiro, independentemente de como o contexto de qualquer sessão é gerenciado.

## Controle versus valor

Uma ferramenta externa não pode controlar as decisões de compactação do chicote. Verdadeiro. Mas a questão não é se uma camada de estado controla a compactação. É se ela fornece valor que a memória nativa do chicote não fornece.

A maior parte da memória nativa do chicote é efêmera. Letta é a exceção: ele persiste na memória entre sessões por design. Mas mesmo a memória de Letta é específica da ferramenta, não é portátil e não é determinística. O agente decide o que armazenar e quando por meio de chamadas de ferramenta orientadas por LLM, de modo que a mesma conversa possa produzir diferentes estados de memória. O cursor não consegue lê-lo. Claude Code não consegue lê-lo. Uma camada de estado durável é multiplataforma, determinística, versionada e rastreável até a origem.

Você não precisa controlar o arnês para ser valioso. Você precisa sobreviver às decisões do arnês. O estado durável somente de acréscimo sobrevive por design. Quando um chicote compacta o contexto, a camada de estado mantém o registro completo. Quando você abre uma ferramenta diferente amanhã, a camada de estado contém o que você armazenou ontem.

## Acionamento versus transporte

Nicolò Boschi (Hindsight/Vectorize) [concordou com Wooders](https://x.com/nicoloboschi/status/2042145292632379598): "Usar memória via MCP e esperar que o modelo armazene e pesquise informações da memória é inútil." A preocupação é real. Se o modelo tiver que decidir quando armazenar e recuperar, ele poderá esquecer de armazenar. Ele pode pular a recuperação quando for importante.

Em vez de MCP, a Hindsight usa [hooks](https://docs.anthropic.com/en/docs/claude-code/hooks): scripts que aproveitam a execução automática em eventos do ciclo de vida, como início de sessão, envio de prompt ou conclusão de ferramenta. Nenhum LLM decide se deve demiti-los. O plugin Claude Code da Hindsight usa quatro ganchos de ciclo de vida para reter automaticamente cada conversa e recuperá-la automaticamente em cada prompt. Funciona.

Mas este argumento combina duas coisas: como a memória é desencadeada e onde ela reside.

Os ganchos do Hindsight chamam a API do Hindsight. Eles não gravam na memória interna do chicote. Os ganchos são o gatilho. O servidor externo é o armazenamento. Essa separação é toda a arquitetura. Um gancho que escrevesse na memória nativa de Claude Code herdaria as mesmas limitações: efêmero, não portátil, invisível para o Cursor amanhã.

Os ganchos resolvem o problema de disparo. Eles não resolvem o problema de armazenamento. Todo sistema de memória durável precisa de ambos.

Os ganchos estão amplamente disponíveis, embora não universalmente. Claude Code possui um sistema de plugins com mais de 12 eventos. O Cursor possui hooks.json com mais de 14 eventos em beta. OpenCode tem mais de 20 eventos, incluindo controle de compactação e injeção imediata do sistema. Codex possui ganchos de sessão com ganchos de nível de ferramenta em desenvolvimento. ChatGPT e o aplicativo da web Claude permanecem apenas MCP. A própria Hindsight fornece um servidor MCP exatamente para esses casos.

A resposta são ganchos quando disponíveis, MCP onde não, ambos gravando na mesma camada de estado durável abaixo de cada chicote. “MCP não tem esperança” é uma afirmação sobre o desencadeamento da confiabilidade, não sobre onde a memória deveria residir.

## As camadas são complementares

Cinco chicotes que tomam cinco decisões diferentes de compactação e contexto produzem cinco versões diferentes do que o agente sabe. A analogia da “direção” funciona para o gerenciamento de contexto. Ele quebra quando você dirige cinco carros e precisa de dados de navegação consistentes em todos eles.

O gerenciamento de contexto e o estado durável não estão competindo. Um chicote executa o agente e o loop de ferramentas. Uma camada de contexto, interna ou externa, gerencia o que o modelo vê em cada curva. Uma camada de estado gerencia o que é verdadeiro em sessões e ferramentas. Nenhum chicote ou proxy de contexto oferece verdade verificável, proveniência, determinismo, validação de esquema ou acesso entre ferramentas. O argumento a favor da memória incorporada em chicotes é simultaneamente o argumento em favor de uma camada de estado compartilhada abaixo de cada chicote.

## O que estou construindo

Estou construindo [Neotoma](https://neotoma.io), uma camada de memória estruturada que vive sob qualquer equipamento: resolução de entidade, cronogramas, proveniência, determinismo, acesso entre plataformas.

Esses tópicos mudaram o que estou construindo a seguir. Eu tratei o MCP como a única superfície de integração. Agora estou adicionando ganchos como uma camada de extensão do ciclo de vida. O MCP continua sendo a principal interface do agente.

A separação é deliberada. O MCP possui o contrato do agente: instruções carregadas uma vez no início da sessão, ferramentas de armazenamento estruturadas que o agente chama com total consciência contextual. Os ganchos possuem o contrato de aproveitamento: eventos do ciclo de vida que o agente não controla. Um gancho `UserPromptSubmit` recupera entidades relevantes automaticamente antes que o agente veja cada prompt. Os ganchos `PostToolUse` capturam cada edição de arquivo e comando de shell como observações. Um gancho `Stop` persiste na conversa bruta se o armazenamento de fechamento do próprio agente for perdido. Um gancho `PreCompact` observa o que o chicote está prestes a descartar.

O resultado é um piso de confiabilidade abaixo do teto de qualidade do MCP. Sem ganchos, o MCP funciona como hoje. Sem o MCP, os ganchos fornecem captura de observação bruta, mas nenhuma extração de entidade estruturada. Ambos juntos fornecem recuperação determinística, observação passiva, percepção de compactação e recuperação de colisões.

Isso difere da abordagem da Hindsight. O Hindsight captura transcrições brutas por meio de ganchos e, em seguida, executa um LLM separado no lado do servidor para extrair entidades. Isso significa que um segundo modelo julga o que importa, com custo e latência adicionais por operação. Neotoma mantém a extração de entidade orientada pelo agente: o mesmo modelo que entende a conversa faz a extração com custo marginal zero de LLM. Os ganchos fornecem a camada de confiabilidade subjacente, não a inteligência.

Plugins para Claude Code, Cursor, OpenCode e Codex são os próximos. Os ganchos gravam no Neotoma, não na memória interna do chicote. Todos eles alcançam a mesma camada de estado durável, por ganchos quando disponíveis e MCP onde não.

Wooders está certo ao dizer que o arnês possui o contexto. Boschi está certo ao dizer que os ganchos superam o MCP em termos de confiabilidade de acionamento. Kidwai mostra que até mesmo o gerenciamento de contexto pode ser externalizado. A questão que nenhum deles aborda é quem é o dono da verdade quando você usa cinco arreios. Essa resposta tem que estar abaixo de todas elas.