Entrega do Desafio — Sistema de Moderação com LangGraph + Human in the Loop
Concluí um sistema de moderação de conteúdo assistido por IA usando LangGraph, com arquitetura de múltiplos agentes, persistência de estado e intervenção humana antes de ações críticas.
O que foi implementado
- Orquestração multiagente com nós especializados:
agente_analisadoragente_pesquisador_politicasagente_revisorexecutar_acao_final
- Estado compartilhado (
AgentState) para transportar análise, políticas, decisão e justificativa. - Arestas condicionais para desviar o fluxo quando não há violação e aprofundar quando há risco.
- Human in the Loop (HITL) com pausa via
interrupt_beforeantes da ação final. - Intervenção humana avançada (Etapa 3): o moderador pode não só aprovar/cancelar, mas editar justificativa e status no estado pausado com
graph.update_state(...). - Streaming do grafo para acompanhar o fluxo de eventos e facilitar depuração.
- Persistência com SQLite checkpoints para continuidade e rastreabilidade.
- Robustez adicional:
- tratamento de falhas da busca externa (Tavily) com registro em
erros_fluxo; reduce_messagespara substituir mensagens poridem vez de apenas anexar.
- tratamento de falhas da busca externa (Tavily) com registro em
- Visualização do grafo com utilitário para exportar Mermaid/PNG (
tools/export_graph.py).
Organização do projeto
main.py: execução CLI com pausa e intervenção humana.src/moderation_system/graph.py: definição do fluxo e regras de roteamento.src/moderation_system/state.py: tipagem e reducers do estado.tests/test_workflow.py: testes dos cenários das etapas 1, 2 e 3.README.md: setup, execução e exemplos.
Validação
- Testes automatizados executados com sucesso (4 passed).
- Fluxo validado em execução real com comentários problemáticos, confirmação/cancelamento humano e override manual de justificativa.
Aprendizados principais
Este projeto mostrou, na prática, que:
- HITL é essencial para segurança em decisões ambíguas.
- A separação por agentes deixa o sistema mais legível e fácil de evoluir.
- O streaming de eventos melhora muito a depuração do raciocínio do fluxo.
- A manipulação direta do AgentState permite intervenções humanas precisas e auditáveis.