🤖 AgentGraph - Plataforma Multi-Agente LangGraph
Uma plataforma inteligente de agentes especializados que utiliza LangGraph para processar consultas em linguagem natural, com suporte a múltiplos provedores de LLM e arquitetura modular extensível.
✨ Funcionalidades Principais
🎯 Sistema Multi-Agente
- Agente SQL: Consultas inteligentes em dados CSV/SQLite
- Detecção Automática: Identifica tipo de processamento necessário
- Arquitetura Extensível: Preparado para PDF, MySQL, Gráficos e ML
🧠 Múltiplos Provedores LLM
- OpenAI: GPT-4o, GPT-4o-mini, o3-mini
- Anthropic: Claude-3.5-Sonnet com tool-calling
- HuggingFace: LLaMA 70B, LLaMA 8B, DeepSeek-R1 (refinamento)
🔄 LangGraph Avançado
- Arquitetura baseada em nós especializados
- Processamento assíncrono e paralelo
- Gerenciamento inteligente de objetos não-serializáveis
- Sistema de retry com backoff exponencial
🔍 Observabilidade com LangSmith
- Rastreamento completo de execuções LangGraph
- Monitoramento de performance em tempo real
- Debug avançado de agentes e fluxos
- Análise de custos e uso de tokens
- Dashboards de observabilidade integrados
🌐 Interface Moderna
- Interface Gradio responsiva e centralizada
- Configurações separadas do chat principal
- Upload de CSV com processamento automático
- Histórico detalhado e logs estruturados
💾 Sistema Inteligente
- Cache otimizado com verificação de hits
- Processamento genérico de CSV com detecção automática
- Modo avançado com refinamento de respostas
- Verbose ativo para debugging
📁 Estrutura do Projeto
agentgraph/
├── app.py # 🚀 Entry point: Gradio + LangGraph
├── graphs/
│ └── main_graph.py # 🔄 StateGraph principal com roteamento
├── nodes/ # 🎯 Nós especializados
│ ├── csv_processing_node.py # 📊 Processamento genérico de CSV
│ ├── database_node.py # 🗄️ Operações de banco de dados
│ ├── query_node.py # 🔍 Processamento de consultas
│ ├── refinement_node.py # ✨ Refinamento de respostas
│ ├── cache_node.py # 💾 Gerenciamento de cache
│ └── agent_node.py # 🤖 Coordenação geral
├── agents/ # 🧠 Agentes especializados
│ ├── sql_agent.py # 📝 Agente SQL multi-provedor
│ └── tools.py # 🛠️ Ferramentas e detecção
├── utils/ # ⚙️ Utilitários
│ ├── database.py # 🗃️ Funções de banco de dados
│ ├── config.py # 📋 Configurações centralizadas
│ └── object_manager.py # 🎛️ Gerenciador de objetos
├── uploaded_data/ # 📂 Arquivos CSV enviados
├── requirements.txt # 📦 Dependências
├── README.md # 📖 Documentação
├── architecture.md # 🏗️ Arquitetura detalhada
└── .env # 🔐 Variáveis de ambiente
🚀 Instalação Rápida
1. Clone o Repositório
git clone https://github.com/seu-usuario/agentgraph.git
cd agentgraph
2. Instale as Dependências
pip install -r requirements.txt
3. Configure as Variáveis de Ambiente
Crie/edite o arquivo .env:
# 🔑 API Keys (pelo menos uma é obrigatória)
HUGGINGFACE_API_KEY=hf_your_key_here
OPENAI_API_KEY=sk-your_key_here
ANTHROPIC_API_KEY=sk-ant-your_key_here
# 🔍 LangSmith - Observabilidade (OPCIONAL)
LANGSMITH_API_KEY=lsv2_pt_your_key_here
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGSMITH_PROJECT=agentgraph-project
# 🗄️ Configurações de Banco
SQL_DB_PATH=data.db
DEFAULT_CSV_PATH=tabela.csv
UPLOAD_DIR=uploaded_data
# 🤖 Configurações de Modelo
DEFAULT_MODEL=GPT-4o-mini
MAX_ITERATIONS=40
TEMPERATURE=0
# 🌐 Configurações do Gradio
GRADIO_SHARE=False
GRADIO_PORT=7860
4. Execute a Aplicação
python app.py
🎉 Pronto! Acesse http://localhost:7860 no seu navegador.
5. Configure LangSmith (Opcional)
Para habilitar observabilidade avançada:
- Crie conta em LangSmith
- Obtenha API Key no dashboard
- Configure no .env:
LANGSMITH_API_KEY=lsv2_pt_your_key_here LANGSMITH_TRACING=true LANGSMITH_PROJECT=agentgraph-project - Reinicie a aplicação
✨ Com LangSmith você terá:
- 🔍 Rastreamento completo de execuções
- 📊 Dashboards de performance
- 🐛 Debug avançado de agentes
- 💰 Análise de custos de tokens
- 📈 Métricas de uso em tempo real
💡 Como Usar
🎯 Fluxo Básico
- Acesse
http://localhost:7860 - Selecione o modelo LLM desejado (OpenAI, Anthropic ou HuggingFace)
- Upload de CSV (opcional) ou use dados padrão
- Digite perguntas em linguagem natural
- Receba respostas detalhadas com SQL e análises
🤖 Modelos Disponíveis
| Provedor | Modelo | Uso | Características |
|---|---|---|---|
| OpenAI | GPT-4o | AgentSQL | Tools + Verbose ativo |
| OpenAI | GPT-4o-mini | AgentSQL | Modelo padrão, rápido |
| OpenAI | o3-mini | AgentSQL | Sem temperature |
| Anthropic | Claude-3.5-Sonnet | AgentSQL | Tool-calling + Retry |
| HuggingFace | LLaMA 70B | Refinamento | Opcional |
| HuggingFace | LLaMA 8B | Refinamento | Opcional |
| HuggingFace | DeepSeek-R1 | Refinamento | Opcional |
📊 Exemplos de Perguntas
"Quais são os produtos com maior preço?"
"Mostre as vendas por categoria"
"Qual a média de idade dos clientes?"
"Produtos com estoque baixo"
"Análise de tendências mensais"
🧪 Verificação e Testes
Verificação Rápida
# Verifica configuração LangSmith
python check_langsmith_setup.py
# Teste completo de integração
python test_langsmith_integration.py
Arquivos de Teste Disponíveis
check_langsmith_setup.py- Verificação rápida de configuraçãotest_langsmith_integration.py- Teste completo de integraçãotest_new_architecture.py- Teste da arquitetura LangGraphtest_graph_functionality.py- Teste de funcionalidades de gráficos
🛠️ Tecnologias
Core Framework
- LangGraph: Orquestração de agentes com nós especializados
- LangChain: Framework de LLM com tool-calling
- LangSmith: Observabilidade e rastreamento avançado
- Gradio: Interface web moderna e responsiva
Processamento de Dados
- SQLAlchemy: ORM para banco de dados SQLite
- Pandas: Processamento e análise de dados CSV
- SQLite: Banco de dados embarcado
Provedores LLM
- OpenAI: GPT-4o, GPT-4o-mini, o3-mini
- Anthropic: Claude-3.5-Sonnet
- HuggingFace: LLaMA, DeepSeek via Together AI
Utilitários
- AsyncIO: Processamento assíncrono
- Logging: Sistema de logs estruturados
- Retry: Backoff exponencial para rate limiting
🏗️ Arquitetura Atual
Fluxo Principal
Pergunta → Detecção de Tipo → AgentSQL → Refinamento (Opcional) → Resposta
Nós Especializados
- 🔍 Query Node: Detecção e processamento de consultas
- 🗄️ Database Node: Operações de banco e CSV
- 💾 Cache Node: Gerenciamento de cache e histórico
- ✨ Refinement Node: Melhoria de respostas (modo avançado)
- 🤖 Agent Node: Coordenação geral do fluxo
Características Técnicas
- ✅ Async/Await: Processamento não-bloqueante
- ✅ Multi-Provedor: OpenAI, Anthropic, HuggingFace
- ✅ Tool-Calling: Ferramentas SQL nativas
- ✅ Verbose Ativo: Debugging detalhado
- ✅ Rate Limiting: Retry automático para APIs
- ✅ Object Manager: Gerenciamento de objetos não-serializáveis
🚀 Roadmap - Implementações Futuras
🎯 Curto Prazo (1-2 meses)
📄 Agente PDF
# Funcionalidades planejadas:
- Extração de texto de PDFs
- OCR para documentos escaneados
- Análise de estrutura de documentos
- Busca semântica em conteúdo
- Integração com LangGraph
📊 Agente de Gráficos
# Funcionalidades planejadas:
- Geração automática de visualizações
- Matplotlib, Plotly, Seaborn
- Gráficos baseados em consultas SQL
- Exportação em múltiplos formatos
🎯 Médio Prazo (3-6 meses)
🗄️ Agente MySQL
# Funcionalidades planejadas:
- Conexões externas MySQL/PostgreSQL
- Queries complexas com JOINs
- Gerenciamento de múltiplas bases
- Pool de conexões
🤖 Agente de ML/Previsões
# Funcionalidades planejadas:
- Modelos de Machine Learning
- Análise de séries temporais
- Previsões automáticas
- Integração com scikit-learn
🎯 Longo Prazo (6+ meses)
🔄 Sistema de Pipelines
# Funcionalidades planejadas:
- Combinação de múltiplos agentes
- Workflows customizáveis
- Processamento em lote
- Agendamento de tarefas
🌐 API REST
# Funcionalidades planejadas:
- Endpoints para cada agente
- Autenticação e autorização
- Rate limiting por usuário
- Documentação OpenAPI
☁️ Integração Cloud
# Funcionalidades planejadas:
- Deploy em AWS/Azure/GCP
- Armazenamento em nuvem
- Escalabilidade automática
- Monitoramento avançado
📈 Exemplos de Uso
Análise de Vendas
Usuário: "Quais produtos tiveram maior crescimento no último trimestre?"
Sistema:
1. 🔍 Detecta: consulta SQL
2. 🧠 Claude analisa estrutura da tabela
3. 📝 Gera SQL otimizado
4. 📊 Executa e analisa resultados
5. 💬 Resposta detalhada em português
Relatório Financeiro
Usuário: "Mostre um resumo das receitas por categoria"
Sistema:
1. 🔍 Identifica: agregação de dados
2. 🧠 GPT-4o cria query com GROUP BY
3. 📊 Executa com LIMIT 20
4. ✨ Refinamento opcional com LLaMA
5. 📈 Resposta com insights
🤝 Contribuição
Como Contribuir
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Áreas de Contribuição
- 🐛 Bug fixes e melhorias
- 📄 Documentação e exemplos
- 🧪 Testes automatizados
- 🎯 Novos agentes (PDF, MySQL, etc.)
- 🎨 Interface e UX
- ⚡ Performance e otimizações
📄 Licença
Este projeto está licenciado sob a MIT License.
🙏 Agradecimentos
- LangChain e LangGraph pela framework excepcional
- Anthropic, OpenAI e HuggingFace pelos modelos LLM
- Gradio pela interface web intuitiva
- Comunidade open source pelas contribuições
⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!
🔗 Links Úteis: