Popularne tematy
#
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.
Właśnie odkryłem, jak jeszcze bardziej zautomatyzować mój przepływ pracy agenta dzięki magii tmux.
Teraz, gdy używam mojego projektu agenta mcp mail, aby sprawić, że wiele agentów rozmawia ze sobą na temat wdrażania planu (a także koordynując przy użyciu projektu beads do zarządzania zadaniami), nadal muszę "karmić" agentów, kolejkowując wiele wiadomości w codex, aby utrzymać ich zajętych.
To polega na przechodzeniu jeden po drugim przez różne panele tmux (jeden dla każdej instancji codex) i wklejaniu kilku gotowych wiadomości lub kilkukrotnym naciskaniu strzałki w górę, aby ponownie użyć wcześniejszych wiadomości, takich jak:
"Wybierz następny bead, który możesz teraz użytecznie wykorzystać i natychmiast zacznij nad nim kodować; komunikuj, co robisz, innym agentom za pośrednictwem agenta mail."
Czuję, że to trochę głupie i nieefektywne, nawet jeśli nie zajmuje to dużo czasu, aby dać każdemu agentowi wystarczająco dużo instrukcji, aby utrzymać ich zajętych przez ponad godzinę.
Ale teraz zdałem sobie sprawę, że mogę automatycznie kolejkuować wiele wiadomości w każdym odpowiednim panelu tmux jednocześnie, po prostu kopiując i wklejając to do konsoli poza sesją tmux (to zostało przetestowane i działa w 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 'wybierz następny bead, który możesz teraz użytecznie wykorzystać i natychmiast zacznij nad nim kodować; komunikuj, co robisz, innym agentom za pośrednictwem agenta mail.'
sleep 0.1
tmux send-keys -t $pane Enter
for i in {1..4}; do
tmux send-keys -t $pane -l 'kontynuuj, wykonując użyteczną pracę! i komunikuj!'
sleep 0.1
tmux send-keys -t $pane Enter
done
tmux send-keys -t $pane -l 'świetnie, teraz chcę, abyś dokładnie przeczytał cały nowy kod, który właśnie napisałeś, oraz inny istniejący kod, który właśnie zmodyfikowałeś, z "świeżymi oczami", uważnie szukając oczywistych błędów, problemów, niejasności itp.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'Upewnij się, że sprawdzasz swoją pocztę agenta i szybko odpowiadasz, jeśli to konieczne, na jakiekolwiek wiadomości; następnie postępuj metodycznie zgodnie z planem, wykonując wszystkie pozostałe niedokończone zadania systematycznie i kontynuując notowanie swojego postępu w dokumencie planu, za pośrednictwem beads i wiadomości agenta mail. Nie utknij w "czyść komunikacyjnym", gdzie nic nie jest robione; bądź proaktywny w rozpoczynaniu zadań, które muszą być wykonane, ale informuj swoich współpracowników za pośrednictwem wiadomości, gdy to robisz, i notuj to w dokumencie planu. Kiedy naprawdę nie wiesz, co robić, wybierz następny bead, nad którym możesz użytecznie pracować i zacznij.'
sleep 0.1
tmux send-keys -t $pane Enter
tmux send-keys -t $pane -l 'ok, czy możesz teraz skupić się na przeglądaniu kodu napisanego przez swoich współpracowników i sprawdzaniu wszelkich problemów, błędów, problemów, nieefektywności, problemów z bezpieczeństwem, problemów z niezawodnością itp. i dokładnie zdiagnozować ich podstawowe przyczyny, stosując analizę pierwszych zasad, a następnie naprawić lub poprawić je, jeśli to konieczne? Nie ograniczaj się do najnowszych commitów, rzuć szerszą sieć i idź głęboko!'
sleep 0.1
tmux send-keys -t $pane Enter
done
---
Ten skrypt:
Zyskuje panele: Znajduje wszystkie panele tmux, z wyjątkiem pierwszych 2 i ostatnich 2
Wysyła 8 wiadomości do każdego wybranego panelu:
"wybierz następny bead..."
- mówi agentom, aby zaczęli pracować nad następnym zadaniem
"kontynuuj..." × 4 - powtarzające się zachęty do kontynuowania pracy
"dokładnie przeczytaj..." - instrukcja świeżej recenzji kodu
"sprawdź pocztę agenta..." - długa wiadomość o koordynacji, unikaniu paraliżu komunikacyjnego, pozostawaniu produktywnym
"przeglądaj kod napisany przez współpracowników..." - przegląd kodu w poszukiwaniu błędów/problematyk
Każda wiadomość jest wysyłana dosłownie (-l flag) z opóźnieniem 0.1 sekundy przed Enter, aby upewnić się, że CLI Codex przetwarza je poprawnie.

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
Możesz potrzebować zwiększyć czas snu, jeśli twoja maszyna jest wolna. Nienawidzę, jak to wszystko jest kapryśne; zamierzam znaleźć bardziej niezawodny sposób na zrobienie tego.
27,03K
Najlepsze
Ranking
Ulubione

