Я щойно з'ясував, як дійсно автоматизувати робочий процес мого агента ще більше за допомогою деяких майстрів tmux. Тепер, коли я використовую свій поштовий проект агента mcp, щоб змусити купу агентів говорити один з одним про реалізацію плану (а також координувати використання проекту beads для управління завданнями), мені все ще потрібно «годувати» агентів, ставлячи в чергу купу повідомлень в кодексі, щоб вони були зайняті. Це передбачає перехід по одній по одній по одній для кожного екземпляра кодексу) та вставлення кількох готових повідомлень або натискання стрілки вгору кілька разів, щоб повторно використати минулі повідомлення, наприклад: «Виберіть наступну намистину, яку ви дійсно можете зробити корисно зараз, і негайно почніть кодувати на ній; Повідомляйте про те, що ви робите, іншим агентам через агентську пошту». Це здається трохи безглуздим і неефективним, навіть якщо це не займає так багато часу, щоб дати кожному агенту достатньо інструкцій, щоб зайняти його більше години. Але тепер я зрозумів, що можу автоматично ставити в чергу купу повідомлень на кожній відповідній панелі tmux одночасно, просто скопіювавши та вставивши це в консоль поза сеансом tmux (це перевірено і працює в zsh): --- PANES=(${(f)"$(tmux list-panes -a -F '#S:#I.#P' | хвіст -n +3 | голова -n -2)"}) для панелі в $PANES; робити tmux send-keys -t $pane -l 'виберіть наступну намистину, яку ви дійсно можете зробити корисно зараз, і негайно почніть кодувати на ній; Повідомте про те, що ви робите, іншим агентам через агентську пошту. сон 0.1 tmux send-keys -t $pane Enter для i в {1..4}; робити tmux send-keys -t $pane -l 'продовжуйте, виконуючи корисну роботу! і спілкуйтеся!» сон 0.1 tmux send-keys -t $pane Enter Зробити tmux send-keys -t $pane -l 'чудово, тепер я хочу, щоб ви уважно прочитали весь новий код, який ви щойно написали, та інший існуючий код, який ви щойно змінили, "свіжим поглядом", дуже уважно шукаючи будь-які очевидні помилки, помилки, проблеми, проблеми, плутанину тощо'. сон 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'Обов'язково перевірте пошту вашого агента та оперативно відповідайте, якщо потрібно, на будь-які повідомлення; Після цього ретельно продовжуйте виконувати план, систематично виконуючи всі незавершені завдання, що залишилися, і продовжуючи повідомляти про свій прогрес у документі плану, за допомогою намистин і повідомлень електронної пошти агента. Не застрягайте в «чистилищі спілкування», де нічого не робиться; Будьте проактивними щодо початку завдань, які потрібно виконати, але повідомляйте своїх колег-агентів за допомогою повідомлень, коли ви це робите, і робіть позначки про це в документі плану. Коли ви дійсно не знаєте, що робити, виберіть наступну намистину, над якою ви зможете з користю попрацювати, і приступайте до роботи. сон 0.1 tmux send-keys -t $pane Enter tmux send-keys -t $pane -l 'ok Чи можете ви зараз звернути свою увагу на перегляд коду, написаного вашими колегами-агентами, і перевірку на наявність будь-яких проблем, багів, помилок, проблем, неефективності, проблем безпеки, проблем з надійністю і т.д. і ретельно діагностувати їх основні причини, використовуючи аналіз першого принципу, а потім виправити або переглянути їх, якщо це необхідно? Не обмежуйте себе останніми комітами, закидайте ширшу сітку і занурюйтесь дуже глибоко!" сон 0.1 tmux send-keys -t $pane Enter Зробити --- Цей сценарій: Отримує панелі: знаходить усі панелі tmux, за винятком перших 2 та останніх 2 Надсилає 8 повідомлень на кожну вибрану панель: «Вибери наступну намистину...» - повідомляє агентам про початок роботи над наступним завданням "Продовжуйте..." × 4 - неодноразове заохочення продовжувати роботу "Уважно прочитайте..." - інструктує свіжий код рев'ю "Check agent mail..." - довге повідомлення про координацію, уникнення паралічу комунікації, збереження продуктивності "Review Code Written by Fellow Agents..." - Експертна перевірка коду на наявність помилок/проблем Кожне повідомлення надсилається буквально (прапорець -l) із затримкою 0,1 секунди перед Enter, щоб переконатися, що Codex CLI обробляє їх належним чином.
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
Можливо, вам доведеться збільшити час сну, якщо ваша машина працює повільно. Я ненавиджу, наскільки все це вибагливо; Я збираюся знайти більш надійний спосіб зробити це.
25,89K