Acabo de descubrir cómo automatizar realmente el flujo de trabajo de mi agente aún más con un poco de magia tmux. Ahora que estoy usando mi proyecto de correo de agente mcp para que un grupo de agentes hablen entre sí sobre la implementación de un plan (y también coordinando el uso del proyecto de cuentas para la gestión de tareas), todavía necesito "alimentar" a los agentes poniendo en cola un montón de mensajes en el códice para mantenerlos ocupados. Esto implica ir uno por uno a través de los diversos paneles tmux (uno para cada instancia del códice) y pegar algunos mensajes enlatados o presionar la flecha hacia arriba varias veces para reutilizar mensajes anteriores, como: "Elija la próxima cuenta que realmente pueda hacer de manera útil ahora y comience a codificarla de inmediato; Comunique lo que está haciendo a los otros agentes a través del correo del agente". Se siente un poco tonto e ineficiente hacer esto, aunque no lleva tanto tiempo darle a cada agente suficientes instrucciones para mantenerlos ocupados durante más de una hora. Pero ahora me di cuenta de que puedo poner en cola automáticamente un montón de mensajes en cada panel tmux relevante a la vez, simplemente copiando y pegando esto en la consola fuera de la sesión tmux (esto está probado y funciona en zsh): --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) para el panel en $PANES; hacer tmux send-keys -t $pane -l 'elija la siguiente cuenta que pueda hacer de manera útil ahora y comience a codificar en ella de inmediato; Comunique lo que está haciendo a los otros agentes a través del correo del agente. sueño 0.1 tmux send-keys -t $pane Entrar para i en {1..4}; hacer tmux send-keys -t $pane -l '¡Sigue adelante, haciendo un trabajo útil! y comunícate!' sueño 0.1 tmux send-keys -t $pane Entrar hecho tmux send-keys -t $pane -l 'genial, ahora quiero que leas cuidadosamente todo el código nuevo que acabas de escribir y otro código existente que acabas de modificar con "ojos nuevos" mirando con mucho cuidado cualquier error obvio, errores, problemas, problemas, confusión, etc.' sueño 0.1 tmux send-keys -t $pane Entrar tmux send-keys -t $pane -l 'Asegúrese de revisar el correo de su agente y responder rápidamente si es necesario a cualquier mensaje; A partir de entonces, proceda meticulosamente con el plan, haciendo todas sus tareas pendientes restantes sistemáticamente y continuando anotando su progreso en línea en el documento del plan, a través de cuentas y mensajes de correo del agente. No se quede atrapado en el "purgatorio de la comunicación" donde no se hace nada; Sea proactivo al iniciar las tareas que deben realizarse, pero informe a sus compañeros agentes a través de mensajes cuando lo haga y anótelo en línea en el documento del plan. Cuando realmente no esté seguro de qué hacer, elija la siguiente cuenta en la que pueda trabajar de manera útil y comience. sueño 0.1 tmux send-keys -t $pane Entrar tmux send-keys -t $pane -l 'ok ¿Puede ahora centrar su atención en revisar el código escrito por sus compañeros agentes y verificar si hay problemas, errores, ineficiencias, problemas de seguridad, problemas de confiabilidad, etc. y diagnosticar cuidadosamente sus causas subyacentes utilizando el análisis de principios básicos y, a continuación, corregirlos o revisarlos si es necesario? ¡No te limites a los últimos compromisos, lanza una red más amplia y profundiza mucho!' sueño 0.1 tmux send-keys -t $pane Entrar hecho --- Este script: Obtiene paneles: busca todos los paneles de tmux, excepto los 2 primeros y los 2 últimos Envía 8 mensajes a cada panel seleccionado: "Elige la siguiente cuenta..." - Les dice a los agentes que comiencen a trabajar en la siguiente tarea "sigue adelante..." × 4 - estímulo repetido para seguir trabajando "leer cuidadosamente..." - instruye una nueva revisión de código "revisar el correo del agente..." - mensaje largo sobre la coordinación, evitar la parálisis de la comunicación, mantenerse productivo "Revisar código escrito por otros agentes..." - Revisión de código por pares para errores/problemas Cada mensaje se envía literalmente (indicador -l) con un retraso de 0,1 segundos antes de Enter para garantizar que la CLI de Codex los procese correctamente.
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
Es posible que deba aumentar el tiempo de suspensión si su máquina es lenta. Odio lo quisquilloso que es todo; Voy a encontrar una forma más confiable de hacer esto.
26.62K