Acabei de descobrir como automatizar ainda mais o fluxo de trabalho dos meus agentes com alguns truques do tmux. Agora que estou usando meu projeto de e-mail do agente MCP para fazer com que vários agentes se comuniquem entre si sobre a implementação de um plano (e também coordenando o uso do projeto Beads para gerenciamento de tarefas), ainda preciso "alimentar" os agentes enfileirando várias mensagens no Codex para mantê-los ocupados. Isso envolve percorrer, um por um, os vários painéis do tmux (um para cada instância do Codex) e colar algumas mensagens predefinidas ou pressionar a seta para cima algumas vezes para reutilizar mensagens anteriores, como: "Escolha a próxima tarefa que você possa realmente realizar de forma útil agora e comece a programá-la imediatamente; comunique o que você está fazendo aos outros agentes por meio de mensagem de agente." Parece um pouco ridículo e ineficiente fazer isso, embora não demore muito para dar a cada agente instruções suficientes para mantê-los ocupados por mais de uma hora. Mas agora percebi que posso enfileirar automaticamente várias mensagens em todos os painéis relevantes do tmux de uma só vez, simplesmente copiando e colando isso no console fora da sessão do tmux (isso foi testado e funciona no zsh): --- PANES=(${(f)"$(tmux list-pans -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) para cada painel em $PANES; faça tmux send-keys -t $pane -l 'escolha a próxima tarefa que você possa realmente executar de forma útil agora e comece a programá-la imediatamente; comunique o que você está fazendo aos outros agentes por meio de e-mail.' sono 0,1 tmux send-keys -t $pane Enter para i em {1..4}; faça tmux send-keys -t $pane -l 'continue, fazendo um trabalho útil! e comunique-se!' sono 0,1 tmux send-keys -t $pane Enter feito tmux send-keys -t $pane -l 'Ótimo, agora quero que você leia atentamente todo o código novo que acabou de escrever e o código existente que acabou de modificar com "olhos frescos", procurando com muita atenção por quaisquer bugs, erros, problemas, questões, confusões, etc. óbvios.' sono 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Certifique-se de verificar seu e-mail de agente e responder prontamente a quaisquer mensagens, se necessário; em seguida, prossiga meticulosamente com o plano, realizando todas as suas tarefas inacabadas restantes sistematicamente e continuando a anotar seu progresso diretamente no documento do plano, por meio de beads e por meio de mensagens de e-mail de agente. Não fique preso no "purgatório da comunicação", onde nada é feito; seja proativo ao iniciar as tarefas que precisam ser feitas, mas informe seus colegas agentes por meio de mensagens quando o fizer e anote isso diretamente no documento do plano. Quando você realmente não tiver certeza do que fazer, escolha o próximo bead em que você possa trabalhar de forma útil e comece.' sono 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok, agora você pode se concentrar em revisar o código escrito por seus colegas agentes e verificar se há problemas, bugs, erros, ineficiências, problemas de segurança, problemas de confiabilidade etc., e diagnosticar cuidadosamente suas causas raízes usando análise de primeiros princípios e, em seguida, corrigi-los ou revisá-los, se necessário? Não se limite aos commits mais recentes, amplie sua análise e aprofunde-se bastante!' sono 0,1 tmux send-keys -t $pane Enter feito --- Este script: Obtém os painéis: Encontra todos os painéis do tmux, excluindo os dois primeiros e os dois últimos. Envia 8 mensagens para cada painel selecionado: "Escolha a próxima conta..." - Indica aos agentes que comecem a trabalhar na próxima tarefa "Continue..." × 4 - incentivo repetido para continuar trabalhando "Leia atentamente..." - instrui uma nova revisão de código. "Verificar e-mail do agente..." - mensagem longa sobre coordenação, como evitar a paralisia da comunicação e manter a produtividade. "Revisar o código escrito por outros agentes..." - revisão de código por pares para identificar bugs/problemas Cada mensagem é enviada literalmente (opção -l) com um atraso de 0,1 segundo antes da tecla Enter para garantir que a CLI do Codex as processe corretamente.
Na verdade, existe uma maneira melhor de fazer isso, filtrando pelo nome do painel (no meu caso, "node" para os painéis do Codex), e isso inclui um intervalo inicial de 0,1 segundo, sem o qual o primeiro painel correspondente é ignorado, sem que as mensagens sejam enviadas corretamente: PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P #{pane_current_command}' | rg ' node$' | cut -d' ' -f1)"}) para cada painel em $PANES; faça sleep 0.1 # Suspensão inicial para garantir que o painel esteja pronto tmux send-keys -t $pane -l 'escolha a próxima tarefa que você possa realmente executar de forma útil agora e comece a programá-la imediatamente; comunique o que você está fazendo aos outros agentes por meio de e-mail.' sono 0,1 tmux send-keys -t $pane Enter para i em {1..4}; faça tmux send-keys -t $pane -l 'continue, fazendo um trabalho útil! e comunique-se!' sono 0,1 tmux send-keys -t $pane Enter feito tmux send-keys -t $pane -l 'Ótimo, agora quero que você leia atentamente todo o código novo que acabou de escrever e o código existente que acabou de modificar com "olhos frescos", procurando com muita atenção por quaisquer bugs, erros, problemas, questões, confusões, etc. óbvios.' sono 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Certifique-se de verificar seu e-mail de agente e responder prontamente a quaisquer mensagens, se necessário; em seguida, prossiga meticulosamente com o plano, realizando todas as suas tarefas inacabadas restantes sistematicamente e continuando a anotar seu progresso diretamente no documento do plano, por meio de beads e por meio de mensagens de e-mail de agente. Não fique preso no "purgatório da comunicação", onde nada é feito; seja proativo ao iniciar as tarefas que precisam ser feitas, mas informe seus colegas agentes por meio de mensagens quando o fizer e anote isso diretamente no documento do plano. Quando você realmente não tiver certeza do que fazer, escolha o próximo bead em que você possa trabalhar de forma útil e comece.' sono 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok, agora você pode se concentrar em revisar o código escrito por seus colegas agentes e verificar se há problemas, bugs, erros, ineficiências, problemas de segurança, problemas de confiabilidade etc., e diagnosticar cuidadosamente suas causas raízes usando análise de primeiros princípios e, em seguida, corrigi-los ou revisá-los, se necessário? Não se limite aos commits mais recentes, amplie sua análise e aprofunde-se bastante!' sono 0,1 tmux send-keys -t $pane Enter feito
