Pular para o conteúdo

Gerenciamento HITL para Flows

O CrewAI Enterprise oferece um sistema abrangente de gerenciamento Human-in-the-Loop (HITL) para Flows que transforma fluxos de trabalho de IA em processos colaborativos humano-IA. A plataforma usa uma arquitetura email-first que permite que qualquer pessoa com um endereço de email responda a solicitações de revisão—sem necessidade de conta na plataforma.

Design Email-First

Respondentes podem responder diretamente aos emails de notificação para fornecer feedback

Roteamento Flexível

Direcione solicitações para emails específicos com base em padrões de método ou estado do flow

Resposta Automática

Configure respostas automáticas de fallback quando nenhum humano responder a tempo

  • Modelo mental simples: Endereços de email são universais; não é necessário gerenciar usuários ou funções da plataforma
  • Respondentes externos: Qualquer pessoa com email pode responder, mesmo não sendo usuário da plataforma
  • Atribuição dinâmica: Obtenha o email do responsável diretamente do estado do flow (ex: sales_rep_email)
  • Configuração reduzida: Menos configurações para definir, tempo mais rápido para gerar valor
  • Email como canal principal: A maioria dos usuários prefere responder via email do que fazer login em um dashboard

Configure checkpoints de revisão humana em seus Flows usando o decorador @human_feedback. Quando a execução atinge um ponto de revisão, o sistema pausa, notifica o responsável via email e aguarda uma resposta.

from crewai.flow.flow import Flow, start, listen, or_
from crewai.flow.human_feedback import human_feedback, HumanFeedbackResult
class ContentApprovalFlow(Flow):
@start()
def generate_content(self):
return "Texto de marketing gerado para campanha Q1..."
@human_feedback(
message="Por favor, revise este conteúdo para conformidade com a marca:",
emit=["approved", "rejected", "needs_revision"],
)
@listen(or_("generate_content", "needs_revision"))
def review_content(self):
return "Texto de marketing para revisão..."
@listen("approved")
def publish_content(self, result: HumanFeedbackResult):
print(f"Publicando conteúdo aprovado. Notas do revisor: {result.feedback}")
@listen("rejected")
def archive_content(self, result: HumanFeedbackResult):
print(f"Conteúdo rejeitado. Motivo: {result.feedback}")

Para detalhes completos de implementação, consulte o guia Feedback Humano em Flows.

ParâmetroTipoDescrição
messagestrA mensagem exibida para o revisor humano
emitlist[str]Opções de resposta válidas (exibidas como botões na UI)

Acesse a configuração HITL em: DeploymentSettingsHuman in the Loop Configuration

Configurações HITL

Toggle para ativar ou desativar notificações por email para solicitações HITL.

ConfiguraçãoPadrãoDescrição
Notificações por EmailAtivadoEnviar emails quando feedback for solicitado

Defina um tempo de resposta alvo para fins de rastreamento e métricas.

ConfiguraçãoDescrição
Meta de SLA (minutos)Tempo de resposta alvo. Usado para métricas do dashboard e rastreamento de SLA

Deixe vazio para desativar o rastreamento de SLA.

O sistema HITL usa uma arquitetura email-first onde os respondentes podem responder diretamente aos emails de notificação.

  1. Notificação Enviada

    Quando uma solicitação HITL é criada, um email é enviado ao respondente atribuído com o conteúdo e contexto da revisão.

  2. Endereço Reply-To

    O email inclui um endereço reply-to especial com um token assinado para autenticação.

  3. Usuário Responde

    O respondente simplesmente responde ao email com seu feedback—nenhum login necessário.

  4. Validação do Token

    A plataforma recebe a resposta, verifica o token assinado e corresponde o email do remetente.

  5. Flow Continua

    O feedback é registrado e o flow continua com a entrada humana.

Respondentes podem responder com:

  • Opção emit: Se a resposta corresponder a uma opção emit (ex: “approved”), ela é usada diretamente
  • Texto livre: Qualquer resposta de texto é passada para o flow como feedback
  • Texto simples: A primeira linha do corpo da resposta é usada como feedback

Após processar uma resposta, o respondente recebe um email de confirmação indicando se o feedback foi enviado com sucesso ou se ocorreu um erro.

  • Tokens são assinados criptograficamente para segurança
  • Tokens expiram após 7 dias
  • Email do remetente deve corresponder ao email autorizado do token
  • Emails de confirmação/erro são enviados após o processamento

Direcione solicitações HITL para endereços de email específicos com base em padrões de método.

