DEV Community

Cover image for Como Funciona a Memória de Agentes de IA (e Como Testá-la via API)
Lucas
Lucas

Posted on • Originally published at apidog.com

Como Funciona a Memória de Agentes de IA (e Como Testá-la via API)

TL;DR

Agentes de IA falham não por falta de inteligência, mas porque esquecem. Compreender os quatro tipos de memória de agente, como são armazenados e como afetam o comportamento da API, permite construir agentes mais confiáveis e detectar erros antes que cheguem à produção.

Experimente o Apidog hoje

Introdução

Aqui está o segredo sujo da maioria das falhas de agentes de IA: o modelo está bom. A camada de memória está quebrada.

Um agente que não consegue se lembrar do que aconteceu três turnos atrás, que perde o contexto do usuário entre as sessões, ou que se contradiz no meio de uma tarefa, não está alucinando por causa da qualidade do modelo. Ele está falhando porque a arquitetura de memória não foi cuidadosamente projetada ou não foi testada.

Hippo, um sistema de memória de agente de código aberto que recentemente ganhou destaque, adota uma abordagem biologicamente inspirada: ele modela a memória de curto prazo, longo prazo e episódica separadamente, da mesma forma que a memória humana funciona. Esse projeto revelou uma lacuna real: a maioria dos desenvolvedores constrói a memória do agente como um recurso secundário e só descobre que está quebrada na produção.

💡 Dica: Os Cenários de Teste do Apidog permitem testar conversas de agente com estado e múltiplos turnos antes de irem ao ar. Você pode verificar se o estado da sessão é mantido entre as chamadas de API, fazer asserções sobre a estrutura do contexto e simular falhas de memória com o Smart Mock. Essa camada de teste é o assunto da segunda metade deste artigo. Por enquanto, comece com o que realmente acontece dentro da memória do agente. Veja [interno: api-testing-tutorial] para uma introdução à abordagem de teste mais ampla.

O que é a memória do agente de IA?

A memória do agente é qualquer mecanismo que permite a um sistema de IA acessar ou reter informações além da entrada atual. Sem ela, cada chamada de API é sem estado: o modelo recebe um prompt, retorna uma resposta e não se lembra de nada.

Quatro tipos distintos de memória servem a propósitos diferentes.

Os quatro tipos de memória de agente

Memória de trabalho

Memória de trabalho é o contexto ativo do agente: tudo no prompt atual. Para a maioria dos agentes baseados em LLM, esta é a janela de contexto. Exemplos:

  • GPT-4o: 128K tokens.
  • Claude 3.5 Sonnet: 200K tokens.
  • Gemini 1.5 Pro: 1M tokens.

A memória de trabalho é rápida e precisa, mas cara (pagamento por token) e limitada. Quando o limite é atingido, o contexto mais antigo é descartado sem aviso, causando bugs em tarefas longas.

Memória episódica

Memória episódica registra o que aconteceu: interações passadas, decisões e observações. É o diário do agente.

Implementação prática:

  • Banco de dados vetorial (Chroma, Pinecone, Qdrant) ou log de eventos estruturado.
  • Recuperação semântica de episódios relevantes antes de gerar respostas.
  • O Hippo usa carimbos de data/hora e pesos de decaimento para priorizar interações recentes.

Memória semântica

Memória semântica armazena o que o agente sabe: fatos, conhecimento de domínio, preferências do usuário, conhecimento estável do mundo.

Exemplos de implementação:

  • Pré-carregado no prompt do sistema (perfil do usuário).
  • Construído dinamicamente (grafo de conhecimento).
  • Obtido via RAG (recuperação em base de documentos).

Memória procedural

Memória procedural armazena como o agente executa tarefas: sequências de ações, uso de ferramentas, habilidades aprendidas.

Como implementar:

  • Exemplos few-shot no prompt do sistema.
  • Biblioteca de planos de ação recuperáveis e adaptáveis.

Como a memória é armazenada em sistemas reais

Os quatro tipos raramente se mapeiam um-para-um para armazenamentos separados. Na prática:

  • Janela de contexto (trabalho): tudo no prompt ativo, gerenciado pela estrutura do agente. Expira ao fim da conversa.
  • Armazenamento vetorial externo (episódico + semântico): Chroma, Pinecone ou Qdrant armazenam embeddings de interações e conhecimento. O agente consulta e injeta blocos relevantes no prompt.
  • Banco de dados estruturado (semântico + procedural): PostgreSQL/SQLite para preferências, estado da conta, modelos de ação. Consultado via ferramentas.
  • Cache em memória (transbordamento de trabalho): Redis ou dicionário simples para acesso rápido ao contexto recente.

O Hippo faz a consolidação explícita: memória de trabalho não acessada é transferida para a episódica, que é resumida para a semântica, espelhando o sono humano. O comando "sleep" força a consolidação.

Como a memória do agente afeta o comportamento da API

