Como os desenvolvedores executam vários agentes de programação com IA usando o tmux?

Desenvolvedores que executam vários agentes de programação com IA ao mesmo tempo estão recorrendo ao tmux, um multiplexador de terminal que existe desde 2007, para manter esses agentes em execução. A ferramenta permite que cada agente funcione em uma sessão nomeada que continua ativa após uma janela de terminal ser fechada, uma conexão SSH cair ou um notebook entrar em suspensão. Um guia detalhado sobre a prática afirma que essa combinação é o motivo pelo qual as pessoas utilizam a ferramenta.

O guia aponta que versões recentes do Claude Code podem cuidar de parte da configuração. Executar claude --worktree --tmux cria um novo worktree do git e uma sessão tmux para ele, e um nome pode ser adicionado ao worktree. A opção --tmux só funciona em conjunto com --worktree, ou seja, trata-se de um recurso de worktree que, por acaso, cria uma sessão. No iTerm2, a opção usa painéis nativos em vez do tmux por padrão. Usuários que querem o tmux real por trás precisam passar --tmux=classic, o que o guia recomenda para quem pretende automatizar scripts na sessão.

Além desse caso de agente único, segundo o guia, os usuários precisam montar o restante por conta própria. A abordagem usual é ter uma sessão tmux por repositório, nomeada com o nome do projeto, em vez de uma por tarefa ou por agente. As tarefas vão e vêm, argumentam os autores, enquanto o projeto permanece constante. Uma função de shell que encapsula o comando de anexar ou criar sessão permite que o desenvolvedor execute a mesma linha repetidamente sem criar sessões duplicadas.

Controlando agentes a partir de fora

Como scripts controlam agentes de programação com IA no tmux?

Dois comandos do tmux fazem a maior parte do trabalho. O primeiro, send-keys, digita texto em um painel em execução como se alguém estivesse diante do teclado. Isso permite que um cron job, um hook do git ou outro agente envie um prompt a um agente em execução. O segundo, capture-pane, extrai o conteúdo de um painel para que um script possa ler de volta a saída do agente.

O guia destaca vários problemas que pegam as pessoas de surpresa. Palavras como Enter, C-c e Escape são interpretadas como pressionamentos de tecla, a menos que o texto seja enviado com a opção literal, e a quebra de linha precisa então ser enviada em uma chamada separada. Um ponto e vírgula no prompt encerra o comando do tmux, a menos que seja escapado. As caixas de entrada dos agentes também podem descartar um Enter que chega no mesmo instante que o texto, por isso o guia sugere uma pausa curta de cerca de 0,3 segundo entre os dois.

Desenvolvedores que querem um registro contínuo, e não um instantâneo, podem usar pipe-pane para transmitir a saída de um painel para um arquivo. A saída bruta inclui sequências de escape do terminal, por isso o guia recomenda removê-las antes de ler os registros depois.

Onde o tmux para

Quais são os limites do tmux para agentes de programação com IA?

O guia lista várias lacunas do tmux quando usado em trabalho com agentes. O tmux não consegue determinar se um agente está aguardando aprovação, pensando ou finalizado, já que os três estados aparecem como um painel com texto. Desenvolvedores criaram scripts de barra de status que vasculham a tela em busca de frases como "esc to interrupt" para estimar o estado do agente. O guia afirma que esses scripts são frágeis, pois dependem do texto que o agente exibe em cada versão. Uma opção mais simples, a configuração monitor-silence, emite um alerta quando um painel fica sem atividade, mas o silêncio não confirma que o agente terminou. Um agente que processa um arquivo grande também pode ficar em silêncio.

Outros limites envolvem memória e persistência. Buffers de rolagem grandes em muitos painéis consomem memória real enquanto o servidor estiver em execução. As sessões não sobrevivem a uma reinicialização, e o histórico de rolagem desaparece quando o servidor tmux é encerrado. Dois agentes em sessões separadas também não conseguem ver o trabalho um do outro sem ferramentas personalizadas baseadas em arquivos.

O guia termina recomendando que os leitores mantenham o tmux para máquinas remotas, processos de servidor de longa duração e casos em que uma conexão SSH instável é a principal preocupação. Também promove o crystl, um terminal para macOS que, segundo o guia, foi criado para executar muitos agentes ao mesmo tempo. De acordo com o guia, o crystl exibe as solicitações de aprovação como cards, mostra o estado de cada sessão em um único painel, salva a saída dos agentes como registros estruturados e usa worktrees do git para isolar sessões no mesmo repositório. O guia apresenta esses recursos como respostas às limitações do tmux que descreve, e as alegações vêm dos próprios autores do guia, não de testes independentes.

Questo articolo è stato scritto con l'assistenza dell'IA.
News Factory APP - notizie agentiche per potenziare il tuo SEO e AEO.