Pular para o conteúdo principal

🔍 Zumbi dos Palmares - Agente Investigador

Status: ✅ 100% Operacional (Produção)

Implementado em src/agents/zumbi.py (842 linhas) com 96% de cobertura de testes. Herda de ReflectiveAgent com quality threshold 0.8 e max 3 reflection iterations. Produção desde outubro/2025 via Railway.

📋 Visão Geral

O agente Zumbi dos Palmares é o investigador principal do sistema, especializado em detectar anomalias, irregularidades e padrões suspeitos em contratos e despesas públicas. Inspirado no líder quilombola símbolo de resistência, este agente combate irregularidades com técnicas estatísticas avançadas.

🎯 Capacidades Principais

1. Detecção de Anomalias de Preço 📊

# Configuração padrão
PRICE_ANOMALY_THRESHOLD = 2.5 # desvios padrão
  • Análise estatística com Z-score
  • Comparação com médias históricas
  • Identificação de sobrepreço e subpreço
  • Taxa de detecção: 87%

2. Análise de Concentração de Fornecedores 🏢

# Trigger de alerta
CONCENTRATION_THRESHOLD = 0.7 # 70% dos contratos
  • Detecção de monopólios
  • Análise de competitividade
  • Identificação de cartéis
  • Métricas de diversidade

3. Análise Espectral (FFT) 🌊

# Detecção de padrões periódicos
MIN_FREQUENCY_PEAK = 0.3 # amplitude mínima
  • Transformada de Fourier para séries temporais
  • Detecção de sazonalidades artificiais
  • Identificação de padrões cíclicos suspeitos
  • Análise de frequências dominantes

4. Detecção de Contratos Duplicados 👥

# Similaridade para duplicatas
SIMILARITY_THRESHOLD = 0.85 # 85% de similaridade
  • Análise de similaridade textual
  • Detecção de fracionamento
  • Identificação de contratos repetidos
  • Validação cruzada de fornecedores

5. Padrões Temporais

  • Concentração em fim de exercício
  • Velocidade anormal de execução
  • Gaps temporais suspeitos
  • Análise de urgência injustificada

💻 Implementação Técnica

Estrutura da Classe

class InvestigatorAgent(ReflectiveAgent):
def __init__(self):
super().__init__(
agent_id="zumbi",
name="Zumbi dos Palmares",
description="Investigador especializado em anomalias",
capabilities=[
"anomaly_detection",
"pattern_analysis",
"fraud_detection",
"spectral_analysis",
"temporal_patterns"
]
)

Exemplo de Uso Completo

from src.agents.zumbi import InvestigatorAgent
from src.agents.deodoro import AgentMessage, AgentContext

# Inicializar agente
zumbi = InvestigatorAgent()

# Preparar investigação
message = AgentMessage(
content={
"type": "investigate_contracts",
"data": {
"contracts": [...], # Lista de contratos
"filters": {
"year": 2024,
"min_value": 100000,
"organ": "Ministry of Health"
}
}
},
sender="abaporu",
context=AgentContext(
investigation_id="INV-2024-001"
)
)

# Executar investigação
response = await zumbi.process(message)

# Estrutura da resposta
{
"status": "completed",
"anomalies_found": 15,
"risk_score": 0.78,
"findings": {
"price_anomalies": [
{
"contract_id": "CTR-123",
"z_score": 3.2,
"expected_value": 50000,
"actual_value": 150000,
"overpricing_percentage": 200
}
],
"vendor_concentration": {
"vendor_id": "VNDR-456",
"concentration": 0.82,
"contracts_count": 45,
"total_value": 5000000
},
"temporal_patterns": [
{
"pattern": "end_of_year_spike",
"confidence": 0.91,
"affected_contracts": 23
}
],
"spectral_analysis": {
"dominant_frequency": 0.25, # Quarterly pattern
"amplitude": 0.75,
"interpretation": "Artificial quarterly spending"
}
},
"recommendations": [
"Investigate vendor VNDR-456 for possible cartel",
"Review Q4 contracts for urgency justification",
"Audit pricing methodology for overpriced items"
],
"confidence": 0.89
}

📊 Métricas de Performance

Indicadores de Qualidade

MétricaValor AtualMetaStatus
Cobertura de Testes96%>90%✅ Tier 1
Taxa de Detecção87%>85%
Falsos Positivos4.2%<5%
Tempo de Resposta (p95)1.8s<2s
Precisão91%>90%
Reflection Threshold0.8-⚙️ Auto-melhoria
Max Iterations3-⚙️ Quality control

Benchmarks de Performance

VolumeContratosTempo MédioTempo p95
Pequeno100~0.3s~0.5s
Médio1,000~1.2s~1.8s
Grande10,000~8.5s~12s
Extra Grande100,000~85s~120s

Otimizações Aplicadas:

  • ⚡ Processamento paralelo (4 workers)
  • 💾 Cache multi-layer (Redis + Memory)
  • 🔄 Batch processing (1000 registros/lote)
  • 📊 Lazy loading de dependências

🔧 Configuração Avançada

Variáveis de Ambiente

