5 padrões arquitetônicos para memória e estado persistentes em agentes de IA


5 padrões arquitetônicos para memória e estado persistentes em agentes de IA

Memória e estado para agentes de IA

Construir um agente de IA pode ser complicado. Mantê-lo sob controle durante uma implantação de seis meses é incrivelmente difícil.

LLMs são apátridas por design. Cada ligação começa do zero, sem nenhuma lembrança do que aconteceu antes. Os primeiros desenvolvedores de agentes contornaram isso colocando todo o histórico de conversas na janela de contexto e esperando pelo melhor.

Até agora, sabemos que essa abordagem falha rapidamente. Picos de latência e a capacidade do modelo de realmente usar o que está no contexto se degrada: fatos relevantes ficam enterrados e, quando duas versões de um fato estão na janela, não há garantia de que a atual seja escolhida. Os custos do token também aumentam, embora o cache imediato tenha suavizado esse golpe para prefixos estáveis. A correção não é uma janela de contexto maior; trata-se de tratar a memória e o estado como decisões arquitetônicas deliberadas, e não como reflexões posteriores.

Antes de entrar nos padrões, vale a pena ser preciso sobre o que esses dois termos significam, porque são fáceis de confundir.

Estado é um instantâneo. É tudo o que o agente sabe atualmente sobre uma tarefa: em que etapa ela está, qual retornou a última chamada de ferramenta, quais variáveis ​​ela está rastreando. Pense nisso como um quadro branco. Ele é atualizado constantemente à medida que a tarefa avança e, quando a sessão termina, ele desaparece, a menos que você persista deliberadamente, que é o objetivo do Padrão 2.

Memória é o mecanismo que transporta informações através de uma fronteira: o próximo turno, a próxima sessão ou um agente completamente separado sendo executado posteriormente. A memória de trabalho é o caso do horizonte mais curto (volta a volta); sessões de extensão de memória semântica e episódica.

Os dois interagem em um ciclo específico. No início de uma tarefa, o agente lê da memória para construir seu estado inicial: carregando fatos relevantes, regras comportamentais aplicáveis ​​e registros de falhas passadas em tarefas semelhantes. Durante a tarefa, o agente atualiza o estado continuamente enquanto funciona. À medida que a tarefa avança e termina, ela grava partes selecionadas desse estado de volta na memória para que o próximo turno ou sessão possa se beneficiar do que acabou de acontecer. A memória alimenta o estado; o estado retorna à memória.

Esta distinção é importante porque os modos de falha são diferentes. Um estado interrompido significa que o agente perde o controle do que está fazendo no meio da tarefa. Memória quebrada significa que o agente não consegue aprender, não consegue personalizar e trata cada interação como uma folha em branco. Ambas as falhas são comuns em sistemas de produção e requerem correções diferentes.

Os cinco padrões abaixo abordam ambos: Os padrões 1 e 2 gerenciam o estado; 3 e 4 constroem a camada de memória que persiste entre as sessões; e 5 restringe ambos.

1. O buffer de trabalho no contexto (execução de curto prazo)

O Conceito

A memória de trabalho mantém o estado efêmero da sessão atual: o immediate ativo, os turnos de conversação recentes e as saídas da ferramenta ativa. Pense nele como o espaço temporário de curto prazo do agente, liberado quando a sessão termina.

Como funciona

Em vez de deixar a lista de mensagens crescer indefinidamente, o buffer de trabalho atua como uma janela deslizante. O agente escreve etapas de raciocínio imediatas em um bloco de rascunho. À medida que o buffer se aproxima de um limite de token, um processo de resumo comprime os turnos mais antigos em um resumo de fundo denso, mantendo as conclusões lógicas e descartando as saídas brutas da ferramenta. Quando a tarefa termina, o buffer é liberado: tudo o que vale a pena manter é extraído para armazenamentos de longo prazo e o restante é descartado.

Vale ressaltar: esse resumo no meio da conversa pode reescrever o prefixo do immediate, o que invalida o cache KV e cria um pico de latência na próxima chamada. É uma verdadeira compensação projetar.

Quando usá-lo

Todo agente precisa disso. É a base para lidar com o raciocínio em várias etapas em uma sessão.

2. Ponto de verificação de execução (tolerância a falhas e pausa)

Depois de ter uma estratégia para gerenciar o que o agente mantém na memória durante uma sessão, a próxima questão é o que acontece quando essa sessão é interrompida.

O Conceito

Tarefas de longa duração falham. Um agente pode atingir o tempo limite, atingir um limite de taxa ou fazer uma pausa esperando que um humano aprove uma ação. O ponto de verificação salva o estado do fluxo de trabalho do agente em um banco de dados para que a execução possa ser retomada exatamente de onde parou, sem executar novamente o trabalho já concluído.

Como funciona

Estruturas baseadas em gráficos modelam fluxos de trabalho como nós e arestas. Após cada etapa, a estrutura persiste o estado do fluxo de trabalho, incluindo variáveis, histórico e posição atual, para um armazenamento durável como PostgreSQL ou SQLite. Se o agente travar, ele recarregará o último ponto de verificação e continuará a partir daí.

Uma coisa que deixa os profissionais regularmente impressionados: a retomada não oferece uma semântica exatamente uma vez. Se um nó foi parcialmente executado antes de travar (digamos que enviou um e-mail ou escreveu uma linha do banco de dados), ele poderá ser executado novamente ao reiniciar. Os nós de efeitos colaterais precisam ser idempotentes. Lembre-se também de que identificadores de arquivos abertos e objetos de cliente não podem ser verificados, o que limita o que você pode colocar no estado com segurança.

