TECNOLANDIA TECH
Publicidade

AI Agent Memory: Como Fazer SaaS se Lembar dos Clientes

AI Agent Memory: Como Fazer SaaS se Lembar dos Clientes

Fonte: Unsplash

Seu cliente escreve na terça-feira que prefere entrega pela manhã, na sexta pergunta de novo qual é o prazo, e na segunda ele precisa repetir tudo. Isso acontece com produto que usa agente de IA e não tem memória — e é a reclamação que mais derruba percepção de qualidade em SaaS conversacional.

Memória de agente é o que transforma uma ferramenta que responde em um sistema que reconhece. Neste texto, você vê o que isso significa na prática, as três camadas que quase todo produto precisa, onde guardar cada coisa, como modelar o dado e — talvez o mais importante — quando o agente deve esquecer.

Memória não é histórico de chat

Guardar a conversa inteira e mandar tudo de volta no próximo pedido é o primeiro instinto, e é um erro caro. Funciona por um tempo, depois quebra em três frentes: custo sobe com o contexto, modelo se perde no meio do texto e o produto fica lento.

Memória de verdade é agregação: transformar conversas em fatos compactos que continuam úteis amanhã. Em vez de mandar 40 telas de histórico, você manda três linhas sobre o cliente.

Uma distinção que ajuda a projetar:

  • Histórico — o que foi dito, em ordem, para auditoria e depuração.
  • Memória — o que importa reter, de forma consultável, para dar continuidade.

As duas coisas existem no produto, mas só a segunda entra no prompt.

As três camadas que resolvem 90% dos casos

  1. Memória de sessão. Vive durante a conversa atual. Objetivo daquela interação, dados informados agora, estado do fluxo. some quando a sessão fecha.
  2. Perfil do cliente (memória semântica). Fatos estáveis: preferências, plano contratado, integrações que usa, tom de voz, restrições. É aqui que mora a frase "prefiro contato pela manhã".
  3. Conhecimento operacional. O que o cliente já fez: tickets abertos, pedidos, documentos enviados, uso de recursos. Em geral vem do seu banco de dados, não do modelo.

Essa separação evita o erro clássico de misturar tudo num campo só. Quando uma informação é volátil e outra é estável, elas precisam de ciclos de vida diferentes.

Onde guardar: escolha por tipo de dado

Não existe "banco da memória" único. A arquitetura comum combina três armários:

  • Banco relacional — perfil, preferências, flags. Dado estruturado, transação, consistência. É onde fica o que você precisa ler e escrever com segurança.
  • Store vetorial — trechos longos buscados por similaridade: cláusulas de contrato, artigos de ajuda, histórico resumido de tickets. Bom quando você não sabe exatamente o que vai perguntar.
  • Arquivo/objeto store — log bruto completo para auditoria, retrabalho e reprocessamento. Você lê pouco, mas precisa ter.

Regra prática: fato vai no banco, busca vai no vetor, prova vai no log. Quando alguém insiste em vetorizar tudo, o produto fica lento e as respostas ficam vagas.

Modelando a memória: o formato que funciona

Cada item de memória deve ter tipo, conteúdo, origem, confiança e data. Sem origem e sem data, você não consegue decidir se ainda vale. Exemplo de registro:

{
  "customer_id": "c_1042",
  "type": "preference",
  "content": "Prefere contato por e-mail, no período da manhã",
  "source": "conversation:msg_8831",
  "confidence": 0.9,
  "created_at": "2026-04-12T14:02:11Z",
  "expires_at": null
}

E o ciclo de escrita, em Python, ficaria assim:

def upsert_memory(db, customer_id, item):
    known = db.find_memories(customer_id, type=item["type"])

    # fatos conflitantes: o mais novo vence e o antigo é arquivado
    for old in known:
        if conflicts(old, item):
            db.archive(old["id"], superseded_by=item["source"])

    db.insert({
        **item,
        "customer_id": customer_id,
        "created_at": utcnow(),
    })


def build_context(customer_id, db):
    perfil = db.get_profile(customer_id)          # camada 2
    situacao = db.get_recent_state(customer_id)   # camada 3
    return format_prompt(perfil=perfil, situacao=situacao)

Repare em build_context: o prompt montado não é conversa, é resumo estruturado. Menos tokens, resposta mais estável, custo previsível.

Quando o agente deve esquecer

Memória que nunca apaga é problema jurídico e produto ruim ao mesmo tempo. Três gatilhos de descarte:

  • Pedido do usuário. "Não guarde isso" precisa funcionar de verdade, com remoção do registro e não apenas invisibilidade na tela.
  • Expiração. Preferência tática (frete, formato de relatório) envelhece. Coloque data de validade no campo expires_at e deixe a rotina limpar.
  • Sensibilidade. Dado pessoal não deveria virar memória livre. Se precisa reter por obrigação, guarde com regra de acesso e prazo, não dentro do contexto do modelo.

Sobre LGPD e congêneres, o resumo honesto é: informe o que você guarda, permita correção e eliminação, e reúna só o necessário. Se sua memória guarda tudo por padrão, você já está errado antes de qualquer fiscal chegar.

Os erros que transformam memória em ruído

  1. Memória infinita. Sem limite por tipo, o contexto enche com detalhe inútil e o custo cresce junto. Defina teto por categoria.
  2. Item demais, valor pouco. Se você guarda cada agradecimento, perde o que importa. Critério: guarda informação que muda a próxima resposta.
  3. Sem conflito. Cliente disse que mudou de endereço; sistema mantém o antigo ao lado do novo e escolhe qualquer um. Resolva conflito na escrita, nunca deixe para o modelo decidir.
  4. Sem visibilidade. O usuário não consegue ver nem corrigir o que você sabe sobre ele. Um painel simples com "o que sabemos" resolve confiança e suporte ao mesmo tempo.
  5. Escrita cega pelo agente. Se o próprio modelo decide o que gravar sem validação, uma frase ambígua vira fato permanente. Grave com confiança e reavalie depois.

O caminho de implementação em ordem

Se você está começando do zero agora, esta sequência evita retrabalho:

  • Semana 1: implemente só a camada de sessão e um log completo. Já dá para depurar.
  • Semana 2: adicione perfil com três campos (preferência, plano, idioma) e um endpoint que o cliente pode consultar e editar.
  • Semana 3: ligue a memória ao seu banco operacional — o agente passa a consultar pedido e status em vez de perguntar ao cliente.
  • Semana 4: coloque regra de expiração, remoção a pedido e métrica de "acerto de contexto": quantas vezes o cliente precisou se repetir.

Essa última métrica é o termômetro do produto. Se gente continua repetindo a mesma informação, o problema não é o modelo — é o que você decidiu lembrar.

E aí, fez sentido?

Conte nos comentários sua experiência com AI Agent Memory em SaaS — e se o artigo te ajudou, compartilhe com alguém que precisa ler. 👇

Publicidade