stamatios
← Voltar ao feedAgentes

Memoryfields propõe memória de agentes como arquivos Markdown

resumo de ~3 min

A tese: memória como dado, não como processo

Cal Paterson apresenta Memoryfields, um formato de arquivo portátil para memória de agentes de IA, com a premissa de que agentes reais não deveriam começar com uma janela de contexto vazia, mas com o máximo de informação relevante disponível. A crítica central é que os sistemas de memória existentes tratam memória como um processo (pipelines, APIs, bancos de grafos), quando seria melhor representá-la como dados.

Por que os sistemas atuais falham

O autor identifica três categorias problemáticas. A primeira amarra o usuário a um harness específico, geralmente do próprio laboratório que fornece o modelo, que quer migrar do "negócio de API" para o mais lucrativo "negócio de plataforma"; esses sistemas mineram o histórico de conversas e produzem memórias sobre o usuário, quando informação sobre o mundo tende a ser mais útil. A segunda é excessivamente complexa - um sistema conhecido pelo autor exige pgvector, um Neo4j e um LLM próprio só para decidir o que lembrar. A terceira, "alta-modernista", imagina uma memória racionalizada com grafos e proposições lógicas, que arranca informações de seu contexto e as deixa isoladas e sem sentido para o agente.

O formato memoryfield

Um memoryfield é um arquivo zip com páginas em Markdown, opcionalmente com frontmatter YAML e um índice vetorial em SQLite para busca semântica. Cada página segue um limite suave de cerca de 8 kb (~2.000 tokens), o equivalente a um artigo de revista médio; para mais detalhes, criam-se mais páginas.

Quatro decisões de desenho sustentam a proposta:

  1. Prosa, não fragmentos ou "fatos": como a memória é escrita pelo próprio agente, que sabe escrever prosa, não há necessidade de chunking, enriquecimento ou sumarizações mecânicas típicas de pipelines de RAG voltados a documentos legados.

  2. Salto semântico, não caminhada em grafo: inspirado parcialmente nas "Karpathy wikis", o autor argumenta que percorrer grafos de conhecimento é lento (N+1 chamadas de ferramenta para informação N níveis profunda, cada pausa de 2 a 3 segundos), pouco confiável (o agente julga relevância por texto de link ou título, o que incentiva manipulação de metadados) e confuso (leitura irrelevante polui a janela de contexto). Com busca semântica baseada no conteúdo real, bastam duas chamadas: uma para buscar e outra para ler todas as páginas relevantes em paralelo.

  3. Mais modelo, menos mecanismo: por ser um sistema de "baixo mecanismo" - apenas um formato de arquivo -, o agente fica livre para inventar seus próprios padrões de acesso (exemplos reais: usar perl para substituições em todo o corpus ou consultar CSVs embutidos com SQLite). Sistemas de "alto mecanismo", com APIs fixas, não acompanham o avanço dos modelos; memoryfields escalam com a fronteira, pois modelos melhores escrevem memórias mais elaboradas por conta própria.

  4. Formato aberto e invariante ao transporte: há uma especificação em estilo RFC que evita vínculo com uma função de embedding específica. O formato canônico de arquivamento é um zipfile, mas pode ser servido de arquivos locais, Amazon S3, GitHub ou HTTP. O autor usa Syncthing para memórias pessoais e S3 para compartilhar.

Objeções e ressalvas

Sobre "isso não é só RAG?": o autor concede que, com a definição ampla atual, sim, mas aponta que não há chunking, re-ranking ou busca híbrida, e que memoryfields servem também para escrita, não só leitura. Sobre o modelo de embedding nomic-embed-text-v1.5, com mais de dois anos: ele o defende como bom equilíbrio entre tamanho (270 MB, roda sem GPU) e desempenho, e a especificação permite outros embeddings.

Memórias irrelevantes não atrapalham o agente, pois nunca são trazidas pela busca semântica; a recomendação é inserir liberalmente e incluir citações, idealmente URLs, para facilitar verificação futura.

Em segurança, o aviso é enfático: não se deve compartilhar a janela de contexto, inclusive via memórias, com partes não confiáveis, e continua não havendo como um agente distinguir um "prompt bom" de um "prompt maligno". O formato zip estático permite revisão manual e fixação via sha256sum de memoryfields de terceiros.

Conclusão

O fluxo completo resume a proposta: escrever memória em Markdown, gerar o embedding e salvar o vetor em SQLite, e buscar semanticamente para recuperar. O índice vetorial é um cache deletável, não o sistema em si. A tese final: quanto menos maquinário fixo entre o agente e os dados, melhor o agente funciona.