Conteúdo detalhado
📝 Pilar 1 — Instruções (system prompt)
O system prompt é a constituição do agente. Define quem ele é, como fala, o que pode e o que nunca faz. É o pilar mais barato de ajustar e o que resolve 90% dos problemas de qualidade.
# Identidade Você é Sofia, corretora digital da Imobiliária Vivenda. Tom: profissional, empático, direto. Português brasileiro. # Missão Ajudar o cliente a encontrar imóvel e agendar visita. # Regras invioláveis - Nunca dê preço sem consultar a tool buscar_imoveis. - Nunca prometa desconto. - Sempre confirme número de pessoas antes de agendar visita. # Ferramentas disponíveis - buscar_imoveis, detalhar_imovel, listar_slots, agendar_visita # Formato de resposta - Até 3 frases por mensagem - Use bullets quando listar opções (máx 3 itens)
💡 Dica
Modelos prestam mais atenção no começo e no fim do prompt. Coloque identidade e missão no topo; regras críticas e formato no rodapé. O meio é onde a atenção mais cai.
📚 Pilar 2 — Conhecimento
O LLM sabe muito sobre o mundo e nada sobre seu negócio. Conhecimento é como você preenche essa lacuna: FAQs, páginas de produto, políticas, CSVs, base interna.
✓ Boas fontes
- ✓FAQ curado pelo time de suporte
- ✓Política oficial (devolução, garantia)
- ✓Catálogo estruturado (CSV/SQL)
- ✓Documentação técnica recente
✗ Fontes ruins
- ✗Site institucional cheio de marketing
- ✗PDFs digitalizados (OCR ruim)
- ✗"Tudo do Confluence" sem filtro
- ✗Versão antiga da política
🔬 Lembre
Quantidade de conteúdo não é qualidade. 50 FAQs limpas batem 5 mil páginas de site marketês. Curato sempre que possível.
🔧 Pilar 3 — Ferramentas
Tools são o que separa conversa de produto. Cada tool é uma capacidade atômica: buscar_imoveis(), agendar_visita(), enviar_whatsapp(). O modelo decide qual chamar com base no contexto.
Atômica
Uma tool = uma ação. Não crie fazer_tudo(). Crie tools pequenas e componíveis.
Descrita
Description é o que o modelo lê para decidir chamar. Escreva como se fosse para outro humano programador.
Tipada
Schema JSON com required fields. O modelo respeita o contrato; sem schema, ele inventa parâmetros.
Idempotente quando der
Chamar 2x deve ter o mesmo efeito de chamar 1x. Evita duplicar agendamento por retry.
❓ Pilar 4 — Intents não resolvidos
Toda vez que o bot diz "não sei" ou escala para humano, ele está gritando: "Aqui falta uma feature." Intents não resolvidos são o roadmap mais honesto que seu produto vai ter.
🔄 Ciclo virtuoso
- Bot acionou fallback → log estruturado
- Clusteriza por similaridade semântica
- Cluster com volume alto → entra no backlog
- Decisão: nova tool ou novo conteúdo na base
- Mede % de fallback no cluster: cai → ok; sobe → revisar
💡 Dica de produto
Se 30% das dúvidas batem em "aceita Pix?", a feature óbvia não é uma FAQ — é uma tool verificar_meios_de_pagamento() que devolve a lista atual, mesmo quando muda.
⚙️ Pilar 5 — Settings
Settings são as alavancas operacionais: que modelo usar, quanto contexto, qual o teto de custo, quais custom fields entram no prompt. Settings ruins fazem agente bom parecer ruim — e custar caro.
gpt-4o, claude-sonnet, gemini-flash. Depende da tarefa.
0.0–0.3 para suporte/jurídico, 0.5–0.7 para criativo.
Cap por resposta. Evita verbosidade cara.
{{nome}}, {{cidade}}, {{lead_score}} — contexto vivo.
🧩 Como os pilares conversam
Ver os 5 pilares isolados é fácil. O segredo está em ver como eles orquestram em cada turno. Sem visão integrada, você "conserta" um pilar quando o erro está em outro.
[Settings] modelo=claude-sonnet, temp=0.2, custom_fields={nome:"Marina",lead_score:87}
↓
[Prompt] System + custom fields aplicados
↓
[Mensagem do usuário] "Tem 2 quartos na Vila Mariana?"
↓
[Reasoning] Preciso de dado dinâmico → chamar buscar_imoveis
↓
[Tool] buscar_imoveis(cidade="SP", bairro="Vila Mariana", quartos=2)
↓
[Knowledge] Política de visitas consultada via RAG
↓
[Resposta] "Marina, achei 3 opções. Quer ver os detalhes?"
↓
[Log] Intent="busca_imovel" resolved=true
🐞 Debug por camada
Resposta ruim? Pergunte na ordem: 1) custom fields chegaram certos? 2) tool foi escolhida certa? 3) tool retornou dado certo? 4) prompt tem regra que cobre o caso? 5) modelo é forte o suficiente? Diagnosticar na camada errada = perder horas.
📌 Resumo do módulo
Próximo módulo:
1.3 — 🔁 Loop ReAct: ouvir, pensar, agir