Seis agentes, cada um com nome, função e modelo
Comecei com 14 agentes e reduzi a equipe a seis papéis. Só um deles revisa pedidos de mudança no código.
Em 14 de julho, lancei um grupo de 14 agentes do meu assistente JARVIS. No Claude Code (ferramenta para trabalhar com código), eles foram reproduzidos como 13 subagentes (ajudantes que recebem tarefas específicas). Oito dias depois, em 22 de julho, comecei a reduzir esse grupo para seis.
A parte do Claude Code que executa tarefas ficou com seis papéis. Cada um tem um nome, uma responsabilidade e um modelo de IA fixo. Só um revisa PRs (pedidos para revisar e incluir mudanças no código).
Os seis que ficaram
A parte de execução do Claude Code tem estes papéis. VULCAN lidera o trabalho no servidor. LUMEN lidera a parte usada pelo cliente e a interface. SENTINEL cuida da qualidade, das revisões e dos testes. MNEMOSYNE cuida da documentação e do conhecimento. NEXUS cuida dos sistemas de apoio, da segurança e da confiabilidade. APOLLO é o líder técnico consultivo.
APOLLO fica fora da etapa de revisão dos PRs de propósito. Eu o chamo quando suspeito que o modelo inventou algo ou quando o trabalho começa a fugir do foco. Também o chamo quando duas evidências se contradizem ou surge uma decisão de arquitetura. Ele aconselha, mas não aprova nada.
PROMETHEUS, que liderava a engenharia de IA, saiu da execução. Seu trabalho passou para o loop principal, a sessão em que estou conversando.
Os nomes mudaram um mês antes da redução. Em 22 de junho, quando redesenhei os papéis, AEGIS virou NEXUS e THEMIS virou SENTINEL. O registro v3 saiu no dia seguinte. A redução para seis agentes aconteceu só em 22 de julho, com o registro v3.1. Foram dois passos separados. Na minha opinião, um nome que ainda descreve o papel antigo faz você chamar o agente errado sem perceber.
Cada papel tem um modelo
O modelo de IA (programa que executa uma tarefa) faz parte da definição do agente. Não é algo que escolho na hora de delegar. Os papéis de planejamento e revisão mais detalhada, APOLLO, MNEMOSYNE e SENTINEL, usam Opus. Os papéis de implementação, VULCAN, LUMEN e NEXUS, usam Sonnet. Os ajudantes de busca e leitura usam Haiku. São três agentes em cada uma das duas faixas maiores.
A sessão principal distribui as tarefas. Ela lê o pedido, escolhe a faixa necessária e delega. As leituras simples, ela mesma faz. Abrir um subagente para ler um arquivo costuma custar mais do que ler o arquivo.
Assim, quase não preciso perguntar "qual modelo uso aqui?". A pergunta que sobra é "qual é o papel?", e consigo responder olhando para a tarefa.
Um nome e uma responsabilidade
Acho que um nome ligado a uma só responsabilidade deixa claro quem deve corrigir um problema. Se o sistema devolve o campo errado, a pergunta já tem destino: VULCAN. Se a tela quebra no celular, é LUMEN. Quando vários agentes têm papéis parecidos, fica menos claro para quem levar o problema.
Uma função que cabe em uma linha também é mais fácil de escrever e manter. Se a descrição de um agente precisa de duas linhas, provavelmente são dois papéis. O custo de criar um papel depende mais do limite com os vizinhos do que do papel em si.
Um único revisor
SENTINEL é o único revisor de PR. Isso evita uma falha possível: dois revisores acharem que o outro conferiu a parte difícil. Com um revisor, alguém fica responsável pela conferência.
O custo é concentrar tudo em um só lugar. Se SENTINEL tiver um ponto cego, todos os PRs passarão por ele. Prefiro esse risco ao outro. Um ponto cego único pode ser corrigido em um lugar. É mais difícil localizar uma responsabilidade dividida.
Se o número de agentes crescer de novo, farei uma pergunta antes de criar outro. Qual das seis responsabilidades ele vai assumir, e de quem?
