Právě jsem přišel na to, jak opravdu ještě více automatizovat pracovní postup svého agenta pomocí některých kouzel tmux. Nyní, když používám svůj projekt pošty agenta MCP, abych přiměl skupinu agentů, aby spolu mluvili o implementaci plánu (a také koordinovali použití projektu beads pro správu úkolů), stále potřebuji "krmit" agenty tím, že zařadím do fronty spoustu zpráv v kodexu, abych je zaměstnal. To zahrnuje procházení různých panelů TMUX jeden po druhém (jeden pro každou instanci Codexu) a vkládání některých předpřipravených zpráv nebo několikanásobné stisknutí šipky nahoru pro opětovné použití minulých zpráv, jako například: "Vyberte si další korálek, který můžete skutečně užitečně udělat nyní, a začněte na něm okamžitě kódovat; Sdělte ostatním agentům to, co děláte, prostřednictvím pošty agenta." Připadá mi to trochu hloupé a neefektivní, když to netrvá tak dlouho, než dáte každému agentovi dostatek instrukcí, které ho zaměstnají na více než hodinu. Ale teď jsem si uvědomil, že můžu automaticky zařadit do fronty spoustu zpráv v každém relevantním panelu tmux najednou, jednoduše zkopírováním a vložením do konzole mimo relaci tmux (toto je testováno a funguje v zsh): --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) pro panel v $PANES; dělat tmux send-keys -t $pane -l 'vyberte další korálek, který můžete nyní skutečně užitečně udělat, a okamžitě na něm začněte kódovat; Sdělte ostatním agentům, co děláte, prostřednictvím pošty agenta. spánek 0.1 tmux send-keys -t $pane Enter neboť i v {1..4}; dělat tmux send-keys -t $pane -l 'Pokračujte, dělejte užitečnou práci! a komunikujte!" spánek 0.1 tmux send-keys -t $pane Enter hotový tmux send-keys -t $pane -l 'výborně, teď chci, abyste si pečlivě přečetli všechen nový kód, který jste právě napsali, a další existující kód, který jste právě upravili, a to novýma očima a velmi pečlivě se dívali na zjevné chyby, omyly, problémy, problémy, zmatek atd.' spánek 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Nezapomeňte zkontrolovat poštu svého agenta a v případě potřeby okamžitě odpovědět na jakoukoli zprávu; Poté pečlivě pokračujte v plánu, systematicky provádějte všechny zbývající nedokončené úkoly a pokračujte v zaznamenávání svého pokroku v dokumentu plánu, prostřednictvím korálků a e-mailových zpráv agenta. Neuvízněte v "komunikačním očistci", kde se nic nedělá; Buďte proaktivní při zahajování úkolů, které je třeba udělat, ale informujte své kolegy agenty prostřednictvím zpráv, když tak učiníte, a poznamenejte si to do dokumentu plánu. Když si opravdu nejste jisti, co dělat, vyberte si další korálek, na kterém můžete užitečně pracovat, a začněte." spánek 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok můžete nyní obrátit svou pozornost na kontrolu kódu napsaného vašimi kolegy agenty a zkontrolovat případné problémy, chyby, omyly, problémy, neefektivitu, bezpečnostní problémy, problémy se spolehlivostí atd. a pečlivě diagnostikovat jejich základní příčiny pomocí analýzy prvního principu a poté je opravit nebo revidovat, pokud je to nutné? Neomezujte se na nejnovější závazky, rozhoďte širší síť a jděte opravdu hluboko!" spánek 0.1 tmux send-keys -t $pane Enter hotový --- Tento skript: Získá podokna: Najde všechna podokna TMUX, kromě prvních 2 a posledních 2 Odešle 8 zpráv do každého vybraného panelu: "Vyberte si další korálek..." - říká agentům, aby začali pracovat na dalším úkolu "Pokračuj..." × 4 - Opakované povzbuzování k pokračování v práci "pozorně si přečtěte..." - dává pokyn k čerstvé revizi kódu "check agent mail..." - dlouhá zpráva o koordinaci, jak se vyhnout komunikační paralýze, jak zůstat produktivní "Zkontrolovat kód napsaný kolegy agenty..." - peer code review pro chyby/problémy Každá zpráva je odeslána doslova (příznak -l) s 0,1 sekundovým zpožděním před Enter, aby bylo zajištěno, že je Codex CLI správně zpracuje.
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
Pokud je váš počítač pomalý, možná budete muset prodloužit dobu spánku. Nesnáším, jak je to všechno vybíravé; Najdu spolehlivější způsob, jak to udělat.
25,91K