responder
Sends a WhatsApp text message to a group or direct contact with human-paced delivery, review checks, and operator approval. Use it for first contact, replies, or multi-part messages.
Instructions
Envia uma mensagem de texto no WhatsApp — para um GRUPO (slug/nome/jid) ou um CONTATO em DM (dm-<55DDDnúmero>). PRIMEIRO CONTATO funciona: o número NÃO precisa estar em listar_contatos nem ter conversa anterior — passe dm-<55DDDnúmero> do jeito que o número veio (com ou sem o nono dígito) e o coletor confirma no WhatsApp qual é a conta antes de enviar. Se o retorno trouxer jid_corrigido_de, use o slug_correto dali em diante; número fora do WhatsApp é recusado com motivo, nada sai. Primeiro contato SEMPRE passa pelo OK do operador no texto, mesmo se outros chats rodam em modo autônomo (conduta na skill comunicacao-cliente). VOZ: carregue a skill de voz do operador (voz-do-operador ou a preenchida desta máquina) ANTES de redigir — ela define grafia, registro e a camada de venda do operador, medidos no texto real dele. Depois comunicacao-cliente (conduta: o que responder, três modos, erro sem se rebaixar, urgencia). CONFIRMAÇÃO: cada chat tem um modo (definir_modo). No modo 'confirmar' (DEFAULT), você DEVE ter mostrado o texto e recebido OK do operador antes de chamar. No modo 'autonomo', pode enviar direto. O retorno traz o modo do chat. (Isto é convenção que você respeita, não trava de código — não burle o 'confirmar'.) BALÕES: por default o texto é fatiado em até 3 balões (parágrafos em branco = quebras explícitas suas). Use um_balao: true quando a mensagem deve chegar INTEIRA num balão só — texto coeso/técnico (changelog, lista, instruções passo a passo), ou quando o operador pedir 'manda numa mensagem só'. Quando VOCÊ já decidiu a quebra (4, 5 balões…), passe baloes (lista, um item = um balão, até 8) em UMA chamada — NUNCA chame responder várias vezes pra simular balões: cada chamada é uma entrega separada com visto/digitando. Conversa curta e informal fica melhor em balões. REVISÃO: antes de enviar, o texto passa por revisão (repetição contra as últimas mensagens do chat, dois-pontos e tells, auto-incriminação, desculpa). Recusa devolve hits e sugestões; reescreva e chame de novo. Chame preparar_resposta ANTES de redigir. ENTREGA: devolve um TICKET na hora; a mensagem sai depois com latência humana (segundos numa conversa ativa, minutos a horas numa fria), visto antes do digitando, digitação na velocidade do operador. Novo responder no mesmo chat SUBSTITUI o ticket anterior. Acompanhe com status_envio; cancelar_envio cancela. Se o plantão avisar 'Entrega interrompida', releia o chat e responda de novo.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"grupo": "<grupo>"
},
"name": "responder"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| citar | No | id da mensagem recebida a responder (reply): o 1º balão sai citando ela | |
| grupo | Yes | slug do grupo (o mesmo de ler_mensagens/listar_grupos), nome exato, `dm-<55DDDnúmero>` pra DM (vale pra número novo, sem conversa anterior), OU um jid (grupo @g.us / DM '<numero>@s.whatsapp.net'). Slug é o jeito mais seguro. | |
| texto | No | mensagem a enviar (obrigatório se não passar `baloes`) | |
| baloes | No | balões já decididos por você, na ordem (um item = um balão). Substitui `texto`/`um_balao`; tudo sai numa entrega humanizada só. | |
| revisao | No | 'ignorar' pula APENAS o score de estilo (nunca bloqueios de tratamento/culpa). Só quando o operador aprovou o texto exatamente assim e a revisão recusou. | |
| aguardar | No | true = segura a chamada até a entrega terminar (comportamento antigo; Esc cancela). Default false: devolve o ticket na hora. | |
| um_balao | No | true = envia o texto INTEIRO num único balão (sem fatiar), mantendo a entrega humanizada (visto/digitando). Default false = quebra em até 3 balões. | |
| urgencia | No | 'agora' = cliente esperando um ok (só a janela de 5 s); 'normal' (default) = latência humana pelo estado da conversa; 'calma' = update sem pressa (força o regime frio: minutos a horas). | |
| candidatos | No | 2 ou 3 versões alternativas da MESMA resposta (cada uma = lista de balões). O código revisa todas e envia só a que menos destoa do operador. Exclusivo com texto/baloes. Use quando a mensagem for mais que um 'ok'. | |
| operador_pediu | No | true SÓ quando o operador pediu, nesta conversa, este envio pra este chat. Libera a trava do autônomo de quando ele respondeu pelo celular (`operador_assumiu`); nunca a de 'é IA?' (`perguntou_ia`). Nunca use por conta própria pra contornar a trava. | |
| tempo_humano_s | No | quanto uma PESSOA levaria entre ler a mensagem e mandar ESTA resposta: 'blz' = segundos; responder depois de pensar = 1-3 min; corrigir um bug e subir = 15-30 min. Pese o clima: cliente insistente ou grosso, estime menos. O código aplica só uma fração (teto de 4 min) e desconta o tempo que você já gastou trabalhando; assistir/ler a mídia do cliente já entra sozinho. Não atrasa o seu trabalho, só a entrega. |