A sophisticated multi-agent system with consensus mechanism using Google Gemini API, featuring real-time streaming, advanced security, comprehensive health monitoring, and robust error handling.
- Multi-Agent Conversations: Orchestrates multiple Gemini agents with different models/temperatures
- Intelligent Consensus Mechanism: LLM-powered synthesis that combines the best insights from all agents
- Real-time Streaming: WebSocket support for live conversation updates
- Memory Layer: Redis Streams for inter-agent communication + PostgreSQL for persistence
- Vector Search: Optional Qdrant integration for semantic search capabilities
- Complete Agent Responses: Full-length responses with expandable modal views
- Progress Tracking: Real-time status updates during agent processing
- API Key Authentication: Secure access control with configurable permissions
- Rate Limiting: Burst-aware rate limiting with per-client tracking
- JWT Token Support: Stateless authentication with configurable expiration
- Input Validation: Comprehensive sanitization and validation
- IP Blocking: Automatic blocking of malicious IPs
- CORS Configuration: Flexible cross-origin resource sharing settings
- Advanced Health Checks: Component-level monitoring with response times
- System Metrics: Real-time statistics for conversations, agents, and errors
- Circuit Breaker Pattern: Automatic fault tolerance for external services
- Error Tracking: Detailed error logging with contextual information
- Performance Monitoring: Response time tracking and bottleneck identification
- Retry Logic: Exponential backoff with jitter for failed operations
- Graceful Degradation: Fallback responses when services are unavailable
- Connection Pooling: Efficient resource management for databases
- Background Tasks: Automatic cleanup and maintenance operations
- Service Discovery: Health-aware service routing and load balancing
- Python 3.8+
- Google Gemini API key
- Redis 6.0+
- PostgreSQL 12+
- Qdrant (optional)
Configure different models per agent:
The PolyAgents frontend is a modern React application built with:
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Shadcn/ui for UI components
- React Query for state management
- WebSocket for real-time updates
- Real-time Chat Interface: Live conversation with multiple agents
- Agent Status Panel: Monitor agent activity and system health
- Conversation Management: Browse, search, and manage conversations
- Responsive Design: Works on desktop and mobile devices
- Dark Mode: Modern dark theme optimized for long sessions
- WebSocket Integration: Real-time updates for agent responses and status
- Expandable Agent Responses: Click to view complete agent responses in modal
- Progress Tracking: Real-time status updates during processing
The frontend uses environment variables for configuration:
- Components: Modular UI components in src/components/
- Pages: Route components in src/pages/
- Services: API and WebSocket services in src/services/
- Hooks: Custom React hooks in src/hooks/
- Types: TypeScript definitions in src/types/
All protected endpoints require an API key in the Authorization header:
Start a conversation with multiple agents.
Request:
Response:
Start a streaming conversation.
Response:
Connect to real-time conversation updates.
Messages:
Basic health check (no authentication required).
Response:
Comprehensive health check with component status.
Response:
Get recent conversations.
Query Parameters:
- limit: Number of conversations (default: 10)
Get conversation details and messages.
Search conversations by content.
Request:
Get comprehensive system statistics.
Response:
Clean up old data (requires admin permission).
Query Parameters:
- days: Retention period (default: 30)
Response:
Export conversation data (requires admin permission).
Query Parameters:
- format: Export format (json)
- days: Export period (default: 7)
- Configurable permissions: read, write, admin
- Per-key rate limiting overrides
- Automatic key rotation support
- Secure key generation utilities
- Token bucket algorithm with burst capacity
- Per-client tracking with Redis backend
- Configurable limits per endpoint
- IP-based blocking for abuse prevention
- Comprehensive sanitization of all inputs
- SQL injection prevention
- XSS protection
- File upload security (when applicable)
- Real-time security event logging
- Failed authentication tracking
- Rate limit violation alerts
- Suspicious activity detection
- Redis: Connection, memory usage, client count
- PostgreSQL: Connection, database size, active queries
- Qdrant: Collection status, vector count
- Gemini API: Model availability, quota status
- System Resources: Memory, disk space, CPU usage
- Healthy: All systems operational
- Degraded: Minor issues, partial functionality
- Unhealthy: Critical issues, service impacted
- Unknown: Unable to determine status
- Circuit breakers for external services
- Graceful degradation with fallback responses
- Automatic retry with exponential backoff
- Health-based load balancing
- Exponential backoff with jitter
- Configurable retry attempts and delays
- Smart exception classification
- Retry statistics and monitoring
- Automatic failure detection
- Configurable failure thresholds
- Half-open state for recovery testing
- Service-specific breaker instances
- Cached response fallbacks
- Minimal functionality modes
- User-friendly error messages
- Service availability indicators
- Response Time: P50, P95, P99 percentiles
- Error Rate: Errors per hour, success rate
- Throughput: Requests per second
- Resource Usage: Memory, CPU, connections
- Error classification and trending
- Stack trace collection
- Performance impact analysis
- Automated alerting thresholds
- Database query optimization
- Connection pool tuning
- Cache hit rate monitoring
- Resource bottleneck identification
- Connection pooling configuration
- Query optimization and indexing
- Read replicas for analytics
- Automated vacuum and statistics
- Memory usage optimization
- Persistence configuration
- Clustering for high availability
- Stream compaction policies
- Async/await best practices
- Connection reuse patterns
- Caching strategies
- Resource pool management
- Check database connection pool
- Monitor Redis memory usage
- Verify Gemini API quotas
- Review error logs for patterns
- Verify API key configuration
- Check rate limiting status
- Review CORS settings
- Validate JWT secret key
- Check Redis connectivity
- Verify firewall settings
- Monitor connection limits
- Review proxy configuration
Interactive API documentation is available at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Fork the repository
- Create a feature branch
- Implement changes with tests
- Update documentation
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting guide
- Review existing GitHub issues
- Create a new issue with detailed information
- Include logs and configuration details
Note: This is a development version. For production deployment, ensure proper security configurations, monitoring setup, and resource provisioning.
Un sistema multi-agente sofisticato con meccanismo di consenso utilizzando l'API Google Gemini, con streaming in tempo reale, sicurezza avanzata, monitoraggio completo della salute e gestione robusta degli errori.
- Conversazioni Multi-Agente: Orchestrazione di più agenti Gemini con modelli/temperature diversi
- Meccanismo di Consenso Intelligente: Sintesi basata su LLM che combina i migliori insight di tutti gli agenti
- Streaming in Tempo Reale: Supporto WebSocket per aggiornamenti live delle conversazioni
- Livello di Memoria: Redis Streams per comunicazione inter-agente + PostgreSQL per persistenza
- Ricerca Vettoriale: Integrazione opzionale Qdrant per capacità di ricerca semantica
- Risposte Complete degli Agenti: Risposte a lunghezza completa con viste modali espandibili
- Tracciamento del Progresso: Aggiornamenti di stato in tempo reale durante l'elaborazione degli agenti
- Autenticazione API Key: Controllo accessi sicuro con permessi configurabili
- Rate Limiting: Rate limiting con burst capacity e tracciamento per client
- Supporto JWT Token: Autenticazione stateless con scadenza configurabile
- Validazione Input: Sanitizzazione e validazione completa
- Blocco IP: Blocco automatico di IP malevoli
- Configurazione CORS: Impostazioni flessibili per condivisione risorse cross-origin
- Health Check Avanzati: Monitoraggio a livello di componente con tempi di risposta
- Metriche di Sistema: Statistiche in tempo reale per conversazioni, agenti ed errori
- Pattern Circuit Breaker: Tolleranza automatica ai guasti per servizi esterni
- Tracciamento Errori: Logging dettagliato degli errori con informazioni contestuali
- Monitoraggio Performance: Tracciamento tempi di risposta e identificazione colli di bottiglia
- Logica di Retry: Backoff esponenziale con jitter per operazioni fallite
- Degradazione Graceful: Risposte di fallback quando i servizi non sono disponibili
- Connection Pooling: Gestione efficiente delle risorse per i database
- Task in Background: Operazioni automatiche di pulizia e manutenzione
- Service Discovery: Routing e bilanciamento del carico basati sulla salute
- Python 3.8+
- Chiave API Google Gemini
- Redis 6.0+
- PostgreSQL 12+
- Qdrant (opzionale)
Configura modelli diversi per agente:
Il frontend PolyAgents è un'applicazione React moderna costruita con:
- React 18 con TypeScript
- Vite per sviluppo veloce e building
- Tailwind CSS per lo styling
- Shadcn/ui per i componenti UI
- React Query per la gestione dello stato
- WebSocket per aggiornamenti in tempo reale
- Interfaccia Chat in Tempo Reale: Conversazione live con più agenti
- Pannello Stato Agenti: Monitora attività degli agenti e salute del sistema
- Gestione Conversazioni: Sfoglia, cerca e gestisci conversazioni
- Design Responsive: Funziona su desktop e dispositivi mobili
- Modalità Scura: Tema scuro moderno ottimizzato per sessioni lunghe
- Integrazione WebSocket: Aggiornamenti in tempo reale per risposte e stato degli agenti
- Risposte Agenti Espandibili: Clicca per vedere risposte complete degli agenti in modal
- Tracciamento Progresso: Aggiornamenti di stato in tempo reale durante l'elaborazione
Il frontend usa variabili d'ambiente per la configurazione:
- Components: Componenti UI modulari in src/components/
- Pages: Componenti di routing in src/pages/
- Services: Servizi API e WebSocket in src/services/
- Hooks: Custom React hooks in src/hooks/
- Types: Definizioni TypeScript in src/types/
Tutti gli endpoint protetti richiedono una API key nell'header Authorization:
Avvia una conversazione con più agenti.
Request:
Response:
Avvia una conversazione in streaming.
Response:
Connetti per aggiornamenti conversazione in tempo reale.
Messaggi:
Health check base (non richiede autenticazione).
Response:
Health check completo con stato componenti.
Response:
Ottieni conversazioni recenti.
Query Parameters:
- limit: Numero conversazioni (default: 10)
Ottieni dettagli conversazione e messaggi.
Cerca conversazioni per contenuto.
Request:
Ottieni statistiche complete del sistema.
Response:
Pulisci dati vecchi (richiede permesso admin).
Query Parameters:
- days: Periodo di retention (default: 30)
Response:
Esporta dati conversazione (richiede permesso admin).
Query Parameters:
- format: Formato esportazione (json)
- days: Periodo esportazione (default: 7)
- Permessi configurabili: read, write, admin
- Override rate limiting per chiave
- Supporto rotazione automatica chiavi
- Utility generazione chiavi sicure
- Algoritmo token bucket con capacità burst
- Tracciamento per client con backend Redis
- Limiti configurabili per endpoint
- Blocco basato su IP per prevenzione abusi
- Sanitizzazione completa di tutti gli input
- Prevenzione SQL injection
- Protezione XSS
- Sicurezza upload file (quando applicabile)
- Logging eventi sicurezza in tempo reale
- Tracciamento autenticazioni fallite
- Alert violazioni rate limit
- Rilevamento attività sospette
- Redis: Connessione, uso memoria, numero client
- PostgreSQL: Connessione, dimensione database, query attive
- Qdrant: Stato collezione, numero vettori
- Gemini API: Disponibilità modelli, stato quota
- Risorse Sistema: Memoria, spazio disco, uso CPU
- Healthy: Tutti i sistemi operativi
- Degraded: Problemi minori, funzionalità parziale
- Unhealthy: Problemi critici, servizio impattato
- Unknown: Impossibile determinare stato
- Circuit breakers per servizi esterni
- Degradazione graceful con risposte fallback
- Retry automatico con backoff esponenziale
- Bilanciamento carico basato su salute
- Backoff esponenziale con jitter
- Tentativi retry e ritardi configurabili
- Classificazione intelligente eccezioni
- Statistiche retry e monitoraggio
- Rilevamento automatico fallimenti
- Soglie fallimento configurabili
- Stato half-open per test recupero
- Istanze breaker specifiche per servizio
- Risposte fallback in cache
- Modalità funzionalità minima
- Messaggi errore user-friendly
- Indicatori disponibilità servizio
- Tempo Risposta: Percentili P50, P95, P99
- Tasso Errore: Errori per ora, tasso successo
- Throughput: Richieste per secondo
- Uso Risorse: Memoria, CPU, connessioni
- Classificazione errori e trend
- Raccolta stack trace
- Analisi impatto performance
- Soglie alerting automatizzate
- Ottimizzazione query database
- Tuning connection pool
- Monitoraggio cache hit rate
- Identificazione colli di bottiglia risorse
- Configurazione connection pooling
- Ottimizzazione query e indici
- Replica read per analytics
- Automated vacuum and statistics
- Memory usage optimization
- Persistence configuration
- Clustering for high availability
- Stream compaction policies
- Async/await best practices
- Connection reuse patterns
- Caching strategies
- Resource pool management
- Check database connection pool
- Monitor Redis memory usage
- Verify Gemini API quotas
- Review error logs for patterns
- Verify API key configuration
- Check rate limiting status
- Review CORS settings
- Validate JWT secret key
- Check Redis connectivity
- Verify firewall settings
- Monitor connection limits
- Review proxy configuration
La documentazione API interattiva è disponibile su:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Fork del repository
- Crea un branch feature
- Implementa modifiche con test
- Aggiorna documentazione
- Invia pull request
Questo progetto è licenziato sotto MIT License - vedi il file LICENSE per dettagli.
Per problemi e domande:
- Controlla la guida troubleshooting
- Rivedi issue GitHub esistenti
- Crea una nuova issue con informazioni dettagliate
- Includi log e dettagli configurazione
Nota: Questa è una versione di sviluppo. Per deploy produzione, assicurati di configurazioni sicurezza appropriate, setup monitoraggio e provisioning risorse.
.png)

