MODULO 3.2

๐Ÿ—๏ธ Projeto 2: Equipe de Desenvolvimento Autonoma

Construa um swarm de desenvolvimento completo com planejamento, coding paralelo, revisao cross-model, testes automatizados e documentacao โ€” replicando a arquitetura do oh-my-openagent.

6
Topicos
60
Minutos
Avancado
Nivel
Projeto
Tipo
1

๐Ÿ—๏ธ Arquitetura: replicando oh-my-openagent

O oh-my-openagent (OMO) e um dos sistemas multiagentes mais sofisticados em producao. Sua arquitetura e um pipeline hierarquico onde um orquestrador central โ€” chamado Sisyphus โ€” coordena uma equipe de agentes especializados: o Prometheus (planejador) que cria a spec, o Hephaestus (coder) que implementa, o Reviewer que avalia a qualidade e o Test Engineer que valida o resultado. Cada agente usa um modelo de IA diferente deliberadamente, criando uma diversidade cognitiva que captura erros que um unico modelo ignoraria.

Neste projeto, voce vai replicar essa arquitetura do zero. O objetivo nao e copiar o OMO linha por linha, mas entender os principios que fazem ele funcionar e construir sua propria versao. O Sisyphus e um "loop incansavel" โ€” ele delega, recebe resultado, avalia, e se nao estiver satisfeito, delega novamente. Ele nunca para ate que a tarefa esteja completa e aprovada. Esse padrao de persistencia e o que diferencia swarms de producao de demos.

๐Ÿ’ก Mapa de Agentes

  • โ€ข Sisyphus (Orquestrador): Recebe a tarefa do usuario, decompoe em subtarefas, delega para agentes especializados e nao para ate completar. Usa o modelo mais potente disponivel (Claude Opus, GPT-5.3)
  • โ€ข Prometheus (Planejador): Faz discovery questions, identifica requisitos e gera spec.md detalhada com criterios de aceitacao claros
  • โ€ข Hephaestus (Coder): Implementa o codigo seguindo a spec. Trabalha em tarefas atomicas com file ownership para evitar conflitos
  • โ€ข Reviewer + Test Engineer: Revisam o codigo usando modelo diferente do coder (anti-blindspot) e geram testes automatizados

๐Ÿ“Š Fluxo de execucao

  • 1. Receber tarefa: Sisyphus analisa o pedido do usuario e decide se precisa de planejamento ou pode executar diretamente
  • 2. Planejar: Prometheus faz perguntas de clarificacao e gera spec.md com tasks atomicas e criterios de aceitacao
  • 3. Executar: Hephaestus implementa cada task em sequencia (ou paralelo se nao houver dependencias)
  • 4. Revisar: Reviewer avalia o codigo โ€” APPROVED ou NEEDS_REVISION com feedback especifico
  • 5. Testar: Test Engineer gera e executa testes unitarios, de integracao e adversariais
  • 6. Iterar: Se revisao ou testes falharem, Sisyphus envia de volta para correcao ate atingir qualidade aceitavel
2

๐Ÿ“‹ Fase de planejamento: entrevista e spec

A fase de planejamento e onde a maioria dos projetos de software falha โ€” e com swarms nao e diferente. Um agente coder que recebe uma instrucao vaga vai produzir codigo vago. O agente planejador (Prometheus) resolve isso fazendo discovery questions โ€” perguntas de clarificacao que forcam o usuario a definir exatamente o que quer. "Qual framework usar?", "Precisa de autenticacao?", "Qual banco de dados?" โ€” cada pergunta elimina ambiguidade que geraria retrabalho na execucao.

O resultado do planejamento e um arquivo spec.md que contem: descricao do projeto, requisitos funcionais e nao-funcionais, stack tecnologica escolhida, lista de tasks atomicas (cada uma com escopo claro e criterios de aceitacao) e dependencias entre tasks. Esse arquivo e o "contrato" entre o planejador e o coder โ€” tudo que nao esta na spec nao sera implementado, e tudo que esta na spec deve ser implementado completamente.

๐Ÿ’ก Componentes do Planejamento

  • โ€ข Discovery Questions: 5-10 perguntas que eliminam ambiguidade โ€” stack, escopo, dependencias, constraints, prioridades
  • โ€ข spec.md: Documento estruturado com requisitos, tasks, criterios de aceitacao e dependencias entre tasks
  • โ€ข Task Decomposition: Cada task deve ser atomica (completavel por um agente em uma sessao), testavel e independente quando possivel
  • โ€ข Acceptance Criteria: Cada task tem criterios claros do que significa "feito" โ€” sem criterios, e impossivel saber quando parar

โš ๏ธ Armadilha: "plano perfeito"

