Saya baru saja menemukan cara untuk benar-benar mengotomatiskan alur kerja agen saya lebih banyak lagi dengan beberapa sihir tmux. Sekarang saya menggunakan proyek email agen mcp saya untuk membuat sekelompok agen berbicara satu sama lain tentang menerapkan rencana (dan juga berkoordinasi menggunakan proyek manik-manik untuk manajemen tugas), saya masih perlu "memberi makan" agen dengan mengantri banyak pesan dalam codex agar mereka tetap sibuk. Ini melibatkan menelusuri satu per satu melalui berbagai panel tmux (satu untuk setiap instance codex) dan menempelkan beberapa pesan kalengan atau menekan panah atas beberapa kali untuk menggunakan kembali pesan sebelumnya, seperti: "Pilih manik-manik berikutnya yang benar-benar dapat Anda lakukan dengan berguna sekarang dan mulai mengkodenya segera; komunikasikan apa yang Anda lakukan kepada agen lain melalui surat agen." Rasanya agak konyol dan tidak efisien untuk melakukan ini, meskipun tidak butuh waktu lama untuk memberi setiap agen instruksi yang cukup untuk membuat mereka sibuk selama lebih dari satu jam. Tapi sekarang saya menyadari bahwa saya dapat secara otomatis mengantri banyak pesan di setiap panel tmux yang relevan sekaligus, hanya dengan menyalin dan menempelkannya ke konsol di luar sesi tmux (ini diuji dan berfungsi di zsh): --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | tail -n +3 | head -n -2)"}) untuk panel dalam $PANES; melakukan tmux send-keys -t $pane -l 'pilih manik-manik berikutnya yang benar-benar dapat Anda lakukan dengan berguna sekarang dan mulai membuat kode di atasnya segera; komunikasikan apa yang Anda lakukan kepada agen lain melalui surat agen.' tidur 0,1 tmux send-keys -t $pane Enter karena i dalam {1..4}; melakukan tmux send-keys -t $pane -l 'Teruskan, lakukan pekerjaan yang berguna! dan berkomunikasi!' tidur 0,1 tmux send-keys -t $pane Enter selesai tmux send-keys -t $pane -l 'bagus, sekarang saya ingin Anda membaca dengan cermat semua kode baru yang baru saja Anda tulis dan kode lain yang baru saja Anda modifikasi dengan "mata segar" dengan sangat hati-hati untuk bug, kesalahan, masalah, masalah, kebingungan, dll. tidur 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Pastikan untuk memeriksa email agen Anda dan segera menanggapi pesan apa pun jika diperlukan; Setelah itu, lanjutkan dengan cermat dengan rencana, lakukan semua tugas Anda yang belum selesai secara sistematis dan terus mencatat kemajuan Anda secara sebaris dalam dokumen rencana, melalui manik-manik, dan melalui pesan surat agen. Jangan terjebak dalam "api penyucian komunikasi" di mana tidak ada yang dilakukan; Bersikaplah proaktif dalam memulai tugas yang perlu dilakukan, tetapi beri tahu sesama agen Anda melalui pesan saat Anda melakukannya dan catat sebaris dalam dokumen rencana. Ketika Anda benar-benar tidak yakin apa yang harus dilakukan, pilih manik-manik berikutnya yang dapat Anda kerjakan dan mulai.' tidur 0,1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok 'OK, dapatkah Anda sekarang mengalihkan perhatian Anda untuk meninjau kode yang ditulis oleh sesama agen Anda dan memeriksa masalah, bug, kesalahan, masalah, inefisiensi, masalah keamanan, masalah keandalan, dll. dan dengan hati-hati mendiagnosis akar penyebab yang mendasarinya menggunakan analisis prinsip pertama dan kemudian memperbaiki atau merevisinya jika perlu? Jangan membatasi diri Anda pada komitmen terbaru, lemparkan jaring yang lebih lebar dan masuk sangat dalam!' tidur 0,1 tmux send-keys -t $pane Enter selesai --- Naskah ini: Mendapatkan panel: Menemukan semua panel tmux, tidak termasuk 2 pertama dan 2 terakhir Mengirim 8 pesan ke setiap panel yang dipilih: "Pilih manik-manik berikutnya ..." - memberi tahu agen untuk mulai mengerjakan tugas berikutnya "Lanjutkan..." × 4 - dorongan berulang untuk terus bekerja "baca dengan cermat..." - menginstruksikan tinjauan kode baru "periksa surat agen..." - pesan panjang tentang koordinasi, menghindari kelumpuhan komunikasi, tetap produktif "Tinjau kode yang ditulis oleh sesama agen..." - Tinjauan kode sejawat untuk bug/masalah Setiap pesan dikirim secara harfiah (-l flag) dengan penundaan 0,1 detik sebelum Enter untuk memastikan Codex CLI memprosesnya dengan benar.
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
Anda mungkin perlu menambah waktu tidur jika mesin Anda lambat. Saya benci betapa rewel itu semua; Saya akan menemukan cara yang lebih andal untuk melakukan ini.
24,01K