Skip to content

DevDario/dexter-agent

Repository files navigation

🤖 Local Multi-Agent System

Sistema multi-agente local com comandos de voz e integração com Gemini API.

🎯 Agentes Disponíveis

1. ReportAgent 📊

  • Gera relatórios diários de trabalho
  • Cria resumos semanais
  • Rastreia atividades
  • Relatórios personalizados

2. DevAssistant 💻

  • Cria arquivos de código
  • Revisa código
  • Gera documentação
  • Sugere refatorações
  • Assistência geral de desenvolvimento

3. DesignerAssistant 🎨

  • Gera paletas de cores
  • Sugere layouts
  • Recomenda tipografia
  • Design de componentes
  • Análise de tendências

🚀 Setup

1. Estrutura de Diretórios

local-agent/
├── app/
│   ├── agents/
│   │   ├── __init__.py
│   │   ├── base_agent.py
│   │   ├── report_agent.py
│   │   ├── dev_assistant.py
│   │   └── designer_assistant.py
│   ├── voice/
│   │   ├── __init__.py
│   │   └── voice_handler.py
│   ├── utils/
│   │   ├── __init__.py
│   │   └── logger.py
│   ├── main.py
│   └── scheduler.py
├── data/
│   ├── models/
│   │   └── vosk-model-small/  # Extrair aqui o modelo Vosk
│   ├── workspace/             # Arquivos criados pelo DevAssistant
│   └── assets/                # Assets do DesignerAssistant
├── reports/                   # Relatórios gerados
├── logs/                      # Logs do sistema
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env
└── README.md

2. Configuração Inicial

# 1. Rodar setup
chmod +x setup.sh
./setup.sh

# 2. Editar .env com sua API key
nano .env
# Adicione: GEMINI_API_KEY=sua_chave_aqui

# 3. Build Docker
docker-compose build

# 4. Iniciar serviços
docker-compose up -d

# 5. Ver logs
docker-compose logs -f

3. Verificar Modelo Vosk

O modelo Vosk deve estar em: data/models/vosk-model-small/

Estrutura esperada:

data/models/vosk-model-small/
├── am/
├── conf/
├── graph/
└── ivector/

📡 API Endpoints

Endpoints Principais

# Listar agentes disponíveis
GET http://localhost:8000/agents

# Executar tarefa
POST http://localhost:8000/task
{
  "agent": "report",
  "task": "Gerar relatório diário",
  "context": {}
}

# Comando de voz
POST http://localhost:8000/voice/command?duration=5

# Gerar relatório diário
POST http://localhost:8000/report/generate

# Listar relatórios
GET http://localhost:8000/reports

# Criar arquivo (DevAssistant)
POST http://localhost:8000/dev/create-file?path=test.py&content=print('hello')

# Health check
GET http://localhost:8000/health

Documentação Interativa

🎤 Comandos de Voz

Comandos Disponíveis (Português)

Comando Agente Ação
"relatório diário" ReportAgent Gera relatório do dia
"criar arquivo [nome]" DevAssistant Cria novo arquivo
"revisar código" DevAssistant Revisa código
"paleta de cores" DesignerAssistant Gera paleta
"sugerir layout" DesignerAssistant Sugere layout
"ajuda" Sistema Lista comandos
"status" Sistema Status do sistema

Testar Comandos de Voz

# Via curl
curl -X POST "http://localhost:8000/voice/command?duration=5"

# Via Python
import requests
response = requests.post("http://localhost:8000/voice/command?duration=5")
print(response.json())

⏰ Tarefas Agendadas

O scheduler executa automaticamente:

  • 18:00 - Relatório diário (segunda a sexta)
  • 00:00 - Backup de logs
  • 17:00 (sexta) - Relatório semanal

Editar em app/scheduler.py para customizar horários.

💡 Exemplos de Uso

1. Gerar Relatório via API

import requests

response = requests.post(
    "http://localhost:8000/task",
    json={
        "agent": "report",
        "task": "Gerar relatório diário",
        "context": None
    }
)
print(response.json())

2. Criar Arquivo Python

