# πŸ—οΈ Arquitetura - CidadΓ£o.AI Backend **Autor**: Anderson Henrique da Silva **Última AtualizaΓ§Γ£o**: 2025-09-25 18:15:00 -03:00 (SΓ£o Paulo, Brasil) [English version below](#-architecture---cidadΓ£oai-backend-english) ## πŸ“Š VisΓ£o Geral O CidadΓ£o.AI Γ© um sistema multi-agente de IA para anΓ‘lise de transparΓͺncia governamental brasileira, construΓ­do com arquitetura modular e escalΓ‘vel. ## 🧠 Sistema Multi-Agente ### Hierarquia de Agentes ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ UsuΓ‘rio / Frontend β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ API Gateway (FastAPI) β”‚ β”‚ Rate Limiting | Auth | CORS β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🏎️ Ayrton Senna (Router) β”‚ β”‚ DetecΓ§Γ£o de IntenΓ§Γ£o | Roteamento β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🎯 Abaporu (Master) β”‚ β”‚ Agentes Diretos β”‚ β”‚ OrquestraΓ§Γ£o Complexa β”‚ β”‚ (Para tarefas simples) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Pool de Agentes β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ πŸ” Zumbi β”‚ πŸ“Š Anita β”‚ πŸ“ Tiradentes β”‚ 🧠 NanΓ£ β”‚ β”‚ Anomalias β”‚ PadrΓ΅es β”‚ RelatΓ³rios β”‚ MemΓ³ria β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ βš–οΈ BonifΓ‘cio β”‚ πŸ“š Machado β”‚ πŸ›‘οΈ Dandara β”‚ 🌍 LampiΓ£o β”‚ β”‚ PolΓ­ticas β”‚ Textos β”‚ JustiΓ§a β”‚ Regional β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Classes Base 1. **BaseAgent** - Retry logic com backoff exponencial - Monitoramento integrado (Prometheus) - Lifecycle management - Error handling 2. **ReflectiveAgent** - Auto-reflexΓ£o com threshold de qualidade (0.8) - MΓ‘ximo 3 iteraΓ§Γ΅es de melhoria - Self-improvement loop ### Estados dos Agentes ```python class AgentState(Enum): IDLE = "idle" THINKING = "thinking" ACTING = "acting" WAITING = "waiting" ERROR = "error" COMPLETED = "completed" ``` ## πŸ’Ύ EstratΓ©gia de Cache ### Multi-Layer Cache ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Request β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ L1: Memory β”‚ ← 5ms latency β”‚ (LRU Cache) β”‚ TTL: 5 min β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό miss β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ L2: Redis β”‚ ← 20ms latency β”‚ (Distributed) β”‚ TTL: 1 hour β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό miss β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ L3: Database β”‚ ← 100ms latency β”‚ (PostgreSQL) β”‚ TTL: 24 hours β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Cache Keys Strategy ``` chat:session:{session_id}:messages investigation:{id}:results agent:{agent_name}:state portal:contracts:{org_code}:{page} ``` ## πŸš€ OtimizaΓ§Γ΅es de Performance ### 1. Agent Pool - PrΓ©-inicializaΓ§Γ£o de instΓ’ncias - Warm-up automΓ‘tico - Lifecycle management - Health checks ### 2. Parallel Processing ```python # EstratΓ©gias disponΓ­veis - SEQUENTIAL: ExecuΓ§Γ£o em ordem - PARALLEL: Todos ao mesmo tempo - ADAPTIVE: Baseado em dependΓͺncias - PRIORITY: Por prioridade ``` ### 3. JSON Optimization - orjson para serializaΓ§Γ£o 3x mais rΓ‘pida - Streaming responses - Compression (Brotli/Gzip) ## πŸ“Š AnΓ‘lise Espectral (FFT) ### DetecΓ§Γ£o de PadrΓ΅es PeriΓ³dicos ```python # Pipeline de anΓ‘lise 1. Preprocessamento dos dados 2. AplicaΓ§Γ£o de FFT/RFFT 3. DetecΓ§Γ£o de picos no domΓ­nio da frequΓͺncia 4. ClassificaΓ§Γ£o de componentes sazonais 5. CΓ‘lculo de entropia espectral ``` ### Thresholds de Anomalia - **PreΓ§o**: 2.5 desvios padrΓ£o - **ConcentraΓ§Γ£o de fornecedor**: > 70% - **Contratos duplicados**: > 85% similaridade - **FrequΓͺncia anΓ΄mala**: > 3 desvios no espectro ## πŸ”’ SeguranΓ§a ### AutenticaΓ§Γ£o e AutorizaΓ§Γ£o ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Client │────▢│ JWT Auth │────▢│ API β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Rate Limit β”‚ β”‚ by Tier β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Rate Limiting Tiers ```python RATE_LIMIT_TIERS = { "anonymous": "10/minute", "authenticated": "60/minute", "premium": "300/minute", "admin": "unlimited" } ``` ## πŸ“ˆ Monitoramento ### MΓ©tricas Prometheus ```python # MΓ©tricas de agentes agent_task_duration_seconds agent_task_total agent_errors_total agent_reflection_iterations # MΓ©tricas de API http_request_duration_seconds http_requests_total active_websocket_connections # MΓ©tricas de cache cache_hits_total cache_misses_total cache_hit_rate ``` ### Dashboards Grafana 1. **System Overview**: VisΓ£o geral do sistema 2. **Agent Performance**: Performance por agente 3. **API Metrics**: LatΓͺncia e throughput 4. **Cache Analytics**: Hit rate e eficiΓͺncia ## 🌐 IntegraΓ§Γ£o Portal da TransparΓͺncia ### Endpoints Funcionais (22%) ``` /contracts β†’ GET com codigoOrgao obrigatΓ³rio /servants β†’ GET por CPF apenas /agencies β†’ GET informaΓ§Γ΅es de Γ³rgΓ£os ``` ### LimitaΓ§Γ΅es Descobertas - 78% dos endpoints retornam 403 Forbidden - Sem documentaΓ§Γ£o oficial sobre nΓ­veis de acesso - Dados de salΓ‘rio nΓ£o disponΓ­veis ## πŸ”„ Fluxo de Dados ``` 1. Request β†’ API Gateway 2. Auth/Rate Limit Check 3. Intent Detection (Senna) 4. Cache Check (L1 β†’ L2 β†’ L3) 5. Agent Selection/Orchestration 6. External API Calls (if needed) 7. Result Processing 8. Cache Update 9. Response β†’ Client ``` --- # πŸ—οΈ Architecture - CidadΓ£o.AI Backend (English) **Author**: Anderson Henrique da Silva **Last Updated**: 2025-09-25 18:15:00 -03:00 (SΓ£o Paulo, Brazil) ## πŸ“Š Overview CidadΓ£o.AI is a multi-agent AI system for Brazilian government transparency analysis, built with modular and scalable architecture. ## 🧠 Multi-Agent System ### Agent Hierarchy [Same diagram as above] ### Base Classes 1. **BaseAgent** - Retry logic with exponential backoff - Integrated monitoring (Prometheus) - Lifecycle management - Error handling 2. **ReflectiveAgent** - Self-reflection with quality threshold (0.8) - Maximum 3 improvement iterations - Self-improvement loop ### Agent States [Same states as above] ## πŸ’Ύ Cache Strategy ### Multi-Layer Cache [Same diagram as above] ### Cache Keys Strategy [Same keys as above] ## πŸš€ Performance Optimizations ### 1. Agent Pool - Pre-initialized instances - Automatic warm-up - Lifecycle management - Health checks ### 2. Parallel Processing [Same strategies as above] ### 3. JSON Optimization - orjson for 3x faster serialization - Streaming responses - Compression (Brotli/Gzip) ## πŸ“Š Spectral Analysis (FFT) ### Periodic Pattern Detection [Same pipeline as above] ### Anomaly Thresholds - **Price**: 2.5 standard deviations - **Supplier concentration**: > 70% - **Duplicate contracts**: > 85% similarity - **Anomalous frequency**: > 3 deviations in spectrum ## πŸ”’ Security ### Authentication and Authorization [Same diagram as above] ### Rate Limiting Tiers [Same tiers as above] ## πŸ“ˆ Monitoring ### Prometheus Metrics [Same metrics as above] ### Grafana Dashboards 1. **System Overview**: System overview 2. **Agent Performance**: Performance by agent 3. **API Metrics**: Latency and throughput 4. **Cache Analytics**: Hit rate and efficiency ## 🌐 Portal da TransparΓͺncia Integration ### Functional Endpoints (22%) [Same endpoints as above] ### Discovered Limitations - 78% of endpoints return 403 Forbidden - No official documentation about access levels - Salary data not available ## πŸ”„ Data Flow [Same flow as above]