Skip to content

Maycon-Rodrigues/DevOps-Agent

Repository files navigation

DevOps - Vercel Agent 🤖

Um agente inteligente especializado em fornecer informações detalhadas sobre projetos e deployments na plataforma Vercel. Desenvolvido com Python e framework Agno, oferece uma interface conversacional para monitoramento e gestão de infraestrutura Vercel.

✨ Características

  • 🤖 Agente Conversacional: Interface interativa para consultas sobre projetos Vercel
  • 🔄 Monitoramento Autônomo: Monitoramento contínuo de deployments com notificações automáticas via Telegram
  • 📱 Integração com Telegram: Receba notificações em tempo real sobre novos deployments
  • 🔍 Duas Ferramentas Especializadas:
    • search_deployments: Informações sobre deployments específicos
    • search_projects: Detalhes completos de projetos e configurações
  • ✅ Sistema de Validação: Validação automática de respostas antes do envio
  • 📊 Formatação Inteligente: Listas numeradas para perguntas quantitativas
  • 🔄 Memória Agêntica: Persistência de conversas com SQLite
  • 🌐 Suporte Multi-Modelo: Compatível com OpenAI GPT-4o-mini e Google Gemini

🚀 Instalação

Pré-requisitos

  • Python 3.13+
  • Conta Vercel com token de acesso
  • Chave de API OpenAI ou Google AI
  • Bot do Telegram (para notificações automáticas) - veja como criar abaixo

Configuração

  1. Clone o repositório:
git clone <repository-url>
cd DevOps-Agent
  1. Instale as dependências:
uv sync
  1. Configure as variáveis de ambiente:
# Crie o arquivo .env
cp .env.example .env

Edite o arquivo .env com suas credenciais:

# Vercel API Configuration
VERCEL_ACCESS_TOKEN=your_vercel_access_token_here

# Telegram Configuration (para notificações automáticas)
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
TELEGRAM_CHAT_ID=your_telegram_chat_id_here

# OpenAI Configuration (para GPT-4o-mini)
OPENAI_API_KEY=your_openai_api_key_here

# Google AI Configuration (para Gemini - opcional)
GOOGLE_API_KEY=your_google_api_key_here

Configurando o Bot do Telegram:

  1. Abra o Telegram e procure por @BotFather

  2. Envie o comando /newbot e siga as instruções

  3. Copie o token gerado e cole em TELEGRAM_BOT_TOKEN

  4. Para obter seu Chat ID, envie uma mensagem para @userinfobot no Telegram

  5. Copie o ID gerado e cole em TELEGRAM_CHAT_ID

  6. Configure o modelo preferido em config/agent_config.py:

MODEL_CONFIG = {
    "model": OpenAIChat("gpt-4o-mini")  # OpenAI model
    # "model": Gemini("gemini-2.0-flash-exp"),  # Google Gemini
}

🎯 Uso

Modo Interativo (Consulta Manual)

Execute o agente normalmente para fazer perguntas:

uv run app.py

ou com o comando do projeto:

uv run vercel-agent

Modo Autônomo com Monitoramento

Execute o agente com monitoramento automático que verifica novos deployments a cada 60 segundos e envia notificações para o Telegram:

uv run app.py --monitor

ou

uv run app.py -m

Como funciona:

  • 🔍 Verifica novos deployments a cada 60 segundos
  • 📱 Envia notificações automáticas para o Telegram quando detecta novos deployments
  • 💬 Permite fazer perguntas enquanto monitora em background
  • ✅ Cache inteligente para evitar notificações duplicadas

Exemplos de Perguntas

Deployments:

  • "What are the latest deployments?"
  • "What was the last deployment and who did it?"
  • "Have there been any recent errors in deployments?"

Projetos:

  • "What projects are currently hosted on the account?"
  • "Tell me about the [project-name] project"
  • "What frameworks are being used in my projects?"

Informações Gerais:

  • "Show me the status of all my projects"
  • "Which projects have environment variables configured?"

Comandos de Controle

  • /quit ou /q: Sair da conversa
  • Digite qualquer pergunta sobre seus projetos Vercel
  • Modo Monitoramento: Use --monitor ou -m para ativar monitoramento autônomo

Notificações de Deployments

Quando você executa o agente com --monitor, ele automaticamente:

  • 🔍 Verifica a API da Vercel a cada 60 segundos
  • 📦 Detecta novos deployments
  • 📱 Envia notificações formatadas para o Telegram contendo:
    • Nome do projeto
    • Mensagem de commit
    • Branch
    • Autor do deployment
    • Data e hora
    • Status (READY, BUILDING, ERROR, etc.)
    • URL do deployment

🛠️ Arquitetura

Estrutura do Projeto

