Agent Loop - Próximos Passos Implementados
✅ Implementação Completa
1. Preencher decision_log_id ao fechar outcomes
Arquivo: sql/18_agent_loop_backfill_outcomes.sql
Procedure: sp_ctx_backfill_outcome_decision_log_id
Uso:
-- Backfill manual
CALL csuite_context.sp_ctx_backfill_outcome_decision_log_id(0, 30, 1000);
-- Via API
POST /api/executive/backfill-outcomes
{
"org_id": 0,
"days_back": 30,
"limit": 1000
}
Funcionalidade:
- Preenche decision_log_id em outcomes existentes
- Faz match via policy_code + entity_type + entity_ref
- Busca decisões dentro de 7 dias antes do action_taken_at
2. Monitorar health queries regularmente
Arquivo: scripts/agent_loop_health_monitor.py
Cron Job: A cada 6 horas
Funcionalidade:
- Consulta vw_agent_loop_health_summary
- Gera alertas para status CRITICAL/WARNING
- Loga resultados em logs/agent_loop_health.log
- Exit code 1 se houver alertas (para integração com alerting)
Uso Manual:
python3 scripts/agent_loop_health_monitor.py
Output:
- ✅ Sistema saudável (exit 0)
- ⚠️ Alertas detectados (exit 1)
3. Configurar alertas baseados em health_status
Endpoints API:
GET /api/executive/health-summary
Retorna resumo de saúde do Agent Loop
Response:
{
"status": "success",
"data": [
{
"org_id": 0,
"missing_snapshots": 0,
"snapshots_without_execution": 2,
"executions_without_outcome": 0,
"total_gaps": 2,
"health_status": "WARNING"
}
],
"timestamp": "2024-01-01T12:00:00"
}
GET /api/executive/health-details
Retorna detalhes completos de saúde
Response:
{
"status": "success",
"data": {
"missing_snapshots": [...],
"snapshots_without_execution": [...],
"executions_without_outcome": [...],
"outcome_collisions": [...]
},
"timestamp": "2024-01-01T12:00:00"
}
Integração com Alerting:
# Exemplo: Integrar com sistema de alertas
if python3 scripts/agent_loop_health_monitor.py; then
echo "Sistema saudável"
else
# Enviar alerta (email, Slack, etc.)
send_alert "Agent Loop com problemas detectados"
fi
4. Usar health summary para auditoria executiva
Dashboard Integration:
Os endpoints podem ser integrados ao Policy Radar Executivo:
// Exemplo de uso no frontend
fetch('/api/executive/health-summary')
.then(res => res.json())
.then(data => {
// Exibir status de saúde
data.data.forEach(org => {
if (org.health_status === 'CRITICAL') {
showAlert(`Org ${org.org_id}: ${org.total_gaps} gaps críticos`);
}
});
});
Queries Úteis:
-- Health summary por org
SELECT * FROM csuite_context.vw_agent_loop_health_summary;
-- Detalhes de gaps
SELECT * FROM csuite_context.vw_health_missing_snapshots;
SELECT * FROM csuite_context.vw_health_snapshot_without_execution;
SELECT * FROM csuite_context.vw_health_execution_without_outcome;
-- Colisões de outcomes
SELECT * FROM csuite_context.vw_health_outcome_collisions
ORDER BY outcomes_count DESC
LIMIT 20;
📋 Cron Jobs Configurados
- Detection Job: A cada hora
scripts/agent_loop_detection_job.py-
Log:
logs/agent_loop_detection.log -
Memory Feed: Diário às 03:00
scripts/agent_loop_memory_feed_cron.py-
Log:
logs/agent_loop_memory_feed.log -
Policy Decay Detection: Semanal (Quarta 06:30)
scripts/agent_loop_decay_detection_cron.py-
Log:
logs/agent_loop_decay_detection.log -
Health Monitor: A cada 6 horas
scripts/agent_loop_health_monitor.py- Log:
logs/agent_loop_health.log
🎯 Próximos Passos (Opcionais)
- Dashboard de Health: Criar UI dedicada para visualizar health summary
- Alertas Automáticos: Integrar health monitor com sistema de notificações
- Métricas Históricas: Armazenar histórico de health checks para análise de tendências
- Auto-repair: Implementar correções automáticas para gaps simples
📊 Status Atual
- ✅ Backfill de outcomes implementado
- ✅ Health monitor implementado e configurado
- ✅ Endpoints API criados
- ✅ Cron jobs configurados
- ✅ Documentação completa
Sistema pronto para monitoramento e auditoria!