Vários agentes de IA num só quadro: um guia de campo
Como rodar Claude Code, Codex e ChatGPT num só quadro sem trabalho duplicado: contrato de tarefa, claims atômicos, leases e uma única fila de revisão.
O Weft é o gerenciador de tarefas com IA para fundadores solo e pequenas equipes.
Por Andrei Finogeev ·
Sim, dois ou três clientes de IA podem dividir um quadro, desde que o quadro decida quem é dono de cada tarefa. No Weft, Claude Code, Codex e ChatGPT se conectam todos ao mesmo endpoint MCP. Cada um assume uma tarefa com start_task, mantém o claim vivo com sinais de vida e devolve um comprovante. Se dois clientes forem atrás do mesmo cartão, o segundo recebe already_claimed, e ninguém faz o trabalho duas vezes.
Nós fazemos o Weft. Os fatos sobre outros produtos vêm das páginas oficiais deles, verificadas em 27 de outubro de 2026.
Este guia é para quem está fundando sozinho ou para uma pequena equipe rodando dois ou três clientes de IA que vivem pisando no pé uns dos outros.
Quando um segundo agente ajuda de verdade?
Mais agentes não deixam o trabalho mais rápido por padrão. Eles ajudam quando o trabalho se divide em pedaços que não se tocam, e atrapalham quando dividem arquivos, um banco de testes ou uma decisão que ninguém tomou ainda.
| Situação | Um agente ou vários? | Por quê |
|---|---|---|
| Uma funcionalidade num repositório, terminada de uma vez | Um agente (com os seus próprios subagentes, se ele tiver) | Um contexto guarda tudo; um quadro só acrescenta trabalho |
| Duas correções independentes em áreas separadas do código | Dois agentes, em branches ou worktrees separados | Sem arquivos compartilhados, o único risco é pegarem o mesmo cartão |
| Planejamento e triagem no ChatGPT, código num agente de terminal | Dois clientes, trabalhos diferentes | O ChatGPT escreve e organiza as tarefas; o agente de código as assume |
| Vários agentes esperando a mesma decisão de produto | Um agente, depois que você decidir | Agentes em paralelo vão chutar cada um de um jeito |
Se você não entregaria duas tarefas a duas pessoas sem conversar antes, não as entregue a dois agentes.
O que uma tarefa precisa dizer antes que um agente possa pegá-la?
Agentes levam a tarefa ao pé da letra e raramente perguntam. Antes de um cartão sair do Backlog, dê a ele:
- Um resultado que dá para conferir. Não "melhorar o onboarding", e sim "adicionar um estado vazio à página de projetos com um botão de criar".
- Escopo. Quais arquivos, páginas ou sistemas ele pode mexer, e o que está fora dos limites.
- Um teste de pronto. O teste, o build ou a URL que mostra que funcionou.
- A evidência que você quer de volta. Um link de pull request, um hash de commit, uma URL publicada.
- Onde ele para. Qualquer coisa irreversível (publicação, produção, dinheiro) deve terminar numa pergunta a você, não numa ação.
As colunas padrão do Weft são Backlog, Todo, Doing e Done. Uma convenção simples funciona bem: só os cartões em Todo estão prontos para serem assumidos. Os projetos mantêm um repositório ou um cliente separado do resto.
O que acontece quando dois agentes chamam start_task no mesmo cartão?
Mover um cartão para Doing não é uma trava: dois agentes podem ler o mesmo cartão em Todo e os dois começam. Por isso, no Weft, a trava é o próprio claim.
Uma chamada start_task é um único insert no banco de dados, protegido por um índice único, então quem decide quem ganha é o banco. O vencedor recebe um runId e um leaseToken, e o cartão vai para Doing. O perdedor recebe already_claimed com o id da tarefa, o título e uma dica para não duplicar o trabalho. Não importa que um cliente seja um agente de terminal e o outro um app de chat.
Para um agente, already_claimed é uma resposta normal, não um erro. O certo é chamar get_my_work de novo e pegar o próximo cartão. Descrevemos o ciclo completo em o ciclo de claim, sinal de vida e comprovante.
Como funcionam os sinais de vida e o lease de 20 minutos?
Um claim é um lease, não uma atribuição permanente. start_task dá um lease de 20 minutos e diz ao agente para renovar a cada 300 segundos. O agente renova chamando report_progress com o seu runId e o seu leaseToken. Se o agente perdeu o lease nesse meio-tempo, a chamada retorna lease_lost, e ele deve parar em vez de continuar editando.
Quando uma sessão morre, não sobra ninguém para avisar. O silêncio é o único sinal que o quadro recebe, então o Weft trata o silêncio como o sinal:
- Depois de 20 minutos sem sinal de vida, a execução é marcada como parada, o token é apagado e a tarefa volta a ficar sem responsável.
- Uma varredura roda a cada 10 minutos, e uma tarefa parada também é liberada na hora quando outro cliente tenta assumi-la.
- Enquanto um agente espera a resposta a uma pergunta para você, ele mantém a tarefa por 60 minutos. Depois disso o lease cai, mas a pergunta continua aberta.
Sinais de vida são chamadas de ferramenta. Uma tarefa de 40 minutos com um sinal a cada 5 minutos gasta cerca de 8 chamadas com eles, e o Free tem 200 chamadas por mês, então três agentes diários vão ultrapassá-lo. O Pro não tem limite de chamadas.
Como o quadro sabe qual agente fez o quê?
Cada cliente OAuth que entra no Weft é um ator próprio. Claude Code, Codex e ChatGPT se registram separadamente, e o quadro mostra o nome com que cada cliente se registrou. Cada evento do histórico registra qual cliente o gerou.
Clientes sem OAuth podem usar um token de acesso pessoal; cada token também é um ator próprio, mas tokens não têm escopos (tokens de acesso). Os direitos são definidos por conexão OAuth:
- full (o padrão): as 32 ferramentas.
- write: tudo menos as três ferramentas destrutivas (lixeira, arquivar, concluir sprint).
- read: só as 11 ferramentas somente leitura.
Uma divisão sensata: agentes de código em write, qualquer coisa experimental em read. Desconectar um cliente revoga os tokens dele sem mexer nos outros. O Weft emite refresh tokens, então um cliente conectado renova o próprio login.
Identidade no quadro não é isolamento no disco. Dois agentes com nomes diferentes ainda podem sobrescrever um ao outro no mesmo checkout. Dê a cada agente de código o seu próprio branch ou worktree.
Onde o trabalho concluído vai parar, e quanto pode ficar esperando por você?
Por padrão, uma tarefa concluída vai direto para Done. Ela para na sua Caixa de entrada quando precisa de revisão ou quando uma verificação falha. Ali você escolhe Aceitar, Retrabalhar, Depois ou Descartar. Retrabalhar pede uma observação. As perguntas de request_input caem na mesma Caixa de entrada e no seu celular como push, então você tem um só lugar para olhar, seja qual for o agente que perguntou.
O comprovante de complete_task traz um resultado, artefatos que você pode conferir, o que não foi feito, os pontos desconhecidos e um nextStep. O nextStep aparece acima do botão Aceitar, então aceitar aprova exatamente esse passo. Mais em o que o meu agente de IA fez.
A Caixa de entrada tem um limite, e com vários agentes você vai esbarrar nele. Ela comporta 5 itens num workspace de uma pessoa e 10 num time, ou 45 minutos de revisão estimada, o que vier primeiro. Perguntas contam. Quando ela está cheia, start_task recusa com attention_queue_full e diz ao agente o que ele ainda pode fazer, como reportar progresso ou ler o quadro. Três agentes conseguem produzir trabalho mais rápido do que uma pessoa consegue revisar; o limite impede que eles empilhem resultados que você nunca vai ler.
O que quebra, e como se recuperar?
| Falha | O que você vê | O que o Weft faz | O que você faz |
|---|---|---|---|
| Dois clientes começam a mesma tarefa | Um cartão em Doing, um cliente recebe already_claimed | O banco deixa um claim vencer; o outro é recusado | Nada, se o agente que perdeu seguir em frente. Se ele continuou trabalhando mesmo assim, aperte as instruções dele |
| Uma sessão trava ou o notebook entra em suspensão | Um cartão em Doing sem progresso | Depois de 20 minutos sem sinal de vida, a execução fica parada e a tarefa volta a ficar sem responsável | Confira o branch atrás de trabalho parcial antes que outro agente a pegue |
| Um agente termina, mas nunca chama complete_task | Trabalho com merge feito, cartão ainda em Doing | O lease expira; a tarefa é liberada, não fechada | Feche você mesmo ou peça a um agente para concluí-la com as evidências |
| Um agente precisa de uma decisão que só você pode tomar | Uma pergunta na sua Caixa de entrada, talvez um push | O claim é mantido por 60 minutos; a resposta chega ao agente no próximo start_task ou get_my_work | Responda com uma das opções que ele deu |
| Coisa demais esperando por você | Uma Caixa de entrada cheia | start_task recusa com attention_queue_full | Revise ou descarte itens; os agentes podem voltar a começar conforme a fila esvazia |
| Dois agentes editam o mesmo checkout | Mudanças sem relação misturadas num só diff | Nada; o Weft não vê os seus arquivos | Separe worktrees ou branches antes de rodar agentes em paralelo |
Como configurar dois ou três clientes?
Os três se conectam ao mesmo endpoint e entram pelo navegador, sem chave para copiar.
# Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcp
# Codex: add to ~/.codex/config.toml, then sign in
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"
codex mcp login weftO ChatGPT se conecta pelo app do Weft no diretório dele, em todos os planos, inclusive o Free. Páginas passo a passo: Claude Code, Codex, ChatGPT, Cursor (instalação com um clique). O login segue a especificação de autorização do MCP.
O ChatGPT funciona por turnos: ele age enquanto você está na conversa. Ele serve para planejar, escrever tarefas e responder perguntas. Execuções longas de código combinam mais com um agente de terminal, porque um sinal de vida a cada poucos minutos exige uma sessão que continue rodando.
Como é um teste de uma semana?
- Dia 1: conecte dois clientes. Claude Code e Codex, ou um agente de código mais o ChatGPT. Deixe os agentes de código com direitos de write.
- Dias 1–2: escreva de cinco a dez tarefas seguindo o contrato acima. Um resultado, escopo, teste de pronto, evidência. Deixe-as em Todo. Se você já tem tarefas no Linear, no Jira, no Notion ou no Trello, importe-as primeiro; a importação é grátis em todos os planos.
- Dias 2–5: rode os dois agentes na mesma fila de Todo, cada um no seu worktree, cada um instruído a assumir com start_task e terminar com complete_task e artefatos.
- Dia 5: teste a falha de propósito. Aponte os dois agentes para o mesmo cartão e veja um deles receber already_claimed. Mate uma sessão no meio da tarefa e confira se o cartão fica livre de novo depois de 20 minutos.
- Dia 7: audite só pelo quadro. Alguma tarefa rodou duas vezes ou ficou em Doing depois de terminada? Você conseguiu conferir cada resultado pelos artefatos? Ajuste o modelo de tarefa antes de adicionar um terceiro agente.
Como isso se compara à abordagem do Hypertask?
O modelo de lease do Hypertask é sólido: claim, sinal de vida, liberação, com prazo de validade. A diferença é onde esse modelo vive. A documentação do Hypertask lista leases de tarefas, evidências e escalação como só endpoints REST, por design, e a referência das ferramentas tem 21 ferramentas MCP sem nenhuma de lease (visão geral do MCP). No Weft, o claim, o sinal de vida, a pergunta e o comprovante são ferramentas MCP, então qualquer cliente MCP os usa sem código extra.
| Weft | Hypertask | |
|---|---|---|
| Claim e lease | Dentro do MCP: start_task, report_progress (lease de 20 minutos) | Só endpoints REST, por design (docs) |
| Ferramentas MCP | 32 | 21 (docs) |
| Login | OAuth no navegador, com refresh tokens; tokens de acesso pessoal opcionais | A configuração documentada é uma chave de API copiada que expira em 30 dias; uma conexão aprovada no navegador dura 90 dias, sem refresh (docs) |
| Identidade do agente | Cada cliente OAuth ou token é um ator próprio | Agentes como contas de serviço com identidade própria |
| Caminho no ChatGPT | App publicado no diretório do ChatGPT, em todos os planos, inclusive o Free | GPT personalizado com OpenAPI Actions ou um conector personalizado no modo desenvolvedor, segundo o Hypertask (docs) |
| CLI e API REST | Nenhuma | CLI no npm e uma API REST (docs) |
| Apps móveis | iOS e Android | Sem app nativo para iOS (web app na tela inicial); sem página no Google Play (docs) |
| Idiomas | 27 | Só inglês |
| Preço por assento | Free: 50 tarefas, 200 chamadas de IA por mês. Pro: R$ 39 por mês ou R$ 329 por ano | Free: 3 quadros por pessoa. BYOK US$ 8 no anual / US$ 10 no mensal. Pro US$ 16 no anual / US$ 20 no mensal (preços) |
| Créditos de IA | Não são necessários: o raciocínio acontece no seu próprio cliente de IA | IA embutida; o plano BYOK usa as suas próprias chaves de modelo |
O Hypertask é a melhor escolha se os seus agentes rodam a partir de scripts ou do CI e você quer uma CLI e uma API REST, se quer agentes como contas de serviço gerenciadas como usuários, ou se quer IA embutida (escrita de tarefas, smart labels, triagem), velocidade no teclado e controle de tempo. O Weft não tem CLI, nem API REST, nem webhooks, nem integração com GitHub ou Slack. O Weft se encaixa quando os seus agentes são clientes MCP que você já usa, o ChatGPT entre eles, e você quer respondê-los pelo celular.
Para uma comparação mais ampla, veja gerenciadores de tarefas com MCP comparados (em inglês) e uma alternativa ao Hypertask.
- Os meus agentes precisam conversar entre si?
- Não. Eles se coordenam pelo quadro: claims, comprovantes e perguntas. O Weft nunca chama um agente; cada um puxa a próxima tarefa com get_my_work.
- Um agente que travou vai deixar uma tarefa presa em Doing para sempre?
- Não. Depois de 20 minutos sem sinal de vida, a execução é marcada como parada e a tarefa volta a ficar sem responsável, para que outro cliente possa assumi-la. Confira antes o branch atrás de trabalho parcial.
- Três agentes não vão me soterrar de revisões?
- A Caixa de entrada tem limite de 5 itens para uma pessoa (10 para um time) ou 45 minutos de revisão; quando ela está cheia, os agentes não conseguem começar tarefas novas. A maioria das tarefas concluídas vai direto para Done.
- Rodar vários agentes custa mais?
- O Weft cobra por assento, não por agente: o Pro custa R$ 39 por mês ou R$ 329 por ano por pessoa. O plano Free limita as chamadas de IA a 200 por mês, que os sinais de vida de vários agentes consomem rápido. Veja os preços.