vercel-agent/
├── app.py                      # Aplicação principal (ponto de entrada)
├── agent.py                    # Configuração e criação do agente
├── config/
│   └── agent_config.py        # Configurações e instruções do agente
├── monitoring/                  # Módulo de monitoramento autônomo
│   ├── __init__.py
│   ├── monitor.py             # Lógica de monitoramento
│   └── notifications.py       # Sistema de notificações
├── tools/
│   ├── search_deployments.py  # Ferramenta Agno para consultar deployments
│   ├── search_projects.py     # Ferramenta Agno para consultar projetos
│   ├── api_helper.py          # Funções auxiliares de API
│   └── __init__.py
├── pyproject.toml             # Dependências do projeto
├── .env                       # Variáveis de ambiente
└── README.md                  # Este arquivo

Organização Modular

  • app.py: Coordena o agente e monitoramento
  • agent.py: Função factory para criar o agente
  • monitoring/: Sistema de monitoramento autônomo
  • tools/: Ferramentas Agno e auxiliares de API
  • config/: Configurações do agente

Ferramentas Disponíveis

🔍 search_deployments

  • Endpoint: https://api.vercel.com/v6/deployments
  • Uso: Perguntas sobre deployments específicos, status, histórico
  • Retorna: Array de deployments com detalhes de criação, estado, autor, etc.

📁 search_projects

  • Endpoint: https://api.vercel.com/v10/projects
  • Uso: Perguntas sobre projetos, configurações, frameworks
  • Retorna: Array de projetos com detalhes completos, deployments recentes, configurações

Sistema de Validação

O agente implementa um sistema robusto de validação com 7 pontos de verificação:

  1. Análise da Pergunta: Entendeu corretamente o que foi perguntado?
  2. Seleção de Ferramenta: Usou a ferramenta correta?
  3. Precisão dos Dados: Informações exatas da API?
  4. Conversão de Datas: Timestamps convertidos corretamente?
  5. Formato Adequado: Formatação apropriada para o tipo de pergunta?
  6. Completude: Resposta completa à pergunta?
  7. Verificação Lógica: A resposta faz sentido?

📊 Formatação de Respostas

Listas Numeradas (1., 2., 3.)

Usado para perguntas quantitativas:

  • "latest deployments"
  • "recent deployments"
  • "list all projects"
  • "how many deployments"

Formato Simples

Usado para informações gerais:

  • Status de deployments
  • Informações de erro
  • Detalhes de projeto específico

🔧 Configuração Avançada

Modelos Suportados

OpenAI GPT-4o-mini (Padrão):

MODEL_CONFIG = {
    "model": OpenAIChat("gpt-4o-mini")
}

Google Gemini:

MODEL_CONFIG = {
    "model": Gemini("gemini-2.0-flash-exp")
}

Memória Agêntica

O agente utiliza SQLite para persistir conversas:

  • Banco de dados: /tmp/database.db
  • Habilita contexto entre sessões
  • Melhora respostas baseadas em histórico

🔐 Segurança

  • Tokens de API: Armazenados em variáveis de ambiente
  • Dados Sensíveis: Nunca exibidos além do necessário
  • Escopo Limitado: Apenas projetos conectados à conta Vercel
  • Validação: Todas as respostas são validadas antes do envio

📝 Dependências

  • agno>=2.2.0: Framework de agentes
  • google-genai>=1.46.0: Integração com Google AI
  • openai>=2.6.0: Integração com OpenAI
  • requests>=2.32.5: Requisições HTTP
  • sqlalchemy>=2.0.44: ORM para banco de dados

🤝 Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT.

🆘 Suporte

Para suporte e dúvidas:

🔄 Changelog

v0.2.0

  • ✅ Refatoração completa para arquitetura modular
  • ✅ Separação de responsabilidades:
    • app.py - Coordenação da aplicação
    • agent.py - Factory do agente
    • monitoring/ - Sistema de monitoramento
    • tools/ - Ferramentas Agno e auxiliares
  • ✅ Monitoramento autônomo de deployments
  • ✅ Notificações automáticas via Telegram
  • ✅ Execução em background com threading
  • ✅ Cache inteligente para evitar duplicatas
  • ✅ Dois modos de execução: interativo e monitoramento
  • ✅ Integração completa com TelegramBot

v0.1.0

  • ✅ Agente conversacional básico
  • ✅ Integração com API Vercel
  • ✅ Duas ferramentas especializadas (deployments e projetos)
  • ✅ Sistema de validação de respostas
  • ✅ Suporte a OpenAI e Google Gemini
  • ✅ Memória agêntica com SQLite
  • ✅ Formatação inteligente de respostas

Desenvolvido com ❤️ usando Python e Agno Framework

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages