stamatios
← Voltar ao feed
Arquivo de gaveta com fichas etiquetadas ao lado de pequeno baú de banco de dados, memória portátil para agentes
Agentes

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.