Acabo de descubrir cómo automatizar aún más el flujo de trabajo de mis agentes con un poco de magia de tmux. Ahora que estoy usando mi proyecto de correo de agentes mcp para que un grupo de agentes se comuniquen entre sí sobre la implementación de un plan (y también para coordinar mediante el proyecto beads para la gestión de tareas), todavía necesito "alimentar" a los agentes poniendo en cola un montón de mensajes en codex para mantenerlos ocupados. Esto implica ir uno por uno por los distintos paneles de tmux (uno por cada instancia del códice) y pegar algunos mensajes predefinidos o pulsar la flecha hacia arriba varias veces para reutilizar mensajes anteriores, como por ejemplo: "Elige la siguiente cuenta que puedas usar de forma útil ahora mismo y empieza a programar en ella inmediatamente; comunica lo que estás haciendo a los demás agentes mediante correo electrónico." Resulta un poco absurdo e ineficiente hacer esto, aunque no se tarda mucho en dar a cada agente las instrucciones suficientes para mantenerlos ocupados durante más de una hora. Pero ahora me he dado cuenta de que puedo encolar automáticamente un montón de mensajes en todos los paneles relevantes de tmux a la vez, simplemente copiando y pegando esto en la consola fuera de la sesión de 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 panel en $PANES; hacer tmux send-keys -t $pane -l 'Elige la siguiente cuenta que puedas usar de forma útil ahora y empieza a programar en ella inmediatamente; comunica lo que estás haciendo a los demás agentes mediante correo electrónico.' dormir 0.1 tmux send-keys -t $pane Enter para i en {1..4}; hacer tmux send-keys -t $pane -l '¡Sigue así, haciendo trabajo útil! ¡Y comunícate!' dormir 0.1 tmux send-keys -t $pane Enter hecho tmux send-keys -t $pane -l 'Genial, ahora quiero que revises cuidadosamente todo el código nuevo que acabas de escribir y el código existente que acabas de modificar, con una mirada fresca, buscando con mucha atención cualquier error, problema, duda, confusión, etc.' dormir 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Asegúrate de revisar tu correo de agente y responder con prontitud a cualquier mensaje si es necesario; después, procede meticulosamente con el plan, realizando sistemáticamente todas las tareas pendientes y anotando tu progreso directamente en el documento del plan, mediante cuentas y mensajes de correo de agente. No te quedes atascado en un "purgatorio de comunicación" donde no se hace nada; toma la iniciativa para comenzar las tareas que deben hacerse, pero informa a tus compañeros agentes mediante mensajes cuando lo hagas y anótalo directamente en el documento del plan. Cuando no estés seguro de qué hacer, elige la siguiente cuenta en la que puedas trabajar de forma útil y comienza.' dormir 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok ¿Podrías ahora dedicar tu atención a revisar el código escrito por tus compañeros agentes y comprobar si hay problemas, fallos, errores, ineficiencias, problemas de seguridad, problemas de fiabilidad, etc., y diagnosticar cuidadosamente sus causas raíz subyacentes utilizando un análisis de primeros principios y, posteriormente, corregirlos o revisarlos si es necesario? ¡No te limites a las últimas confirmaciones, amplía tu búsqueda y profundiza al máximo!' dormir 0.1 tmux send-keys -t $pane Enter hecho --- Este guion: Obtiene los paneles: Encuentra todos los paneles de tmux, excluyendo los 2 primeros y los 2 últimos. Envía 8 mensajes a cada panel seleccionado: "escoge la siguiente cuenta..." - Indica a los agentes que comiencen a trabajar en la siguiente tarea "Sigue adelante..." × 4 - ánimo repetido para continuar trabajando "Lea atentamente..." - indica una nueva revisión del código. «Revisa el correo del agente...» - Mensaje extenso sobre coordinación, cómo evitar la parálisis comunicativa y cómo mantener la productividad. "Revisión del código escrito por otros agentes..." - Revisión de código entre pares para detectar errores/problemas Cada mensaje se envía literalmente (bandera -l) con un retraso de 0,1 segundos antes de Enter para garantizar que la CLI de Codex los procese correctamente.
En realidad, esta es una mejor manera de hacerlo, filtrando por el nombre del panel (en mi caso, es "nodo" para los paneles del códice), y tiene una pausa inicial de 0,1 segundos, sin la cual omite el primer panel coincidente sin enviar los mensajes correctamente: PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P #{pane_current_command}' | rg ' node$' | cut -d' ' -f1)"}) para panel en $PANES; hacer sleep 0.1 # Pausa inicial para asegurar que el panel esté listo tmux send-keys -t $pane -l 'Elige la siguiente cuenta que puedas usar de forma útil ahora y empieza a programar en ella inmediatamente; comunica lo que estás haciendo a los demás agentes mediante correo electrónico.' dormir 0.1 tmux send-keys -t $pane Enter para i en {1..4}; hacer tmux send-keys -t $pane -l '¡Sigue así, haciendo trabajo útil! ¡Y comunícate!' dormir 0.1 tmux send-keys -t $pane Enter hecho tmux send-keys -t $pane -l 'Genial, ahora quiero que revises cuidadosamente todo el código nuevo que acabas de escribir y el código existente que acabas de modificar, con una mirada fresca, buscando con mucha atención cualquier error, problema, duda, confusión, etc.' dormir 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Asegúrate de revisar tu correo de agente y responder con prontitud a cualquier mensaje si es necesario; después, procede meticulosamente con el plan, realizando sistemáticamente todas las tareas pendientes y anotando tu progreso directamente en el documento del plan, mediante cuentas y mensajes de correo de agente. No te quedes atascado en un "purgatorio de comunicación" donde no se hace nada; toma la iniciativa para comenzar las tareas que deben hacerse, pero informa a tus compañeros agentes mediante mensajes cuando lo hagas y anótalo directamente en el documento del plan. Cuando no estés seguro de qué hacer, elige la siguiente cuenta en la que puedas trabajar de forma útil y comienza.' dormir 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok ¿Podrías ahora dedicar tu atención a revisar el código escrito por tus compañeros agentes y comprobar si hay problemas, fallos, errores, ineficiencias, problemas de seguridad, problemas de fiabilidad, etc., y diagnosticar cuidadosamente sus causas raíz subyacentes utilizando un análisis de primeros principios y, posteriormente, corregirlos o revisarlos si es necesario? ¡No te limites a las últimas confirmaciones, amplía tu búsqueda y profundiza al máximo!' dormir 0.1 tmux send-keys -t $pane Enter hecho
