Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Trilha Arquiteto de IA/Memória de agentes: curto e longo prazo
Módulo 3 · Agentes· Aula 12/22

Memória de agentes: curto e longo prazo

Como agentes lembram dentro de uma sessão e entre sessões, e os custos disso.

5 min de leitura

Escolha como aprender

combine como quiser

Dica: o vídeo é um resumo visual rápido; o áudio e o texto trazem a aula completa. Terminar o áudio ou o vídeo, ou passar no quiz, já conta a aula como concluída.

Assista a esta aula
Narrado por Fernando AzevedoMP4PDF
Ouça esta aula
0:009:30
Velocidade
Baixar

Um agente sem memória é como um colega que esquece tudo entre reuniões: você repete o contexto toda vez, ele comete os mesmos erros e nunca evolui. Memória é o que transforma um chatbot stateless em um agente que realmente aprende e age com contexto, e entender os seus custos é tão importante quanto entender os seus benefícios.

Curto prazo: a janela de contexto é a memória de trabalho

Toda vez que o agente chama o modelo, ele envia uma lista de mensagens, o histórico da conversa. Isso é a memória de curto prazo: o que está dentro da janela de contexto naquele momento. Não existe estado mágico no modelo; o modelo é stateless por natureza. O que parece "lembrar" é simplesmente o histórico que você coloca no prompt.

Isso tem uma consequência direta: cada token no histórico custa dinheiro e latência. Se você acumular todas as mensagens de uma sessão longa sem critério, o contexto cresce, o custo sobe e, pior, o modelo começa a perder foco no que importa. Pesquisadores chamam isso de lost in the middle: informação no meio de um contexto longo tende a ser ignorada pelo modelo.

A solução prática é gerenciar o histórico ativamente. As estratégias mais comuns são: manter apenas as últimas N mensagens (janela deslizante), sumarizar o histórico antigo em um bloco compacto, ou combinar as duas. O agente não precisa de tudo, precisa do suficiente para agir com coerência.

Longo prazo: persistência entre sessões

Memória de longo prazo é o que sobrevive quando a sessão termina. Ela não mora no contexto, mora em um armazenamento externo que o agente consulta quando precisa. E aqui a conexão com os módulos anteriores fica explícita: a forma mais eficaz de recuperar memória de longo prazo é via busca semântica em um vector store, exatamente como RAG (Lição 06).

Existem três sabores principais que você vai encontrar na prática:

  • Episódica: fatos sobre interações passadas. "Na semana passada o usuário disse que prefere relatórios em PDF." São eventos com contexto temporal.
  • Semântica: conhecimento geral que o agente acumulou. "A empresa usa Kubernetes na região us-east-1." Fatos sem âncora temporal forte.
  • De perfil (ou de usuário): atributos estáveis do usuário ou da entidade. Nome, preferências, cargo, histórico de decisões. Geralmente armazenados de forma estruturada, não apenas como vetores.

Quando o agente inicia uma nova sessão, ele faz uma consulta ao armazenamento de longo prazo, usando o contexto atual como query, e injeta os fatos relevantes no prompt. Isso é memória como retrieval, não memória como estado global.

Camadas de memória de um agente

Fluxo de como o agente acessa e persiste memória durante e entre sessões.

🟦 Sessão atual: Short-term
  • Janela de Contexto · Context Window
  • Histórico da Conversa · Conversation History
  • Sumarizador · Summarizer
🟧 Persistência: Long-term
  • Vector Store · Episódica + Semântica
  • Perfil do Usuário · User Profile Store
🤖 Agente: Agent Core
  • Loop ReAct · Agent Loop
  • Memory Retriever · Busca semântica
FA
Na prática: memória demais é tão perigosa quanto memória de menos
Arquiteto de TI Especialista

Na prática, o erro mais comum que vejo em implementações de agentes não é esquecer de implementar memória, é implementar sem critério de seleção. Guardar tudo e injetar tudo no contexto cria dois problemas sérios: custo de tokens cresce linearmente com o histórico, e o modelo começa a se contradizer ao tentar reconciliar fatos antigos com novos. Minha recomendação: trate memória como cache, expire o que não é mais relevante, priorize o que tem alta similaridade com a intenção atual, e nunca injete mais do que o necessário para a tarefa em mãos.