Configuração de Regras de Roteamento HITL
{
"name": "Aprovações para Financeiro",
"match": {
"method_name": "approve_*"
},
"assign_to_email": "[email protected]",
"assign_from_input": "manager_email"
}
PadrãoDescriçãoExemplo de Correspondência
approve_*Wildcard (qualquer caractere)approve_payment, approve_vendor
review_?Caractere únicoreview_a, review_1
validate_paymentCorrespondência exataapenas validate_payment
  1. Atribuição dinâmica (assign_from_input): Se configurado, obtém email do estado do flow
  2. Email estático (assign_to_email): Fallback para email configurado
  3. Criador do deployment: Se nenhuma regra corresponder, o email do criador do deployment é usado

Se seu estado do flow contém {"sales_rep_email": "[email protected]"}, configure:

{
"name": "Direcionar para Representante de Vendas",
"match": {
"method_name": "review_*"
},
"assign_from_input": "sales_rep_email"
}

A solicitação será atribuída automaticamente para [email protected].

Responda automaticamente a solicitações HITL se nenhum humano responder dentro do timeout. Isso garante que os flows não fiquem travados indefinidamente.

ConfiguraçãoDescrição
AtivadoToggle para ativar resposta automática
Timeout (minutos)Tempo de espera antes de responder automaticamente
Resultado PadrãoO valor da resposta (deve corresponder a uma opção emit)
Configuração de Resposta Automática HITL
  • Conformidade com SLA: Garante que flows não fiquem travados indefinidamente
  • Aprovação padrão: Aprove automaticamente solicitações de baixo risco após timeout
  • Degradação graciosa: Continue com um padrão seguro quando revisores não estiverem disponíveis

A interface de revisão HITL oferece uma experiência limpa e focada para revisores:

  • Renderização Markdown: Formatação rica para conteúdo de revisão com destaque de sintaxe
  • Painel de Contexto: Visualize estado do flow, histórico de execução e informações relacionadas
  • Entrada de Feedback: Forneça feedback detalhado e comentários com sua decisão
  • Ações Rápidas: Botões de opção emit com um clique com comentários opcionais
Lista de Solicitações HITL Pendentes

Revisores podem responder por três canais:

MétodoDescrição
Resposta por EmailResponda diretamente ao email de notificação
DashboardUse a UI do dashboard Enterprise
API/WebhookResposta programática via API

Toda interação HITL é rastreada com uma linha do tempo completa:

  • Histórico de decisões (aprovar/rejeitar/revisar)
  • Identidade do revisor e timestamp
  • Feedback e comentários fornecidos
  • Método de resposta (email/dashboard/API)
  • Métricas de tempo de resposta

Acompanhe o desempenho HITL com análises abrangentes.

Dashboard de Métricas HITL

Tempos de Resposta

Monitore tempos de resposta médios e medianos por revisor ou flow.

Tendências de Volume

Analise padrões de volume de revisão para otimizar capacidade da equipe.

Distribuição de Decisões

Visualize taxas de aprovação/rejeição em diferentes tipos de revisão.

Rastreamento de SLA

Acompanhe a porcentagem de revisões concluídas dentro das metas de SLA.

Capacidades de auditoria prontas para empresas para requisitos regulatórios:

  • Histórico completo de decisões com timestamps
  • Verificação de identidade do revisor
  • Logs de auditoria imutáveis
  • Capacidades de exportação para relatórios de conformidade
Revisões de Segurança

Caso de Uso: Automação de questionários de segurança internos com validação humana

  • IA gera respostas para questionários de segurança
  • Equipe de segurança revisa e valida precisão via email
  • Respostas aprovadas são compiladas na submissão final
  • Trilha de auditoria completa para conformidade
Aprovação de Conteúdo

Caso de Uso: Conteúdo de marketing que requer revisão legal/marca

  • IA gera texto de marketing ou conteúdo de mídia social
  • Roteie para email da equipe de marca para revisão de voz/tom
  • Publicação automática após aprovação
Aprovações Financeiras

Caso de Uso: Relatórios de despesas, termos de contrato, alocações de orçamento

  • IA pré-processa e categoriza solicitações financeiras
  • Roteie com base em limites de valor usando atribuição dinâmica
  • Mantenha trilha de auditoria completa para conformidade financeira
Atribuição Dinâmica do CRM

Caso de Uso: Direcione revisões para proprietários de conta do seu CRM

  • Flow obtém email do proprietário da conta do CRM
  • Armazene email no estado do flow (ex: account_owner_email)
  • Use assign_from_input para direcionar automaticamente para a pessoa certa
Garantia de Qualidade

Caso de Uso: Validação de saída de IA antes da entrega ao cliente

  • IA gera conteúdo ou respostas voltadas ao cliente
  • Equipe de QA revisa via notificação por email
  • Loops de feedback melhoram desempenho da IA ao longo do tempo