Ao implementar ou consumir APIs de agente, a memória impacta diretamente as chamadas e possíveis falhas.

  • IDs de sessão: APIs usam IDs para correlacionar memória entre chamadas. Exemplo: thread_id na OpenAI Assistants. IDs errados causam perda de contexto ou mistura de sessões.
  • Tamanho do contexto nos payloads: Memória injetada aumenta o corpo da requisição. Conversas podem crescer de 2KB para 40KB após muitos turnos. Limites do cliente HTTP podem causar falhas silenciosas.
  • Latência de recuperação: Consultas em vetores adicionam 50–200ms por turno. Considere isso ao validar o tempo de resposta da API.
  • Estado inconsistente após falhas: Falhas em chamadas de ferramenta podem deixar logs episódicos incompletos, corrompendo o estado. Agentes robustos validam o estado antes/depois do uso de ferramentas.

Como testar a memória do agente via API com Apidog

Testar APIs de agente com estado exige mais do que asserções simples. Confira como criar cenários práticos no Apidog:

Exemplo: Cenário de Teste no Apidog

Teste 1: manutenção de contexto

Crie um cenário com três etapas sequenciais:

  1. POST /agent/chat com uma mensagem introduzindo um fato (ex: "Meu projeto usa PostgreSQL 16").
  2. POST /agent/chat com uma continuação que exige lembrar do fato ("Para qual banco de dados devo otimizar?").
  3. Asserte que response.message.content contém "PostgreSQL".

Se a memória estiver funcionando, o agente responde corretamente. Caso contrário, resposta genérica.

Teste 2: isolamento de sessão

Execute as duas etapas acima com valores diferentes de session_id. Verifique que a resposta da segunda sessão não contém contexto da primeira. Assim, detecta vazamento de memória entre usuários.

Teste 3: degradação por falha de memória

Use o Smart Mock do Apidog para simular falha no backend de memória (retorne 503 no endpoint de consulta vetorial). Teste se:

  • O agente responde sem falhar.
  • A resposta inclui fallback ("Não tenho contexto suficiente para responder a isso").
  • A sessão pode ser retomada ao remover o mock.

Teste 4: transbordamento da janela de contexto

Envie 30+ mensagens rápidas para estourar o limite de contexto. Verifique:

  • O agente não lança erro context_length_exceeded (deve truncar graciosamente).
  • A resposta no 30º turno ainda faz sentido usando recuperação episódica.
  • Contagem de tokens em response.usage permanece dentro do esperado.

Todos esses testes podem ser encadeados em um único Cenário de Teste no Apidog, compartilhando variáveis de sessão e resposta. Veja [interno: how-to-build-tiny-llm-from-scratch] para detalhes sobre implementação de janelas de contexto.

Modos comuns de falha de memória

  • Truncamento silencioso de contexto: Antigas mensagens desaparecem sem aviso. Valide response.usage.prompt_tokens para garantir que não excede o limite.
  • Vazamento de sessão: Sessões diferentes compartilham memória. Use testes de isolamento.
  • Memória semântica desatualizada: Conhecimento antigo contradiz fatos atuais. Asserte "data atual" e valores carregados.
  • Desvio de embedding: Mudanças de modelo de embedding tornam a recuperação errada. Teste se o contexto recuperado é semanticamente relevante à consulta.
  • Injeção de prompt de memória: Entradas maliciosas manipulam o contexto. Inclua entradas adversárias e confira se o agente as ignora. Veja [interno: rest-api-best-practices] para práticas de segurança.

Conclusão

A memória do agente diferencia um assistente inteligente de um amnésico. Os quatro tipos — trabalho, episódica, semântica e procedural — possuem papéis distintos. Entender seu armazenamento e recuperação mostra onde bugs podem surgir e o que testar via API.

Ferramentas como o Hippo apontam para arquiteturas de memória mais robustas. Independentemente do sistema, os Cenários de Teste do Apidog garantem que o comportamento do agente seja verificado, principalmente em casos de falha que só aparecem em escala.

FAQ

Qual é a maneira mais simples de adicionar memória a um agente?

Use uma janela deslizante sobre o histórico da conversa (últimos N turnos no prompt). Para agentes de longa duração, adicione armazenamento vetorial e recuperação semântica.

Como a API OpenAI Assistants lida com a memória?

A API gerencia um objeto de thread com o histórico da conversa no servidor. Ferramentas como pesquisa de arquivos ou interpretador de código podem ser anexadas para acesso externo. O gerenciamento de memória é abstraído, facilitando o uso, mas dificultando a depuração.

Qual é o melhor banco de dados vetorial para memória de agente?

Desenvolvimento local: Chroma. Produção: Qdrant ou Pinecone (auto-hospedado ou gerenciado). Hippo suporta backends plugáveis. Veja [interno: claude-code] para exemplos.

Como evitar que agentes alucinem interações passadas?

Armazene logs estruturados com metadados (timestamp, confiança, fonte). Inclua metadados no prompt (ex: "Conforme nossa conversa em [data], você mencionou X.").

Posso testar a memória do agente sem um agente em execução?

Sim. Use o Smart Mock do Apidog para simular respostas baseadas em memória, variando por ID de sessão ou conteúdo da requisição.

Quanto custa armazenamento vetorial em produção?

Pinecone gratuito até 100K vetores, depois cerca de $0.096/hora por pod p1.x1 (1M vetores de 768 dimensões). Qdrant auto-hospedado é gratuito. O maior custo costuma ser a geração de embeddings.

Qual a diferença entre RAG e memória de agente?

RAG recupera documentos de uma base fixa no momento da consulta. Memória de agente cresce e muda conforme a interação, respondendo sobre o usuário e histórico de ações, não apenas documentos.

Top comments (0)