Trade-offs: o custo real de lembrar

Memória não é gratuita. Cada decisão de design tem um custo explícito que você precisa conhecer antes de ir para produção.

Tokens e latência: cada fato que você injeta no contexto aumenta o número de tokens de entrada. Em modelos cobrados por token, isso impacta diretamente o custo por sessão. Em modelos com janela limitada, você pode simplesmente ficar sem espaço.

Ruído e alucinação: memória irrelevante no contexto não é neutra, ela confunde o modelo. Se você injeta um fato de seis meses atrás que contradiz o estado atual, o modelo pode misturar os dois e gerar uma resposta incorreta com alta confiança. Isso é especialmente crítico em memória episódica.

Staleness (dados velhos): perfis e fatos semânticos envelhecem. O cargo do usuário mudou, a arquitetura foi migrada, a política foi atualizada. Sem uma estratégia de expiração ou atualização, a memória de longo prazo vira desinformação.

Privacidade e compliance: memória de usuário é dado pessoal. Antes de persistir qualquer coisa entre sessões, você precisa saber onde está armazenando, quem tem acesso e por quanto tempo. Isso não é detalhe de implementação, é requisito de arquitetura.

O equilíbrio certo é: memória de curto prazo gerenciada ativamente (janela deslizante + sumarização), memória de longo prazo recuperada por relevância (não por completude), e expiração explícita para tudo que tem prazo de validade.

Curto prazo vs. Longo prazo

DimensãoCurto prazo (contexto)Longo prazo (store externo)
Onde moraJanela de contexto do LLMVector store / banco estruturado
DuraçãoApenas durante a sessãoPersiste entre sessões
Custo de acessoTokens de entrada (direto)Latência de busca + tokens injetados
Risco principalContexto longo = lost in the middleDados velhos = alucinação por staleness
Estratégia de controleJanela deslizante + sumarizaçãoRetrieval por relevância + expiração
Flashcards

Tipos de memória

Toque num cartão para virar.

O que você precisa saber desta lição

Memória de curto prazo = histórico no contexto. O modelo é stateless; o estado é seu problema.
Memória de longo prazo = retrieval de um store externo. Funciona como RAG aplicado a fatos do agente.
Existem três tipos: episódica (eventos passados), semântica (conhecimento geral) e de perfil (atributos do usuário).
Memória demais custa tokens, gera ruído e pode causar alucinação. Selecione por relevância, não por volume.
Dados de memória envelhecem e são dados pessoais, expiração e compliance são requisitos de arquitetura.

Perguntas frequentes

Preciso de um vector store dedicado para memória de longo prazo?

Não necessariamente. Para memória de perfil simples, um banco relacional ou DynamoDB resolve. Vector store faz sentido quando você precisa de busca semântica, por exemplo, recuperar episódios passados com base no contexto atual da conversa. Comece simples e adicione complexidade quando o caso de uso justificar.

Como evitar que o agente injete memória irrelevante no contexto?

Use um threshold de similaridade na busca vetorial, só injete fatos acima de um score mínimo. Além disso, limite o número de itens recuperados (top-k pequeno) e considere um passo de re-ranking para priorizar os mais relevantes para a intenção atual.

Memória de agente e RAG são a mesma coisa?

O mecanismo é o mesmo, embeddings + busca semântica + injeção no contexto. A diferença é a origem dos dados: RAG busca em documentos externos (base de conhecimento), memória de longo prazo busca em fatos gerados pelo próprio agente e usuário durante interações anteriores. São camadas complementares, não substitutas.

Próxima lição: Bedrock AgentCore Memory

No Módulo 4 (Lição 17), você vai ver como o Amazon Bedrock AgentCore implementa essas camadas de memória de forma gerenciada, sem precisar orquestrar manualmente o vector store, a expiração e a injeção no contexto. Os conceitos desta lição são o mapa; o AgentCore é o território na AWS.

Referências

Lost in the Middle: How Language Models Use Long Contexts (Stanford / UC Berkeley)Amazon Bedrock AgentCore Memory: AWS DocsBuilding effective agents: AnthropicLangGraph Memory: LangChain Docs
Concluir e ir para a próxima Aula anterior