Sistema inteligente de debate entre torcedores do Flamengo e Fluminense usando 4 agentes independentes que se comunicam via protocolo A2A (Agent-to-Agent) implementando padrões do Google ADK.
Este projeto implementa um sistema de debate automatizado entre Flamengo e Fluminense, onde 4 agentes especializados rodam como servidores A2A independentes e interagem de forma autônoma para criar debates dinâmicos e informativos.
- ⚖️ Supervisor Agent (Port 8002): Coordena o debate de forma completamente neutra, gerencia turnos e analisa o vencedor baseado em critérios técnicos de retórica e persuasão
- 🔴 Flamengo Agent (Port 8003): Defende o Flamengo com paixão, usando dados e argumentos convincentes
- 🟢 Fluminense Agent (Port 8004): Argumenta com elegância sobre a tradição e superioridade tricolor
- 📊 Researcher Agent (Port 8005): Fornece dados objetivos e neutros para embasar os argumentos dos torcedores
- Google ADK: Padrões oficiais do Agent Development Kit
- Protocolo A2A v1.0: Comunicação Agent-to-Agent com agent cards
- Google Gemini 2.0 Flash: LLM para processamento de linguagem natural
- Streamlit: Interface web interativa moderna
- Python 3.8+: Backend do sistema com asyncio
- UV: Gerenciamento de dependências
- HTTP/JSON: Comunicação entre agentes via REST APIs
- Inicialização: Supervisor questiona duração do debate
- Configuração: Tempo dividido igualmente (50% cada time)
- Sorteio: Sistema define qual time inicia (geralmente Flamengo)
- Debate: Agentes alternam argumentos com protocolo A2A
- Pesquisa: Pesquisador fornece dados quando solicitado
- Análise: Supervisor analisa e declara vencedor
- Chat em Tempo Real: Visualização das mensagens dos agentes
- Bastidores: Status em tempo real de cada agente
- Timer: Cronômetro com tempo restante do debate
- Log A2A: Registro das comunicações entre agentes
- Exportação: Download da transcrição completa
- Design Responsivo: Interface moderna com gradientes e animações
# Python 3.8+
# UV package manager
# Google API Key (Gemini)# 1. Clone o repositório
git clone https://github.com/seu-usuario/FlaFludeAgentes.git
cd FlaFludeAgentes
# 2. Instale dependências com UV
uv sync
# 3. Inicie os servidores A2A (em um terminal)
uv run python start_a2a_servers.py
# 4. Execute a aplicação Streamlit (em outro terminal)
uv run streamlit run app.py- Abra http://localhost:8501 no navegador
- Configure sua Google API Key na interface
- Clique em "Inicializar Sistema" para descobrir agentes A2A
- Configure duração do debate (2-10 minutos)
- Clique em "Iniciar Debate"
- Acompanhe o debate em tempo real
- Veja a análise final do supervisor
Os agentes rodam como servidores independentes:
# Iniciar agentes individualmente (opcional)
uv run python -m supervisor_agent.agent # Port 8002
uv run python -m flamengo_agent.agent # Port 8003
uv run python -m fluminense_agent.agent # Port 8004
uv run python -m researcher_agent.agent # Port 8005Cada agente expõe seu Agent Card A2A:
- http://localhost:8002/.well-known/agent.json (Supervisor)
- http://localhost:8003/.well-known/agent.json (Flamengo)
- http://localhost:8004/.well-known/agent.json (Fluminense)
- http://localhost:8005/.well-known/agent.json (Researcher)
O sistema implementa comunicação Agent-to-Agent seguindo padrões JSON-RPC 2.0:
{
"jsonrpc": "2.0",
"id": "a2a_1234567890_flamengo_researcher",
"method": "conduct_research",
"params": {
"query": "Flamengo vs Fluminense recent titles comparison",
"requesting_agent": "flamengo_agent"
},
"from_agent": "flamengo_agent",
"to_agent": "researcher_agent",
"timestamp": "2024-01-01T12:00:00Z",
"protocol": "A2A-v1.0"
}- Agent Discovery: Descoberta automática via Agent Cards
- Message Routing: Roteamento HTTP entre agentes
- State Sync: Sincronização de estado do debate
- Health Checks: Monitoramento em tempo real
- Logging: Registro completo de comunicações A2A
- Retórica: Análise da força argumentativa
- Psicologia: Impacto persuasivo das mensagens
- Linguística: Qualidade da comunicação
- Lógica: Consistência e coerência dos argumentos
- Paixão: Argumentos emocionais intensos
- Dados: Estatísticas de títulos e torcida
- Provocação: Inteligência nas provocações
- Superioridade: Foco em conquistas recentes
- Elegância: Argumentação refinada e culta
- Tradição: História centenária do clube
- Técnica: Futebol-arte e qualidade
- Classe: Postura digna e respeitosa
- Neutralidade: Imparcialidade absoluta
- Dados: Estatísticas verificáveis
- Fontes: CBF, CONMEBOL, Datafolha
- Rapidez: Respostas ágeis às solicitações
FlaFludeAgentes/
├── 🤖 supervisor_agent/
│ ├── __init__.py
│ └── agent.py # SupervisorAgent - Moderador neutro
├── 🤖 flamengo_agent/
│ ├── __init__.py
│ └── agent.py # FlamengoAgent - Torcedor rubro-negro
├── 🤖 fluminense_agent/
│ ├── __init__.py
│ └── agent.py # FluminenseAgent - Torcedor tricolor
├── 🤖 researcher_agent/
│ ├── __init__.py
│ └── agent.py # ResearcherAgent - Pesquisador neutro
├── 🚀 start_a2a_servers.py # Inicia todos os servidores A2A
├── 📱 app.py # Interface Streamlit principal
├── 🛠️ utils/
│ ├── __init__.py
│ ├── enhanced_logger.py # Sistema de logging avançado
│ └── log_viewer.py # Visualizador de logs
├── 📊 logs/ # Logs do sistema A2A
├── 📋 prompts.py # Prompts de referência
├── ⚙️ pyproject.toml # Dependências UV
├── 📖 CLAUDE.md # Instruções para Claude Code
└── 📄 README.md # Documentação
O supervisor analisa debates usando:
-
Força dos Argumentos (40%)
- Lógica e coerência
- Estrutura argumentativa
- Base factual
-
Evidências e Dados (30%)
- Uso de estatísticas
- Fontes confiáveis
- Precisão das informações
-
Persuasão e Retórica (20%)
- Impacto emocional
- Técnicas persuasivas
- Capacidade de convencimento
-
Consistência Lógica (10%)
- Ausência de contradições
- Fluxo argumentativo
- Resposta aos oponentes
# Teste do sistema de logging
uv run python test_logging_system.py
# Visualizar logs em tempo real
uv run python -m utils.log_viewer
# Verificar conectividade dos agentes A2A
curl http://localhost:8002/.well-known/agent.json
curl http://localhost:8003/.well-known/agent.json
curl http://localhost:8004/.well-known/agent.json
curl http://localhost:8005/.well-known/agent.json- Enhanced Logger: Sistema de logging estruturado
- Separação por Categoria: Logs de A2A, agentes e sistema
- Rotação Diária: Arquivos organizados por data
- Log Viewer: Visualização em tempo real
- Health Checks: Status de cada agente A2A
- Message Tracking: Rastreamento de mensagens entre agentes
- Performance Metrics: Latência e throughput
- Error Handling: Tratamento robusto de erros
⚖️ Supervisor: "Debate de 5 minutos iniciado! Flamengo começa!"
🔴 Flamengo: "Somos o MAIOR do Brasil! 8 Brasileirões, maior torcida..."
🟢 Fluminense: "Tradição centenária! CAMPEÕES DA LIBERTADORES 2023!"
📊 Pesquisador: "Dados: Flamengo 8 títulos BR, Fluminense atual campeão..."
⚖️ Supervisor: "Análise final: Fluminense vence por uso superior de dados recentes!"
# Flamengo solicita pesquisa via A2A
POST http://localhost:8005/run
{
"jsonrpc": "2.0",
"method": "conduct_research",
"params": {
"query": "estatísticas de público no Maracanã",
"requesting_agent": "flamengo_agent"
},
"id": "research_request_001"
}# Exemplo: http://localhost:8003/.well-known/agent.json
{
"agent_id": "flamengo_agent",
"name": "Torcedor Flamengo",
"description": "Agente especializado em defender o Flamengo",
"capabilities": ["initial_argument", "counter_argument", "request_research"],
"version": "1.0.0",
"protocol": "A2A-v1.0"
}- Fork o projeto
- Crie uma branch:
git checkout -b feature/nova-funcionalidade - Commit:
git commit -m 'Add nova funcionalidade' - Push:
git push origin feature/nova-funcionalidade - Abra um Pull Request
Este projeto está sob a licença MIT. Veja LICENSE para detalhes.
- ✅ 4 Agentes A2A Independentes em servidores separados
- ✅ Protocolo A2A v1.0 com Agent Cards e JSON-RPC 2.0
- ✅ Google ADK padrões oficiais implementados
- ✅ Interface Streamlit moderna e responsiva
- ✅ Sistema de Logging avançado com rotação diária
- ✅ Agent Discovery automático via HTTP
- ✅ Monitoramento em Tempo Real de status dos agentes
- ✅ Research System com tags
[PESQUISA]integrado - ✅ Neutralidade do Supervisor garantida
🔥 Fla-Flu Debate - Onde a tecnologia encontra a paixão! ⚽
Powered by Google Gemini AI | Built with ❤️ para os torcedores cariocas