O planejamento deve ser bom o suficiente, nao perfeito. Gastar 30 minutos planejando uma tarefa de 5 minutos e desperdicio. A regra pratica: se a tarefa leva menos de 10 interacoes, o Sisyphus pode pular o planejamento e delegar diretamente para o coder. O Prometheus so e acionado para tarefas complexas que envolvem multiplos arquivos ou decisoes de arquitetura.

3

๐Ÿ’ป Fase de execucao: coding com zonas seguras

A execucao paralela e o santo graal dos swarms de desenvolvimento โ€” multiplos agentes codificando simultaneamente, cada um em sua tarefa, produzindo em minutos o que levaria horas sequencialmente. Mas paralelismo sem coordenacao e receita para desastre: dois agentes editando o mesmo arquivo geram conflitos de merge, um agente importando um modulo que outro esta modificando causa erros em cascata. A solucao e o conceito de zonas seguras.

Zonas seguras significam que cada agente tem ownership exclusivo sobre os arquivos que esta modificando. O orquestrador distribui tasks de forma que dois agentes nunca editem o mesmo arquivo simultaneamente. Quando isso nao e possivel (ex: dois agentes precisam adicionar rotas no mesmo router.ts), a task e dividida em sub-tasks sequenciais ou o arquivo conflitante e tratado por um unico agente. Cada task atomica define explicitamente quais arquivos serao criados ou modificados, e o sistema valida que nao ha sobreposicao antes de iniciar a execucao paralela.

๐Ÿ’ก Estrategias de Paralelismo Seguro

  • โ€ข File Ownership: Cada task lista os arquivos que vai criar/modificar. O scheduler garante que nao ha sobreposicao entre tasks paralelas
  • โ€ข Atomic Tasks: Cada task e autossuficiente โ€” cria os arquivos necessarios, escreve testes e valida localmente antes de marcar como completa
  • โ€ข Merge Strategy: Tasks paralelas sao mergeadas na ordem de conclusao. Se houver conflito, o orquestrador resolve com um merge agent dedicado
  • โ€ข Dependency Graph: Tasks com dependencias rodam sequencialmente; tasks independentes rodam em paralelo โ€” o scheduler otimiza automaticamente

๐Ÿ“Š Ganhos de paralelismo

  • 3-5x mais rapido: Projetos com 10+ tasks independentes completam em 1/3 a 1/5 do tempo sequencial
  • Custo proporcional: Paralelismo nao aumenta custo total de tokens โ€” as mesmas tasks sao executadas, apenas simultaneamente
  • Limite pratico: Alem de 5-7 agentes paralelos, a overhead de coordenacao comeca a superar o ganho de velocidade
  • Quando evitar: Tasks altamente interdependentes ou que modificam muitos arquivos compartilhados sao melhor executadas sequencialmente
4

๐Ÿ” Fase de revisao: cross-model review

A revisao cross-model e uma das tecnicas mais poderosas e menos intuitivas dos swarms: usar um modelo de IA diferente do que escreveu o codigo para revisao-lo. Se o Hephaestus codou usando Claude Sonnet, o Reviewer usa GPT-5.3 (ou vice-versa). A razao e que modelos do mesmo provider tendem a ter os mesmos blindspots โ€” padroes que eles nao conseguem detectar em seu proprio output porque sao inerentes ao seu treinamento. Usar um modelo de provider diferente introduz uma "perspectiva alternativa" que captura erros que o modelo original nunca veria.

O Reviewer nao faz apenas code review tradicional. Ele avalia contra uma checklist estruturada: corretude (o codigo faz o que a spec pede?), seguranca (ha vulnerabilidades OWASP?), performance (ha gargalos obvios?), manutenibilidade (o codigo e legivel e bem estruturado?) e completude (ha TODOs, stubs ou placeholders?). O resultado e binario: APPROVED ou NEEDS_REVISION com feedback especifico sobre o que precisa ser corrigido.

๐Ÿ’ก Checklist de Revisao

  • โ€ข Corretude: O codigo implementa todos os requisitos da spec? Os criterios de aceitacao sao atendidos?
  • โ€ข Seguranca: Ha injection, XSS, secrets hardcoded, path traversal ou outras vulnerabilidades OWASP Top 10?
  • โ€ข Manutenibilidade: Funcoes com mais de 50 linhas? Complexidade ciclomatica alta? Nomes de variaveis obscuros?
  • โ€ข Completude: Ha TODOs, stubs, funcoes vazias, imports nao utilizados ou placeholders nao resolvidos?

