Skip to main content
O LangChain Agent guarda a conversa inteira do lead e a reenvia ao modelo a cada resposta, junto com o prompt, as tools e o contexto do lead. Numa conversa longa, a entrada cresce a cada mensagem: fica mais cara, mais lenta e, no limite, passa do tamanho que o modelo aceita. Dois ajustes seguram isso:
  • Resumir histórico troca a parte antiga da conversa por um resumo.
  • Descartar resultados apaga resultados antigos de tools, que ocupam muito e envelhecem rápido.
Os dois vêm desligados.

O que o agente guarda da conversa

  • Tudo da conversa atual: as mensagens do lead, as respostas do agente, cada chamada de tool e o que ela devolveu, e as skills carregadas.
  • O que aconteceu sem a IA. Antes de cada resposta, a Zatten envia ao agente as mensagens que ele ainda não viu desde a última resposta dele: o que o lead mandou enquanto a IA estava pausada ou desligada e o que a equipe respondeu (identificado como “Atendente humano”). Assim, ao voltar de uma pausa humana, o agente sabe o que o humano disse. Mídia enviada pelo lado da empresa entra como aviso (“[Imagem enviada]”), sem o arquivo.
  • Só a conversa atual. Encerrar o atendimento começa uma conversa nova, e o agente começa sem o histórico da anterior. O que precisa sobreviver entre conversas vai em notas, tags ou propriedades do lead (que entram no contexto injetado).
Para ver o tamanho real de cada chamada, use o LangSmith ou as Métricas (Estimar o custo de IA).

Resumir histórico

Quando a conversa passa do gatilho, as mensagens antigas viram um resumo e as mais recentes seguem inteiras. Onde fica: menu Agente (/project) → ícone de configurações ao lado do Modelo → Resumir histórico. Pelo menos um gatilho é obrigatório. Com os dois, vale o que for atingido primeiro. Como funciona por trás:
  • O resumo é feito por uma chamada extra ao modelo, só quando o gatilho é atingido. Por padrão usa o mesmo modelo e a mesma chave do agente.
  • O resumo substitui as mensagens antigas na memória da conversa. O texto original continua no chat do painel, mas o agente passa a ver só o resumo.
  • Se o resumo falhar (o provider caiu, por exemplo), a resposta segue sem resumir. O lead não fica sem resposta por causa disso.
  • Chamadas de tool e seus resultados contam como mensagens.
Valores de partida: para atendimento comercial de WhatsApp, gatilho entre 8.000 e 20.000 tokens e Preservar as últimas em 20. Gatilho baixo demais resume a toda hora (mais chamadas e perda de detalhe); alto demais deixa cada resposta cara. Ajuste olhando o tamanho real das chamadas no LangSmith.

Descartar resultados

Resultados de tools ocupam muito espaço (uma consulta de estoque, uma lista de horários) e perdem valor rápido. Este ajuste apaga os resultados antigos e mantém os mais recentes, sem tocar no que foi conversado. Onde fica: menu Agente → ícone de ajustes ao lado de Tools (Comportamento das Tools) → Descartar resultados. O resultado apagado vira o texto [cleared] no lugar do conteúdo. O modelo sabe que a tool foi chamada, mas não vê mais o que ela devolveu.
A skill carregada é um resultado de tool. Pelo painel, o load_skill é protegido automaticamente quando você salva. Pelo MCP ou pela API, inclua "exclude_tools": ["load_skill"] em cada item de edits.

Qual usar

Histórico na migração

Quando um lead que já conversava no motor antigo manda a primeira mensagem depois da migração, a Zatten envia ao agente as últimas mensagens da conversa atual, limitadas pelo campo message_quantity do agente (mínimo 20). O mesmo vale para qualquer conversa que começa no LangChain Agent já com mensagens gravadas. message_quantity não aparece no editor do LangChain Agent. Muda pelo template, no bloco llm_attendant. Com muitas mensagens trazidas, a primeira resposta pode passar do gatilho do resumo e resumir tudo de uma vez. Depois dessa primeira resposta, o histórico cresce mensagem a mensagem, como em qualquer conversa.

Pelo MCP

Os dois ajustes ficam em langchain.config.settings. Escrever o bloco langchain cria uma versão não publicada; o config enviado substitui o config inteiro, então mande o config completo do get_template com a alteração. message_quantity fica em llm_attendant e vale na hora (não é versionado).

Armadilhas

  • Resumo com gatilho baixo. O padrão de 4.000 tokens ao ligar pelo painel é baixo para agentes com prompt e tools grandes: o resumo roda quase toda resposta.
  • Detalhe perdido no resumo. Número de pedido, valor combinado, endereço: o que o agente precisa lembrar com exatidão deve ir para uma propriedade ou nota do lead (por tool), não depender do histórico.
  • Skill apagada pela limpeza. Config escrito pelo MCP sem load_skill em exclude_tools.
  • Resultado necessário apagado. Com Preservar os últimos baixo, o agente pode perder o resultado de uma consulta que ainda ia usar e chamar a tool de novo.
  • Esperar que o agente lembre de outra conversa. Depois de encerrar o atendimento, a memória começa do zero.

Para saber mais