Aprovação humana antes de agir
O agente prepara a ação, o fluxo pausa de verdade e só executa depois que uma pessoa aprova. O padrão obrigatório para qualquer coisa que envia, cobra ou apaga.
Atualizado em 01 de set. de 2026
Agente que manda e-mail, emite nota, cancela pedido ou libera desconto não pode agir sozinho enquanto você não confia nele. Este fluxo é a trava: o modelo prepara o que vai acontecer, mostra para a pessoa e para.
A pausa é real — o run encerra no estado de espera e retoma na mensagem seguinte do mesmo thread, sem manter conexão aberta.
Como importar
Na plataforma: Agents → Importar, escolha o arquivo baixado. Ele entra como um rascunho novo (nada existente é alterado), com ids de observabilidade renovados. Depois preencha o que é do seu ambiente — credenciais, URLs e bases de conhecimento — e publique.
{
"format": "hinow.agent",
"version": 1,
"exported_at": "2026-09-01T00:00:00Z",
"credentials_included": false,
"agent": {
"name": "Aprovação humana antes de agir",
"description": "O agente prepara a ação, o fluxo PAUSA para uma pessoa aprovar e só então executa.",
"avatar": null,
"model": "hinow/hicode",
"system_prompt": null,
"config": {},
"tools": null,
"workflow": {
"nodes": [
{
"id": "start",
"type": "start",
"position": {
"x": 300,
"y": 0
},
"data": {
"label": "Início",
"variables": []
}
},
{
"id": "agent-prep",
"type": "agent",
"position": {
"x": 285,
"y": 150
},
"data": {
"name": "redator",
"model": "hinow/hicode",
"system_prompt": "Com base no pedido do usuário, redija uma mensagem/e-mail curto e profissional pronto para envio. Apresente o texto claramente.",
"config": {}
}
},
{
"id": "appr-1",
"type": "user_approval",
"position": {
"x": 275,
"y": 310
},
"data": {
"name": "Aprovar envio",
"approval_message": "Posso confirmar o envio do texto acima? (Aprovar/Rejeitar)",
"approval_options": [
"Aprovar",
"Rejeitar"
]
}
},
{
"id": "agent-envia",
"type": "agent",
"position": {
"x": 100,
"y": 480
},
"data": {
"name": "confirmador",
"model": "hinow/hicode",
"system_prompt": "O usuário APROVOU. Confirme que a mensagem foi registrada para envio (simulação de exemplo — diga claramente que é um exemplo didático) e mostre o texto final.",
"config": {}
}
},
{
"id": "agent-cancela",
"type": "agent",
"position": {
"x": 460,
"y": 480
},
"data": {
"name": "cancelador",
"model": "hinow/hicode",
"system_prompt": "O usuário REJEITOU. Cancele com elegância e pergunte o que ajustar no texto.",
"config": {}
}
},
{
"id": "end-1",
"type": "end",
"position": {
"x": 305,
"y": 650
},
"data": {
"label": "Fim"
}
}
],
"edges": [
{
"id": "e-start-agent-prep-d",
"source": "start",
"target": "agent-prep"
},
{
"id": "e-agent-prep-appr-1-d",
"source": "agent-prep",
"target": "appr-1"
},
{
"id": "e-appr-1-agent-envia-approved",
"source": "appr-1",
"target": "agent-envia",
"sourceHandle": "approved"
},
{
"id": "e-appr-1-agent-cancela-rejected",
"source": "appr-1",
"target": "agent-cancela",
"sourceHandle": "rejected"
},
{
"id": "e-agent-envia-end-1-d",
"source": "agent-envia",
"target": "end-1"
},
{
"id": "e-agent-cancela-end-1-d",
"source": "agent-cancela",
"target": "end-1"
}
]
}
}
}| Card | Por que está aqui | O que faz |
|---|---|---|
**Agent redator** | Separar preparar de executar. | Produz o artefato (o e-mail, a mensagem, o texto da ação) e o apresenta ao usuário. Não tem poder de enviar nada. |
| **Aprovação do Usuário** | É a trava. | Emite a pergunta (approval_message) com as opções e **pausa o fluxo**. A resposta do usuário decide a saída. |
**Agent confirmador** (saída approved) | O caminho do "sim". | É aqui que a ação de verdade acontece — no exemplo é simulada; no seu caso, é este agente que ganha o card Webhook que envia. |
**Agent cancelador** (saída rejected) | O caminho do "não" bem tratado. | Cancela com elegância e pergunta o que ajustar — o "não" vira a próxima iteração, não um beco sem saída. |
A regra de ouro
A ferramenta que executa (o Webhook que envia, cobra ou apaga) deve estar conectada só ao agente do caminho aprovado. Se ela estiver no slot do redator, o modelo pode chamá-la antes da aprovação — e a trava vira decoração. Use o tools_filter do Agent para garantir.
- Ação real: conecte um Webhook no slot do
confirmadorcom a rota que envia/emite/cancela. - Mais opções que sim/não:
approval_optionsaceita a lista que você quiser (Aprovar,Editar,Rejeitar) — cada uma vira uma saída para tratar. - Quem aprova não é quem conversa: dispare a notificação para o aprovador pelo seu sistema (um Webhook antes da pausa) e deixe a resposta voltar pelo mesmo thread.
Todos os fluxos prontos
Outros agents completos para importar e adaptar.