Quando usá-lo

Essencial para sistemas humanos no circuito, fluxos de trabalho regulamentados onde as ações precisam de aprovação e qualquer tarefa de longo horizonte suscetível a falhas de rede.

3. Memória Semântica (Conhecimento entre Sessões)

Checkpointing lida com a continuidade dentro de uma tarefa. Mas e o conhecimento que precisa sobreviver em sessões totalmente separadas?

O Conceito

Memória semântica é o que o agente sabe: fatos, preferências do usuário e conhecimento do domínio que persistem em sessões independentes.

Como funciona

Os fatos são extraídos de forma assíncrona e armazenados em um banco de dados externo, geralmente um armazenamento vetorial com filtragem de metadados, às vezes combinado com um gráfico de conhecimento onde a travessia do relacionamento é realmente importante. Quando chega uma consulta, o sistema recupera os fatos mais relevantes e os injeta no immediate antes que o modelo os veja. Observe que a extração pode custar uma chamada LLM adicional ou mais, dependendo da arquitetura, e geralmente uma por turno.

Um conflito para contornar: se um usuário mencionar “Eu uso Postgres” em março e “migramos para Snowflake” em julho, ambos os fatos acabam na loja. A recuperação pode revelar qualquer um deles. A invalidação de fatos, por meio de ponderação de atualidade, lógica de substituição ou TTLs, é o que realmente resolve o problema de fatos obsoletos levantado no topo.

Também vale a pena chamar explicitamente: credenciais e segredos não são memória semântica. Não armazene chaves de API em um armazenamento recuperável. Uma injeção imediata ou uma recuperação muito ansiosa poderia emiti-los em uma resposta modelo. Os segredos pertencem a um gerenciador de segredos, onde o agente obtém um identificador de credencial cujo valor nunca vê.

O risco inverso também importa: conteúdo não confiável (uma página copiada, uma mensagem de usuário, uma saída de ferramenta) extraído na memória semântica como um “fato” pode direcionar persistentemente o agente na direção errada. Como não há um equivalente imediato de parametrização, nem uma separação rígida entre instruções e conteúdo, a marcação de proveniência faz o trabalho: rastreia a origem de um fato e avalia sua influência de acordo.

Quando usá-lo

Assistentes pessoais, copilotos de codificação ou agentes corporativos que precisam lembrar o estilo de código preferido de um usuário, diretrizes de arquitetura ou convenções de esquema de banco de dados entre sessões.

4. Registros de eventos episódicos (reflexão histórica)

A memória semântica armazena o que o agente sabe; a memória episódica armazena o que o agente fez.

O Conceito

A memória episódica atua como um registro cronológico da trajetória de execução do agente: Meta, Plano, Chamadas de Ferramentas, Resultado.

Como funciona

Quando um fluxo de trabalho termina, um processo em segundo plano registra toda essa trajetória. Antes de o agente realizar uma tarefa semelhante, ele consulta esse log. Se uma consulta ao banco de dados falhou anteriormente devido a um erro de sintaxe, a memória episódica revela esse contexto para que o agente não repita o erro.

Uma ressalva: os rastreamentos de falha recuperados são consultivos, não restritivos. O modelo pode ignorá-los. Há também um risco de envenenamento: se uma falha ambiental única for registrada como uma falha estratégica, você estará ensinando persistentemente ao agente a lição errada. Faça login com isso em mente.

Quando usá-lo

Agentes de codificação autônomos, pipelines de engenharia de dados e sistemas de planejamento que precisam aprender com os erros do passado sem intervenção humana.

5. Segregação multiescopo (privacidade empresarial)

Uma vez que a memória persiste, a questão é quem pode vê-la. No momento em que seu sistema atende mais de um usuário, a memória precisa ser isolada.

O Conceito

A memória não é um único depósito compartilhado. Um fato aprendido ao ajudar o Usuário A nunca deve vir à tona para o Usuário B.

Como funciona

Cada gravação na memória é marcada com escopos de identidade: ID do usuário, ID_da_sessão, id_org. A recuperação filtra estritamente com base no token de autenticação do usuário ativo. Sempre que possível, aplique isso na camada de armazenamento, por meio de namespaces por locatário ou segurança em nível de linha, em vez de depender apenas de filtros de consulta na camada de aplicativo. Um esquecido ONDE cláusula falha em abrir; o isolamento da camada de armazenamento falha no fechamento.

Este é um pré-requisito para a conformidade com a privacidade de dados, e não a linha de chegada. O problema mais difícil é a exclusão: quando um usuário exerce seu direito de exclusão, você precisa excluir não apenas seus dados brutos, mas também as incorporações, resumos e fatos extraídos deles derivados.

Quando usá-lo

Qualquer produto SaaS, sistema multilocatário ou implantação empresarial em que os limites de dados devam ser aplicados.

Resumo

Uma coisa que nenhum desses padrões cobre por si só são os limites de crescimento. Ao longo de uma implantação de seis meses (o enquadramento com o qual este artigo começou), os armazenamentos semânticos e episódicos acumularão quase duplicatas, entradas desatualizadas e ruído. A qualidade da recuperação diminui à medida que as lojas ficam lotadas e os custos aumentam com elas. TTLs, trabalhos de consolidação e políticas de remoção não são opcionais; eles fazem parte da memória operacional em grande escala.

A janela de contexto não é um banco de dados. Ao desacoplar a memória em componentes distintos, buffers de curto prazo para execução, logs episódicos para experiência e armazenamentos semânticos para fatos, você obtém sistemas que realmente aprendem, permanecem dentro dos limites dos dados e permanecem na produção.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *