Mapa de configuração dos agentes
Mapa de Configuração — Todos os Agentes Luana (PROD)
Guia mestre pra configurar os 5 AI Agents no Respond.io. Use como checklist: cada coluna = um campo do form do agent.
1. Visão geral dos 5 agentes
| Agent | Instâncias | Trigger (Workflow) | Modelo | KBs | Tools |
|---|---|---|---|---|---|
| Recepcionista | 1 só (multi-canal via kb-instrucoes) |
Mensagem nova SEM agendamento ativo | GPT-4o-mini | Dinâmica por canal (10+ KBs) | 6 tools |
| Pré-Consulta | 1 | Tag id:agendamento-pendente |
GPT-4o-mini | 6 KBs | 2 tools |
| Pós-Consulta NPS | 1 | Tag id:avaliacao-pos-consulta |
GPT-4o-mini | 0 KBs | 0 tools |
| Financeiro | 1 | Keyword "NF/nota" OU id:dados-pendentes-nf |
GPT-4o-mini | 4 KBs | 1 tool |
| Laudo | 1 | Keyword "laudo/resultado" OU id:laudo-disponivel |
GPT-4o-mini | 3 KBs | 1 tool |
Total: 5 agents, não 1 por estado. A Recepcionista se adapta automaticamente porque o kb-instrucoes recebe o channel_id (Minas=489695, SP=480178, Campinas, Sorocaba, JF, ES, Recife, Salvador, Maceió, Maringá) e devolve prompt + saudação + KBs específicas daquela cidade.
2. Recepcionista — diferenças por canal (estado)
A Recepcionista é 1 agente no Respond.io. O que muda é a edge function kb-instrucoes que injeta dinamicamente:
| Bloco do prompt | Origem |
|---|---|
| Saudação inicial | unidades.cidade.nome + cidades_vinculadas (banco) |
| Lista de unidades atendidas | unidades filtrado por channel_id |
| Cidades próximas (raio 60km) | cidades_proximas_unidade (SP/MG) |
| Endereço, telefone, estacionamento, sábado | respond-io-contexto-unidade (tool) |
| KBs anexadas | Sempre todas: anti-padroes, fluxos-novos, fluxos-casos, fora-escopo, fechamento-cadencia, preparos, reagendamento, tags-saida + a regional (MG ou SP_INTERIOR) |
| KB regional | KB_MINAS_GERAIS para canal Minas, KB_SAO_PAULO_INTERIOR para SP/Campinas/Sorocaba/JF/ES/Recife/Salvador/Maceió/Maringá |
Conclusão: você NÃO precisa criar 9 agentes. Cria 1 Recepcionista e o backend faz o trabalho pesado.
⚠️ Falta documentar: as KBs específicas de ES, Recife, Salvador, Maceió, Maringá ainda não existem como .md separadas — elas herdam SP_INTERIOR. Se houver regras locais (endereços, horários especiais), me avisa pra criar KB_ESPIRITO_SANTO.md etc.
3. Mapa de KBs (URLs canônicas)
Base: https://dsubsrhcpbegrkmobbya.supabase.co/functions/v1/kb-respondio-html/<slug>
| Slug | Conteúdo | Usado por |
|---|---|---|
minas-gerais |
Unidades + serviços + regras MG | Recepcionista (canal MG) |
sao-paulo-interior |
Unidades + regras SP/Campinas/etc | Recepcionista (canais SP+) |
anti-padroes |
O que NÃO fazer | Todos |
fluxos-novos |
Cadência operacional | Recepcionista, Pré |
fluxos-casos |
Cenários edge | Recepcionista |
fora-escopo |
Quando recusar | Todos |
fechamento-cadencia |
Quando fechar conversa | Todos |
tags-saida |
Catálogo oficial de tags | Todos |
preparos |
Preparo por exame | Recepcionista, Pré |
reagendamento |
Política reagendar | Pré, Recepcionista |
laudos |
Política laudos | Laudo, Pré |
nota-fiscal |
Política NF | Financeiro |
reembolso |
Política reembolso | Financeiro |
enmg-1-membro |
Caso especial | Recepcionista |
excecoes-operacionais |
Exceções por unidade | Recepcionista |
Ver lista completa em runtime: abra https://dsubsrhcpbegrkmobbya.supabase.co/functions/v1/kb-respondio-html/ (página índice).
4. Mapa de Tools HTTP
Base: https://dsubsrhcpbegrkmobbya.supabase.co/functions/v1/<nome>
| Tool | Método | Body | Usado por | Status |
|---|---|---|---|---|
respond-io-contexto-unidade |
POST | {unidade_id} |
Recepcionista | ✅ existe |
respond-io-horarios |
POST | {unidade_id, servico_nome, data} |
Recepcionista | ✅ existe |
respond-io-criar-agendamento |
POST | {...} |
Recepcionista | ✅ existe |
respond-io-buscar-paciente |
POST | {telefone} |
Todos | ✅ existe |
respond-io-consultar-meu-agendamento |
POST | {telefone} |
Pré | ✅ existe |
respond-io-confirmar-agendamento |
POST | {agendamento_id} |
Pré | ✅ existe |
respond-io-consultar-nf |
POST | {telefone} ou {cpf} |
Financeiro | ❌ falta criar |
respond-io-consultar-laudo |
POST | {telefone} ou {cpf} |
Laudo | ❌ falta criar |
Headers padrão em todas:
Content-Type: application/json
apikey: <SUPABASE_ANON_KEY>
5. Catálogo oficial de TAGS
Tags com prefixo id: (disparam workflow)
| Tag | Quando | Quem dispara |
|---|---|---|
id:agendamento-pendente |
24h antes da consulta | Cron |
id:agendamento-confirmado-respond |
Após confirmação na API | Tool Pré |
id:avaliacao-pos-consulta |
2h após status=compareceu | Cron |
id:dados-pendentes-nf |
Paciente pagou sem NF | Sistema/Financeiro |
id:laudo-disponivel |
Laudo liberado no portal | Sistema |
id:cobranca-pendente |
Pagamento em atraso | Cron |
Tags de status (informativas)
Confirmado, Cancelado, SemResposta, JaConfirmado, NpsEnviado, NfEntregue, LaudoEntregue, LaudoEmAnalise
Tags de handoff (encaminhamento)
PedidoHumano, AgendamentoParaHumano, Financeiro, Medico, Laudo, Reembolso, Reclamacao
Tags de mídia
AudioRecebido, AnexoRecebido
Tag especial Respond.io
!Finalizarconversa → força status CLOSED imediato
6. Critérios de fechamento padrão (todos agents)
Fechar (!Finalizarconversa) quando:
- Objetivo do agent cumprido (confirmou, mandou link, etc.)
- 90 min sem resposta do paciente
- Paciente envia mensagem de despedida ("obrigado", "tchau", "valeu")
- Erro irrecuperável → encaminhou pra humano
NÃO fechar (deixar PENDING para humano) quando:
- Tag
PedidoHumanoadicionada sem!Finalizarconversa - Paciente pediu reagendar/falar com alguém
- Áudio/anexo recebido
7. Critérios de mudança de ciclo de vida
NEW → OPEN: bot ou humano assume
OPEN → PENDING: tag PedidoHumano (sem !Finalizarconversa)
OPEN → CLOSED: !Finalizarconversa
PENDING → OPEN: humano responde
PENDING → CLOSED: humano marca resolvido
CLOSED → NEW: paciente envia nova mensagem (reabertura)
Janela de reabertura: 24h (configurável no Respond.io Settings → Conversations).
8. Critérios de encaminhamento (handoff matrix)
| Situação | Tag(s) | Vai pra |
|---|---|---|
| Quer reagendar | AgendamentoParaHumano |
Time agendamento |
| Pergunta sobre laudo (no recep/pré) | PedidoHumano + Laudo |
Equipe laudos |
| Pergunta sobre NF (no recep/pré) | PedidoHumano + Financeiro |
Financeiro |
| Reembolso | PedidoHumano + Reembolso |
Financeiro |
| Pergunta clínica | PedidoHumano + Medico |
Médico/enfermagem |
| Reclamação | PedidoHumano + Reclamacao |
Supervisão |
| Áudio | AudioRecebido + PedidoHumano |
Atendente geral |
| Palavra "humano" | PedidoHumano |
Atendente geral |
No Workflow do Respond.io, configure route by tag para mandar pra time certo.
9. Modelo de Workflow no Respond.io (visual)
[ Trigger: Nova mensagem ]
↓
[ Condição: tem agendamento ativo? ]
├── Sim → [ AI Agent: Pré-Consulta ]
└── Não → [ Condição: keyword? ]
├── "laudo/resultado" → [ AI Agent: Laudo ]
├── "NF/nota/boleto" → [ AI Agent: Financeiro ]
└── outro → [ AI Agent: Recepcionista ]
[ Trigger: Tag id:avaliacao-pos-consulta ]
↓
[ AI Agent: Pós-Consulta NPS ]
10. Checklist de configuração no Respond.io
Pra cada um dos 5 agentes, preencha:
- Nome: Luana <Função>
- Objective: copie da seção 1 do prompt
- Instructions: cole o prompt completo (arquivo
.mdcorrespondente) - Knowledge Sources: URLs da seção 2 do prompt
- Tools: HTTP requests da seção 3 do prompt (configure cada uma como "Custom API tool")
- Closing criteria: copie seção 4
- Handoff criteria: copie seção 5
- Out-of-scope: copie regras invioláveis
Depois, no Workflow Builder:
- Criar trigger correto (mensagem nova / tag / keyword)
- Conectar ao AI Agent certo
- Configurar rotas de saída por tag
- Testar com conversa real antes de ativar
11. O que ainda falta implementar (do meu lado)
- ❌ Edge function
respond-io-consultar-nf(Financeiro depende) - ❌ Edge function
respond-io-consultar-laudo(Laudo depende) - ❌ Cron que adiciona
id:avaliacao-pos-consulta2h após compareceu (se ainda não existe) - ❌ Cron que adiciona
id:agendamento-pendente24h antes (validar se já roda) - ❌ KBs regionais separadas para ES, Recife, Salvador, Maceió, Maringá (se houver regras locais)
Me confirma quais quer que eu implemente primeiro.