Rubriques tendance
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Je viens de découvrir comment automatiser encore plus mon flux de travail d'agent avec un peu de magie tmux.
Maintenant que j'utilise mon projet d'agent mail mcp pour faire communiquer un tas d'agents entre eux sur la mise en œuvre d'un plan (et aussi en coordonnant avec le projet beads pour la gestion des tâches), j'ai encore besoin de "nourrir" les agents en mettant en file d'attente un tas de messages dans codex pour les occuper.
Cela implique de passer un par un à travers les différents panneaux tmux (un pour chaque instance de codex) et de coller quelques messages préenregistrés ou d'appuyer plusieurs fois sur la flèche vers le haut pour réutiliser des messages passés, tels que :
"Choisissez le prochain bead que vous pouvez réellement utiliser utilement maintenant et commencez à coder dessus immédiatement ; communiquez ce que vous faites aux autres agents via l'agent mail."
Cela semble un peu ridicule et inefficace de faire cela, même si cela ne prend pas beaucoup de temps pour donner à chaque agent suffisamment d'instructions pour les occuper pendant plus d'une heure.
Mais maintenant, j'ai réalisé que je peux automatiquement mettre en file d'attente un tas de messages dans chaque panneau tmux pertinent en même temps, simplement en copiant et collant cela dans la console en dehors de la session tmux (c'est testé et fonctionne dans zsh) :
---
PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"})
for pane in $PANES; do
tmux send-keys -t $pane -l 'choisissez le prochain bead que vous pouvez réellement utiliser utilement maintenant et commencez à coder dessus immédiatement ; communiquez ce que vous'"'"'faites aux autres agents via l'agent mail.'
sleep 0.1
tmux send-keys -t $pane Enter
for i in {1..4}; do
tmux send-keys -t $pane -l 'continuez, faites un travail utile ! et communiquez !'
sleep 0.1
tmux send-keys -t $pane Enter
done
tmux send-keys -t $pane -l 'super, maintenant je veux que vous relisiez soigneusement tout le nouveau code que vous venez d'écrire et tout autre code existant que vous venez de modifier avec des "yeux neufs" en cherchant très attentivement des bugs, erreurs, problèmes, confusions, etc.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'Assurez-vous de vérifier votre agent mail et de répondre rapidement si nécessaire à tout message ; ensuite, procédez méticuleusement avec le plan, en effectuant toutes vos tâches inachevées de manière systématique et en continuant à noter vos progrès dans le document de plan, via beads, et via des messages d'agent mail. Ne vous laissez pas piéger dans "le purgatoire de la communication" où rien n'est fait ; soyez proactif en commençant les tâches qui doivent être faites, mais informez vos collègues agents via des messages lorsque vous le faites et notez cela dans le document de plan. Lorsque vous n'êtes vraiment pas sûr de ce qu'il faut faire, choisissez le prochain bead sur lequel vous pouvez travailler utilement et commencez.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'ok pouvez-vous maintenant vous concentrer sur la révision du code écrit par vos collègues agents et vérifier s'il y a des problèmes, bugs, erreurs, problèmes, inefficacités, problèmes de sécurité, problèmes de fiabilité, etc. et diagnostiquer soigneusement leurs causes profondes en utilisant une analyse par premiers principes et ensuite les corriger ou les réviser si nécessaire ? Ne vous limitez pas aux derniers commits, élargissez votre champ d'action et allez très en profondeur !'
sleep 0.1
tmux send-keys -t $pane Enter
done
---
Ce script :
Obtient les panneaux : Trouve tous les panneaux tmux, en excluant les 2 premiers et les 2 derniers
Envoie 8 messages à chaque panneau sélectionné :
"choisissez le prochain bead..."
- dit aux agents de commencer à travailler sur la prochaine tâche
"continuez..." × 4 - encouragement répété à continuer à travailler
"relisez soigneusement..." - instruction pour une révision de code frais
"vérifiez l'agent mail..." - long message sur la coordination, évitant la paralysie de communication, restant productif
"révisez le code écrit par les collègues agents..." - révision de code par les pairs pour bugs/problèmes
Chaque message est envoyé littéralement (-l flag) avec un délai de 0,1 seconde avant Enter pour s'assurer que le CLI Codex les traite correctement.

Actually, this is a better way to do it, by filtering on the name of the pane (in my case, it's "node" for the codex panes), and it has the initial 0.1 second sleep, without which it skips the first matching pane without sending the messages correctly:
PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P #{pane_current_command}' | rg ' node$' | cut -d' ' -f1)"})
for pane in $PANES; do
sleep 0.1 # Initial sleep to ensure pane is ready
tmux send-keys -t $pane -l 'pick the next bead you can actually do usefully now and start coding on it immediately; communicate what you'"'"'re doing to the other agents via agent mail.'
sleep 0.1
tmux send-keys -t $pane Enter
for i in {1..4}; do
tmux send-keys -t $pane -l 'keep going, doing useful work! and communicate!'
sleep 0.1
tmux send-keys -t $pane Enter
done
tmux send-keys -t $pane -l 'great, now I want you to carefully read over all of the new code you just wrote and other existing code you just modified with "fresh eyes" looking super carefully for any obvious bugs, errors, problems, issues, confusion, etc.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'Be sure to check your agent mail and to promptly respond if needed to any messages; thereafter proceed meticulously with the plan, doing all of your remaining unfinished tasks systematically and continuing to notate your progress in-line in the plan document, via beads, and via agent mail messages. Don'"'"'t get stuck in "communication purgatory" where nothing is getting done; be proactive about starting tasks that need to be done, but inform your fellow agents via messages when you do so and notate that in-line in the plan document. When you'"'"'re really not sure what to do, pick the next bead that you can usefully work on and get started.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'ok can you now turn your attention to reviewing the code written by your fellow agents and checking for any issues, bugs, errors, problems, inefficiencies, security problems, reliability issues, etc. and carefully diagnose their underlying root causes using first-principle analysis and thereafter fix or revise them if necessary? Dont restrict yourself to the latest commits, cast a wider net and go super deep!'
sleep 0.1
tmux send-keys -t $pane Enter
done
Vous pourriez avoir besoin d'augmenter le temps de sommeil si votre machine est lente. Je déteste à quel point tout cela est capricieux ; je vais trouver un moyen plus fiable de faire cela.
26,97K
Meilleurs
Classement
Favoris

