Je viens de découvrir comment automatiser encore plus le flux de travail de mes agents grâce à quelques astuces tmux. Maintenant que j'utilise mon projet de messagerie d'agents MCP pour permettre à un groupe d'agents de communiquer entre eux au sujet de la mise en œuvre d'un plan (et de coordonner également la gestion des tâches à l'aide du projet Beads), je dois encore « alimenter » les agents en mettant en file d'attente un certain nombre de messages dans Codex pour les occuper. Cela implique de parcourir un par un les différents panneaux tmux (un pour chaque instance de codex) et de coller des messages prédéfinis ou d'appuyer plusieurs fois sur la flèche vers le haut pour réutiliser des messages précédents, tels que : « Choisissez la prochaine tâche que vous pouvez accomplir utilement dès maintenant et commencez immédiatement à la coder ; communiquez ce que vous faites aux autres agents par courrier électronique. » Cela paraît un peu absurde et inefficace de faire cela, même s'il ne faut pas beaucoup de temps pour donner à chaque agent suffisamment d'instructions pour les occuper pendant plus d'une heure. Mais je me suis rendu compte que je pouvais mettre en file d'attente automatiquement plusieurs messages dans tous les panneaux tmux concernés, en copiant et collant simplement ceci dans la console en dehors de la session tmux (cela a été testé et fonctionne sous zsh) : --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) pour chaque panneau dans $PANES; faire tmux send-keys -t $pane -l 'choisissez la prochaine tâche que vous pouvez accomplir utilement maintenant et commencez immédiatement à coder dessus ; communiquez ce que vous faites aux autres agents via la messagerie d'agent.' dormir 0,1 tmux send-keys -t $pane Entrée pour i dans {1..4}; faire tmux send-keys -t $pane -l 'Continuez, faites du travail utile ! et communiquez !' dormir 0,1 tmux send-keys -t $pane Entrée fait tmux send-keys -t $pane -l 'Super, maintenant je veux que vous relisiez attentivement tout le nouveau code que vous venez d'écrire et le code existant que vous venez de modifier, en y regardant de plus près et en recherchant très attentivement tout bug, erreur, problème, difficulté, confusion, etc. évident.' dormir 0,1 tmux send-keys -t $pane Entrée tmux send-keys -t $pane -l 'Assurez-vous de consulter votre messagerie d'agent et de répondre rapidement à tout message si nécessaire ; ensuite, poursuivez méticuleusement le plan, en effectuant systématiquement toutes vos tâches inachevées et en continuant à consigner votre progression dans le document de plan, via les perles et par messages d'agent. Ne vous laissez pas bloquer dans une « période de communication stérile » où rien n'avance ; soyez proactif en commençant les tâches à accomplir, mais informez vos collègues agents par messages lorsque vous le faites et notez-le dans le document de plan. Lorsque vous ne savez vraiment pas quoi faire, choisissez la prochaine perle sur laquelle vous pouvez travailler utilement et commencez.' dormir 0,1 tmux send-keys -t $pane Entrée tmux send-keys -t $pane -l 'ok, pouvez-vous maintenant vous concentrer sur l'examen du code écrit par vos collègues agents et vérifier la présence de problèmes, bogues, erreurs, inefficacités, failles de sécurité, problèmes de fiabilité, etc., et en diagnostiquer soigneusement les causes profondes à l'aide d'une analyse de principes fondamentaux, puis les corriger ou les réviser si nécessaire ? Ne vous limitez pas aux derniers commits, élargissez votre champ de recherche et approfondissez votre analyse !' dormir 0,1 tmux send-keys -t $pane Entrée fait --- Ce script : Obtient les panneaux : Trouve tous les panneaux tmux, à l'exception des 2 premiers et des 2 derniers. Envoie 8 messages à chaque panneau sélectionné : « Choisis la perle suivante... » - indique aux agents de commencer à travailler sur la tâche suivante « Continuez… » × 4 - encouragement répété à poursuivre le travail « Veuillez lire attentivement… » – consignes pour une nouvelle revue de code « Vérifier le courrier de l’agent… » – Long message sur la coordination, comment éviter la paralysie de la communication et comment rester productif « Revue de code par les autres agents… » – Revue de code par les pairs pour détecter les bogues et les problèmes Chaque message est envoyé littéralement (option -l) avec un délai de 0,1 seconde avant la touche Entrée afin de garantir que l'interface de ligne de commande Codex les traite correctement.
En fait, il existe une meilleure façon de procéder, en filtrant sur le nom du panneau (dans mon cas, il s'agit de « node » pour les panneaux du codex), et elle comporte une pause initiale de 0,1 seconde, sans laquelle elle ignore le premier panneau correspondant sans envoyer correctement les messages : PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P #{pane_current_command}' | rg ' node$' | cut -d' ' -f1)"}) pour chaque panneau dans $PANES; faire sleep 0.1 # Délai initial pour s'assurer que le panneau est prêt tmux send-keys -t $pane -l 'choisissez la prochaine tâche que vous pouvez accomplir utilement maintenant et commencez immédiatement à coder dessus ; communiquez ce que vous faites aux autres agents via la messagerie d'agent.' dormir 0,1 tmux send-keys -t $pane Entrée pour i dans {1..4}; faire tmux send-keys -t $pane -l 'Continuez, faites du travail utile ! et communiquez !' dormir 0,1 tmux send-keys -t $pane Entrée fait tmux send-keys -t $pane -l 'Super, maintenant je veux que vous relisiez attentivement tout le nouveau code que vous venez d'écrire et le code existant que vous venez de modifier, en y regardant de plus près et en recherchant très attentivement tout bug, erreur, problème, difficulté, confusion, etc. évident.' dormir 0,1 tmux send-keys -t $pane Entrée tmux send-keys -t $pane -l 'Assurez-vous de consulter votre messagerie d'agent et de répondre rapidement à tout message si nécessaire ; ensuite, poursuivez méticuleusement le plan, en effectuant systématiquement toutes vos tâches inachevées et en continuant à consigner votre progression dans le document de plan, via les perles et par messages d'agent. Ne vous laissez pas bloquer dans une « période de communication stérile » où rien n'avance ; soyez proactif en commençant les tâches à accomplir, mais informez vos collègues agents par messages lorsque vous le faites et notez-le dans le document de plan. Lorsque vous ne savez vraiment pas quoi faire, choisissez la prochaine perle sur laquelle vous pouvez travailler utilement et commencez.' dormir 0,1 tmux send-keys -t $pane Entrée tmux send-keys -t $pane -l 'ok, pouvez-vous maintenant vous concentrer sur l'examen du code écrit par vos collègues agents et vérifier la présence de problèmes, bogues, erreurs, inefficacités, failles de sécurité, problèmes de fiabilité, etc., et en diagnostiquer soigneusement les causes profondes à l'aide d'une analyse de principes fondamentaux, puis les corriger ou les réviser si nécessaire ? Ne vous limitez pas aux derniers commits, élargissez votre champ de recherche et approfondissez votre analyse !' dormir 0,1 tmux send-keys -t $pane Entrée fait
