// blog/posts/memoria-contextual-funciona.jsx
window.POST = {
  slug: "memoria-contextual-funciona",
  category: "Bastidores",
  title: "Como a memória contextual funciona de verdade (sem mágica)",
  dek: "Memória de agente não é truque de prompt nem IA 'que aprende'. Tem arquitetura, limites e decisões. Destrinchamos como a gente faz no Member AI.",
  cover: "https://images.unsplash.com/photo-1456428746267-a1756408f782?w=1600&q=85",
  date: "28 de março, 2026",
  readTime: "9 min",
  author: { name: "Alexandre Kuhn", role: "Co-fundador, Member AI", initials: "AK", avatar: "../assets/alexandre-kuhn.jpg" },
  toc: [
    { id: "dois-tipos", label: "Os dois tipos de memória" },
    { id: "curto-prazo", label: "Memória de curto prazo (janela)" },
    { id: "longo-prazo", label: "Memória de longo prazo (fatos)" },
    { id: "retrieval", label: "Como fazemos retrieval sem inflar prompt" },
    { id: "esquecer", label: "O que o agente deve esquecer" },
    { id: "controle-user", label: "Controle do member sobre a memória" },
  ],
  bodyHtml: `
<p>Quando alguém diz que um agente "lembra" do cliente, a maioria imagina uma IA mística que acumula tudo. Não é isso. Memória de agente é arquitetura — dois mecanismos distintos trabalhando juntos, cada um com função clara.</p>

<h2 id="dois-tipos">Os dois tipos de memória</h2>

<p>Todo agente sério tem:</p>

<ol>
  <li><strong>Memória de curto prazo (janela de contexto).</strong> O histórico dos últimos N turnos da conversa atual, enviado direto pro modelo em cada chamada.</li>
  <li><strong>Memória de longo prazo (fatos persistidos).</strong> Fatos específicos sobre o member salvos em banco, recuperados sob demanda em conversas futuras.</li>
</ol>

<p>Confundir os dois é a principal causa de agente que "esquece" ou "inventa".</p>

<h2 id="curto-prazo">Memória de curto prazo (janela)</h2>

<p>Todo modelo de linguagem tem um limite de contexto — gpt-4o-mini suporta 128k tokens, Claude Sonnet 200k. Parece muito, mas se você enfia o histórico bruto de uma conversa longa, o custo explode e a qualidade cai (o modelo perde atenção em contexto gigante).</p>

<p>No Member AI, a janela de curto prazo guarda os últimos 15 turnos <em>brutos</em> + um resumo dos 15 anteriores. A cada 30 turnos, o resumo é atualizado. Isso mantém o custo em níveis previsíveis sem o agente perder fio da conversa.</p>

<h2 id="longo-prazo">Memória de longo prazo (fatos)</h2>

<p>Aqui mora a mágica que não é mágica. Toda conversa que termina, o agente roda um processo em background que extrai <em>fatos estruturados</em> sobre o member:</p>

<ul>
  <li>"Carla é creator de educação financeira, foco em mulheres de 30-45";</li>
  <li>"Tem 12.300 seguidores no Instagram, 800 alunos na comunidade paga";</li>
  <li>"Bateu meta de Q1 2026 (40 novos clientes)";</li>
  <li>"Prefere responder em tom coloquial, sem formalismo";</li>
  <li>"Horário preferido pra call: terça/quinta, manhã".</li>
</ul>

<p>Esses fatos ficam num banco relacional por hub, com tags. Quando o member volta, o agente <em>não</em> carrega todos no prompt — faz retrieval só dos relevantes pro contexto atual.</p>

<h2 id="retrieval">Como fazemos retrieval sem inflar prompt</h2>

<p>A ingenuidade seria usar vector search com embeddings em tudo. Funciona, mas é caro e lento. A gente faz híbrido:</p>

<ol>
  <li><strong>Busca por tag</strong> no banco relacional — se a conversa mencionou "OKR" ou "planejamento", puxa fatos com tag "metas";</li>
  <li><strong>Vector search</strong> só em fatos de texto aberto que não têm tag clara;</li>
  <li><strong>Re-ranking</strong> por relevância temporal — fato recente pesa mais que fato antigo.</li>
</ol>

<p>No fim, entram no prompt do turno no máximo 8-12 fatos relevantes. Custo baixo, qualidade alta.</p>

<h2 id="esquecer">O que o agente deve esquecer</h2>

<p>Tão importante quanto lembrar é esquecer. A gente ativamente <em>não</em> guarda:</p>

<ul>
  <li>Senhas, dados de cartão, CPF/CNPJ sensíveis (mesmo que o member mande);</li>
  <li>Fatos contraditórios — quando um fato novo contradiz um antigo, o antigo é marcado como <em>superseded</em>;</li>
  <li>Fatos com mais de 18 meses sem uso, que são arquivados (recuperáveis, mas fora do retrieval default).</li>
</ul>

<h2 id="controle-user">Controle do member sobre a memória</h2>

<p>Princípio que a gente segue: <strong>o member dono do dado.</strong> No painel do hub, o creator ativa um comando no agente — o member pode dizer "o que você lembra sobre mim?" e o agente mostra a lista de fatos persistidos. Pode pedir pra esquecer qualquer item: o fato é apagado em tempo real.</p>

<blockquote>Memória sem controle é vigilância. Memória com controle é relação. A gente faz questão de que o member saiba que é relação.</blockquote>

<div class="post-inline-cta">
  <div class="post-inline-cta-body">
    <h4>Veja memória contextual rodando</h4>
    <p>14 dias grátis. Configure um agente, mande 3 conversas diferentes — na quarta você vê o agente puxar contexto.</p>
  </div>
  <a class="btn btn-primary" href="https://app.memberai.pro/signup" target="_blank" rel="noopener">
    Testar agora
    <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 7h10M8 3l4 4-4 4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" /></svg>
  </a>
</div>
  `,
  faq: [
    { q: "Memória e fine-tuning são a mesma coisa?", a: "Não. Fine-tuning altera o modelo em si (treinamento), memória guarda dados externos e reinjeta no contexto. Memória é reversível e não muda o modelo." },
    { q: "Vocês usam vector database?", a: "Sim, parcialmente. Pra fatos com tag clara, banco relacional. Pra fatos de texto aberto, vector search. Híbrido." },
    { q: "Dados de um hub vazam pra outro?", a: "Nunca. Segregação por hub é rígida — cada hub tem seu próprio escopo de memória, isolado." },
  ],
  related: [
    { slug: "agent-vs-chatbot", category: "Bastidores", title: "Agente ≠ chatbot", cover: "https://images.unsplash.com/photo-1485827404703-89b55fcc595e?w=800&q=80", readTime: "7 min" },
    { slug: "prompts-para-creators", category: "Tutoriais", title: "Prompts de sistema que funcionam", cover: "https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=800&q=80", readTime: "13 min" },
  ]
};