# Performance
ZUMBI_BATCH_SIZE=1000 # Tamanho do lote
ZUMBI_MAX_WORKERS=4 # Workers paralelos
ZUMBI_CACHE_TTL=3600 # Cache em segundos

# Sensibilidade
ZUMBI_ZSCORE_THRESHOLD=2.5 # Threshold Z-score
ZUMBI_CONCENTRATION_THRESHOLD=0.7 # Concentração máxima
ZUMBI_SIMILARITY_THRESHOLD=0.85 # Similaridade duplicatas

Ajuste Fino de Parâmetros

# Customização por contexto
custom_config = {
"emergency_contracts": {
"zscore_threshold": 3.0, # Menos sensível
"temporal_analysis": False
},
"high_risk_organs": {
"zscore_threshold": 2.0, # Mais sensível
"enable_all_checks": True
}
}

🧪 Testes e Validação

Suite de Testes

# Executar todos os testes
pytest tests/unit/test_agents/test_zumbi.py -v

# Testes específicos
pytest -k "test_detect_price_anomalies"
pytest -k "test_spectral_analysis"
pytest -k "test_vendor_concentration"

# Com cobertura detalhada
pytest tests/unit/test_agents/test_zumbi.py \
--cov=src.agents.zumbi \
--cov-report=html

Casos de Teste Principais

  1. ✅ Detecção de sobrepreço extremo
  2. ✅ Identificação de cartéis
  3. ✅ Análise de padrões temporais
  4. ✅ FFT em séries temporais
  5. ✅ Contratos duplicados
  6. ✅ Auto-reflexão em baixa qualidade

🔄 Integração no Sistema

Fluxo de Dados

Comunicação Inter-Agente

# Mensagem de entrada (de Abaporu)
{
"action": "investigate",
"priority": "high",
"scope": "full_analysis",
"context": {
"investigation_id": "INV-001",
"requester": "user_123"
}
}

# Mensagem de saída (para Anita)
{
"action": "analyze_patterns",
"anomalies": [...],
"priority": "high",
"next_agent": "anita"
}

🚀 Melhorias Futuras

Em Desenvolvimento

  • 🔄 Machine Learning para detecção adaptativa
  • 🔄 Análise de grafos para relações complexas
  • 🔄 NLP avançado para descrições de contratos

Backlog

  • 📋 Integração com blockchain para auditoria
  • 📋 Análise preditiva de riscos
  • 📋 Dashboard em tempo real
  • 📋 API para ferramentas externas

🐛 Limitações Conhecidas

  1. Volume de Dados

    • Performance degrada acima de 100k registros
    • Solução: Implementar processamento em streaming
  2. Contratos Emergenciais

    • Maior taxa de falsos positivos
    • Solução: Contexto específico para emergências
  3. Dados Históricos

    • Requer mínimo de 12 meses para análise temporal
    • Solução: Fallback para análise cross-sectional

🏗️ Herança e Arquitetura

Relação com Deodoro

Zumbi herda de ReflectiveAgent (definido em src/agents/deodoro.py):

class InvestigatorAgent(ReflectiveAgent):
"""
Herda capacidades de auto-reflexão do Deodoro.

Funcionalidades herdadas:
- Quality threshold: 0.8 (80% de confiança mínima)
- Max reflection loops: 3 (até 3 iterações de melhoria)
- Retry logic com exponential backoff
- State management (IDLE → THINKING → ACTING → COMPLETED)
- Prometheus metrics integration
- Structured logging
"""

Benefícios da Herança:

  • ✅ Auto-reflexão quando confiança < 0.8
  • ✅ Retry automático em falhas (max 3 tentativas)
  • ✅ Métricas Prometheus automáticas
  • ✅ Logging estruturado de eventos
  • ✅ Lifecycle management (initialize/shutdown)

Padrão ReAct (Reasoning + Acting):

  1. 🧠 Reason: Analisa dados e detecta anomalias
  2. 🎯 Act: Executa investigação e gera relatório
  3. 🔄 Reflect: Avalia qualidade do resultado
  4. ♻️ Retry: Se qualidade < 0.8, melhora e tenta novamente

Integração no Sistema Multi-Agente

Zumbi trabalha em colaboração com outros agentes:

📚 Referências e Recursos

Documentação Relacionada

Cultural

  • Zumbi dos Palmares (1655-1695) - Líder do Quilombo dos Palmares
  • Resistência: Símbolo da luta contra opressão e injustiça
  • Legado: Inspiração para combate à corrupção e defesa do bem público

Técnicas

  • FFT (Fast Fourier Transform): Análise espectral de séries temporais
  • Z-Score Analysis: Detecção estatística de outliers
  • Similarity Matching: Algoritmos de similaridade textual
  • Temporal Pattern Recognition: Análise de padrões ao longo do tempo

Anterior: 🏛️ Deodoro - Base Framework ← Próximo: 📊 Anita Garibaldi - Analyst Agent →


Última Atualização: 2025-01-22 Status: ✅ Tier 1 - 96% Coverage Autor: Anderson Henrique da Silva

💡 Destaque: Zumbi é o agente Tier 1 com maior cobertura de testes (96%) e um dos mais completos do sistema! ⚔️