Skip to content

Malnati/agent-flow-tdd

Repository files navigation

Agent Flow TDD

Agent Flow TDD Logo

Framework para desenvolvimento orientado a testes usando agentes de IA.

🔍 Visão Geral

O Agent Flow TDD utiliza modelos de IA para auxiliar no desenvolvimento orientado a testes, gerando código, testes e documentação com base em prompts. O framework suporta múltiplos modelos de IA, tanto locais quanto remotos, e oferece uma interface de linha de comando simples para interação.

🚀 Início Rápido

# Clone o repositório
git clone https://github.com/Malnati/agent-flow-tdd.git
cd agent-flow-tdd

# Instale as dependências
make install

# Execute um exemplo
make tdd prompt="Criar API REST em Python" format=json

📚 Documentação

A documentação completa está disponível no diretório docs/:

🔧 Principais Comandos

# Gerar código/testes a partir de um prompt
make tdd prompt="Criar sistema de login" format=json

# Especificar modelo
make tdd prompt="Implementar ordenação" model=deepseek_local format=python

# Visualizar logs
make logs

# Executar testes
make test

# Otimizar sistema macOS para modelos LLM locais
make optimize-macos

# Publicar pacote (requer token PyPI)
make publish

🤖 Modelos Suportados

Locais (Offline)

  • tinyllama-1.1b - TinyLLaMA (1.1B)
  • phi1 - Microsoft Phi-1 (1.3B)
  • phi-4-2.7b - Microsoft Phi-4 (2.7B) - Otimizado para MacOS M2
  • starcoder2-3b - BigCode StarCoder2 (3B) - Especializado em código
  • deepseek_local - DeepSeek Coder (6.7B)
  • phi3-mini - Microsoft Phi-3 Mini

Remotos (API)

  • gpt-3.5-turbo, gpt-4-turbo - OpenAI
  • claude-3-opus, claude-3-sonnet - Anthropic
  • gemini-pro - Google

🛠️ Problemas Conhecidos e Soluções

Otimização para MacBooks com RAM Limitada

Se você estiver executando modelos locais em um MacBook com RAM limitada (como MacBook Air M2 com 8GB):

  1. Execute o comando de otimização para melhorar a performance:

    make optimize-macos
  2. Priorize modelos menores como phi1 e phi3-mini, que funcionam bem mesmo com RAM limitada.

  3. O sistema ajusta automaticamente parâmetros para modelos locais:

    • Utiliza quantização eficiente (Q4_K_M)
    • Ativa offload para GPU quando possível
    • Implementa chunking para prompts longos
    • Monitora recursos do sistema para prevenir travamentos

Problema com python -m build no Makefile

Se você encontrar problemas ao executar make publish devido a falhas no comando python -m build, você pode:

  1. Executar os comandos de build manualmente no terminal:

    python -m build
    python -m twine upload dist/* --username __token__ --password $PYPI_TOKEN
  2. Ou modificar o Makefile para usar $(SHELL) em vez de bash -c:

    @$(SHELL) -c "$(PYTHON) -m build"

Outros Problemas Comuns

Consulte a seção de Troubleshooting para mais informações sobre outros problemas comuns e suas soluções.

🤝 Contribuindo

Contribuições são bem-vindas! Veja CONTRIBUTING.md para mais detalhes.

📝 Licença

Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.