๐Ÿ“Š Eficacia do cross-model review

  • Reducao de 60% em bugs: Modelos diferentes capturam classes de erros que o modelo original nunca detectaria
  • Custo adicional minimo: A revisao tipicamente consome 10-20% dos tokens da implementacao โ€” investimento com ROI altissimo
  • Pares comprovados: Claude + GPT, Gemini + Claude, Codex + Sonnet โ€” diversidade de treinamento e o que importa
  • Limite de iteracoes: Se o codigo nao e aprovado apos 3 revisoes, escala para humano โ€” evita loops infinitos de correcao
5

๐Ÿงช Fase de teste: testes automatizados

O agente testador (Test Engineer) e responsavel por gerar e executar testes que provam que o codigo funciona corretamente. Mas ha uma armadilha fundamental: IAs sao excelentes em gerar testes que parecem corretos mas nao testam nada de verdade. O fenomeno do "testing theater" โ€” 268 assertions testando strings de prompt em vez de comportamento real โ€” e um caso real documentado em projetos open-source gerados por IA.

Para evitar testing theater, o Test Engineer deve gerar tres tipos de testes: testes unitarios que verificam funcoes individuais com inputs variados (incluindo edge cases), testes de integracao que verificam que componentes funcionam juntos e testes adversariais que tentam deliberadamente quebrar o codigo com inputs maliciosos, volumes extremos e condicoes de corrida. Os testes devem verificar comportamento, nao implementacao โ€” testar que a funcao retorna o resultado correto, nao que ela usa determinada variavel interna.

๐Ÿ’ก Tipos de Testes

  • โ€ข Unit Tests: Testar funcoes isoladas com inputs normais, edge cases (null, vazio, overflow) e tipos invalidos
  • โ€ข Integration Tests: Verificar que modulos interagem corretamente โ€” API retorna dados certos, DB persiste corretamente
  • โ€ข Adversarial Tests: Inputs maliciosos (SQL injection, XSS payloads), volumes extremos (100k registros), race conditions
  • โ€ข Mutation Testing: Introduzir erros deliberados no codigo e verificar que os testes falham โ€” se nao falharem, os testes sao fracos

๐Ÿšจ Anti-padrao: Testing Theater

Sinais de que seus testes nao testam nada real:

  • โœ—Testes verificam strings fixas de prompts em vez de outputs funcionais
  • โœ—100% de cobertura mas nenhuma assertion de valor โ€” apenas "expect(fn).not.toThrow()"
  • โœ—Mocks que retornam exatamente o que o teste espera โ€” sem testar logica real
  • โœ—Testes que passam mesmo quando voce introduz bugs deliberados no codigo
6

๐Ÿ“ Fase de documentacao: docs automaticos

A documentacao automatica e o ultimo elo da cadeia de desenvolvimento autonomo. O agente documentador (Documenter) nao apenas gera README e docstrings โ€” ele registra o racional de decisoes tomadas durante o desenvolvimento. Por que escolhemos Redis em vez de PostgreSQL para o cache? Por que o endpoint usa POST em vez de GET? Essas decisoes sao obvias no momento mas esquecidas em semanas. O decision log preserva esse conhecimento.

O Documenter gera tres artefatos: changelog (o que mudou e por que), decision log (decisoes de arquitetura com contexto e alternativas consideradas) e API docs (documentacao tecnica dos endpoints, funcoes e modulos). Cada artefato e gerado automaticamente a partir das tasks completadas, do historico de revisao e dos testes executados. O resultado e documentacao que nasce junto com o codigo, nao como afterthought.

๐Ÿ’ก Artefatos de Documentacao

  • โ€ข Changelog: Registro estruturado de cada mudanca โ€” o que, quando, por que, e quem (qual agente) fez
  • โ€ข Decision Log: Decisoes de arquitetura com contexto ("Escolhemos X porque Y, alternativas eram Z")
  • โ€ข API Documentation: Endpoints, parametros, exemplos de request/response, codigos de erro
  • โ€ข Setup Guide: Como instalar, configurar e executar o projeto โ€” gerado automaticamente a partir do ambiente de desenvolvimento

๐Ÿ“š Resumo do Modulo

โœ“
Arquitetura OMO - Sisyphus, Prometheus, Hephaestus, Reviewer, Test Engineer em pipeline hierarquico
โœ“
Planejamento com spec.md - Discovery questions, tasks atomicas, criterios de aceitacao
โœ“
Zonas seguras - File ownership, paralelismo sem conflitos, dependency graph
โœ“
Cross-model review - Modelos de providers diferentes para capturar blindspots
โœ“
Testes reais - Unit, integration, adversarial โ€” evitar testing theater
โœ“
Auto-documentacao - Changelog, decision log, API docs gerados automaticamente

Proximo Modulo:

3.3 - Memoria e Persistencia em Swarms