import requests

response = requests.post(
    "http://localhost:8000/task",
    json={
        "agent": "dev",
        "task": "Criar arquivo Python com uma função para calcular fibonacci",
        "context": {
            "filepath": "fibonacci.py",
            "language": "python"
        }
    }
)
print(response.json())

3. Gerar Paleta de Cores

import requests

response = requests.post(
    "http://localhost:8000/task",
    json={
        "agent": "designer",
        "task": "Paleta de cores para app de finanças",
        "context": {
            "mood": "professional",
            "brand_colors": ["#2E7D32"]
        }
    }
)
print(response.json())

4. Comando de Voz

# Diga "relatório diário" no microfone
curl -X POST "http://localhost:8000/voice/command?duration=5"

🔧 Comandos Docker Úteis

# Ver logs em tempo real
docker-compose logs -f

# Reiniciar serviços
docker-compose restart

# Parar serviços
docker-compose down

# Rebuild após mudanças
docker-compose up -d --build

# Executar comando dentro do container
docker-compose exec agent-api bash

# Ver status dos containers
docker-compose ps

📂 Arquivos Gerados

Relatórios

  • Localização: ./reports/
  • Formato: Markdown (.md)
  • Nomenclatura: daily_report_YYYY-MM-DD.md

Logs

  • Localização: ./logs/
  • Tipos:
    • app_YYYY-MM-DD.log - Logs da aplicação
    • activity_YYYY-MM-DD.jsonl - Atividades rastreadas

Workspace (DevAssistant)

  • Localização: ./data/workspace/
  • Arquivos criados pelo DevAssistant

Assets (DesignerAssistant)

  • Localização: ./data/assets/
  • Paletas, layouts, etc.

🐛 Troubleshooting

Vosk não reconhece voz

# Verificar se modelo está correto
ls -la data/models/vosk-model-small/

# Deve ter: am/, conf/, graph/, ivector/

Erro de permissão no Docker

# Dar permissões aos diretórios
chmod -R 777 data/ reports/ logs/

API não responde

# Verificar logs
docker-compose logs agent-api

# Reiniciar
docker-compose restart agent-api

Gemini API Error

# Verificar .env
cat .env

# Testar API key
curl -H "x-goog-api-key: YOUR_KEY" \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{"contents":[{"parts":[{"text":"Hello"}]}]}'

🎯 Próximos Passos

  1. Testar comandos básicos via API
  2. Configurar microfone para comandos de voz
  3. Customizar horários do scheduler
  4. Adicionar novos agentes conforme necessário
  5. Integrar com ferramentas (Git, IDE, etc.)

📝 Notas

  • Sistema 100% gratuito
  • Funciona offline (exceto chamadas Gemini API)
  • Modelo Vosk: português brasileiro
  • Timezone: Africa/Luanda (configurável em .env)

🆘 Suporte

Para problemas ou dúvidas:

  1. Verificar logs: docker-compose logs -f
  2. Testar health check: curl http://localhost:8000/health
  3. Ver documentação: http://localhost:8000/docs

Desenvolvido para automatizar tarefas e aumentar produtividade! 🚀

local-agent/
├── app/
│   ├── agents/
│   │   ├── __init__.py
│   │   ├── base_agent.py
│   │   ├── report_agent.py
│   │   ├── dev_assistant.py
│   │   └── designer_assistant.py
│   ├── voice/
│   │   ├── __init__.py
│   │   └── voice_handler.py
│   ├── utils/
│   │   ├── __init__.py
│   │   └── logger.py
│   ├── main.py
│   └── scheduler.py
├── data/
│   ├── models/
│   │   └── vosk-model-small/  # Extrair aqui o modelo Vosk
│   ├── workspace/             # Arquivos criados pelo DevAssistant
│   └── assets/                # Assets do DesignerAssistant
├── reports/                   # Relatórios gerados
├── logs/                      # Logs do sistema
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── .env
└── README.md

About

tried to vibe code an agent a while ago, then claude code came, so... :)

Topics

Resources

Stars

Watchers

Forks

Contributors