Quando seus Flows pausam para feedback humano, você pode configurar webhooks para enviar dados da solicitação para sua própria aplicação. Isso permite:

  • Construir UIs de aprovação personalizadas
  • Integrar com ferramentas internas (Jira, ServiceNow, dashboards personalizados)
  • Rotear aprovações para sistemas de terceiros
  • Notificações em apps mobile
  • Sistemas de decisão automatizados
Configuração de Webhook HITL
  1. Navegue até Configurações

    Vá para DeploymentSettingsHuman in the Loop

  2. Expanda a Seção Webhooks

    Clique para expandir a configuração de Webhooks

  3. Adicione sua URL de Webhook

    Digite sua URL de webhook (deve ser HTTPS em produção)

  4. Salve a Configuração

    Clique em Salvar Configuração para ativar

Você pode configurar múltiplos webhooks. Cada webhook ativo recebe todos os eventos HITL.

Seu endpoint receberá requisições HTTP POST para estes eventos:

Tipo de EventoQuando é Disparado
new_requestUm flow pausa e solicita feedback humano

Todos os webhooks recebem um payload JSON com esta estrutura:

{
"event": "new_request",
"request": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"flow_id": "flow_abc123",
"method_name": "review_article",
"message": "Por favor, revise este artigo para publicação.",
"emit_options": ["approved", "rejected", "request_changes"],
"state": {
"article_id": 12345,
"author": "[email protected]",
"category": "technology"
},
"metadata": {},
"created_at": "2026-01-14T12:00:00Z"
},
"deployment": {
"id": 456,
"name": "Content Review Flow",
"organization_id": 789
},
"callback_url": "https://api.crewai.com/...",
"assigned_to_email": "[email protected]"
}

Para enviar feedback, faça POST para a callback_url incluída no payload do webhook.

POST {callback_url}
Content-Type: application/json
{
"feedback": "Aprovado. Ótimo artigo!",
"source": "my_custom_app"
}
  • Assinaturas HMAC-SHA256: Todo webhook inclui uma assinatura criptográfica
  • Secrets por webhook: Cada webhook tem seu próprio secret de assinatura único
  • Criptografado em repouso: Os secrets de assinatura são criptografados no nosso banco de dados
  • Verificação de timestamp: Previne ataques de replay

Cada requisição de webhook inclui estes headers:

HeaderDescrição
X-SignatureAssinatura HMAC-SHA256: sha256=<hex_digest>
X-TimestampTimestamp Unix de quando a requisição foi assinada

Verifique computando:

import hmac
import hashlib
expected = hmac.new(
signing_secret.encode(),
f"{timestamp}.{payload}".encode(),
hashlib.sha256
).hexdigest()
if hmac.compare_digest(expected, signature):
# Assinatura válida

Seu endpoint de webhook deve retornar um código de status 2xx para confirmar o recebimento:

Sua RespostaNosso Comportamento
2xxWebhook entregue com sucesso
4xx/5xxRegistrado como falha, sem retry
Timeout (30s)Registrado como falha, sem retry

O acesso HITL é controlado no nível do deployment:

PermissãoCapacidade
manage_human_feedbackConfigurar settings HITL, ver todas as solicitações
respond_to_human_feedbackResponder a solicitações, ver solicitações atribuídas

Para respostas por email:

  1. O token reply-to codifica o email autorizado
  2. Email do remetente deve corresponder ao email do token
  3. Token não deve estar expirado (padrão 7 dias)
  4. Solicitação ainda deve estar pendente

Todas as ações HITL são registradas:

  • Criação de solicitação
  • Mudanças de atribuição
  • Submissão de resposta (com fonte: dashboard/email/API)
  • Status de retomada do flow
  1. Verifique se “Notificações por Email” está ativado na configuração
  2. Verifique se as regras de roteamento correspondem ao nome do método
  3. Verifique se o email do responsável é válido
  4. Verifique o fallback do criador do deployment se nenhuma regra de roteamento corresponder
  1. Verifique se o token não expirou (padrão 7 dias)
  2. Verifique se o email do remetente corresponde ao email atribuído
  3. Garanta que a solicitação ainda está pendente (não respondida ainda)
  1. Verifique o status da solicitação no dashboard
  2. Verifique se a URL de callback está acessível
  3. Garanta que o deployment ainda está rodando
  1. Use Atribuição Dinâmica: Obtenha emails de responsáveis do seu estado do flow para roteamento flexível.

  2. Configure Resposta Automática: Defina um fallback para revisões não críticas para evitar que flows fiquem travados.

  3. Monitore Tempos de Resposta: Use análises para identificar gargalos e otimizar seu processo de revisão.

  4. Mantenha Mensagens de Revisão Claras: Escreva mensagens claras e acionáveis no decorador @human_feedback.

  5. Teste o Fluxo de Email: Envie solicitações de teste para verificar a entrega de email antes de ir para produção.