Паралельна робота з ШІ-агентом: як прискорити вайбкодинг
Змусь агента працювати бригадою, а не самотнім равликом
Паралельне виконання задач зі ШІ-агентом: які шматки коду можна робити разом, що строго по черзі і як не зловити конфлікт двох агентів в одному файлі.
Що таке паралельне виконання простими словами
Уяви ремонт. Можна найняти одного майстра: він фарбує стіни, потім кладе плитку, потім збирає шафу. По черзі. Цілий тиждень. А можна покликати бригаду: маляр працює в залі, плиточник - на кухні, складальник вовтузиться в спальні. Усе разом. Обсяг той самий. А часу втричі менше.
Зі ШІ-агентом історія один в один. Зазвичай ми ганяємо його як самотнього майстра: зроби це, потім те, потім он те. Але його можна навчити розкидати незалежні шматки так, щоб вони йшли паралельно. Це і є паралельне виконання Паралельне виконання - коли кілька шматків роботи робляться одночасно, бо вони одне одному не заважають. Протилежність - послідовне, по черзі. .
Навіщо вайбкодеру вміти розпаралелювати задачі
Ти вайбкодер. Код руками не пишеш - ти режисер процесу. І якщо розумієш, як розкидати роботу по доріжках, то виграєш одразу на всіх фронтах:
- результат приходить у рази швидше - пʼять перевірок за час однієї;
- ти не киснеш біля екрана, поки агент пів години ганяє тести - за цей час робиться щось іще;
- ти не влаштовуєш аварій, коли два потоки лізуть в один і той самий файл;
- ти вмієш сказати «зроби швидко» так, щоб це реально прискорило, а не зламало.
Різниця між «просидів цілий вечір над однією задачею» і «все було готове за годину» - це найчастіше різниця в одній навичці: бачити, що можна робити разом, а що ні. Поїхали.
Як агент будує карту доріжок
Головний фокус досвідченого агента: перетворити поспіх на карту залежностей ще до того, як він почав щось робити. Не кидатися в бій. А спершу поставити собі питання: які шматки незалежні, а які тримаються одне за одного?
Крок 1. Назви ціль і «сигнал готовності»
Перш ніж дробити роботу, агент вирішує: що взагалі треба отримати і за якою ознакою зрозуміло, що готово. Без цього «швидко» легко перетворюється на «швидко зробив не те». А переробляти завжди довше.
Крок 2. Розріж роботу на доріжки
Доріжка Доріжка (lane) - окремий самостійний шматок роботи, який можна вести незалежно від інших: наприклад, перевірка коду, правка бекенду, правка інтерфейсу. - це один самостійний шматок. Оглянути проєкт - доріжка. Поправити кнопку на сайті - доріжка. Прогнати тести - теж доріжка. Чим чіткіша нарізка, тим зрозуміліше, що з чим не перетинається.
Крок 3. Познач кожну доріжку
У кожної доріжки три варіанти долі:
- Паралельна - можна робити прямо зараз, нікому не заважає.
- По черзі - іде тільки після іншої. Не можна фарбувати стіну, поки її не поштукатурили.
- Чекай сигналу - запускається лише після твого підтвердження, бо небезпечна. Наприклад, деплой у прод.
Крок 4. Читати - юрбою, писати - по одному
Ось воно, золоте правило всього уроку. Будь-які читання - оглянути файли, пошукати по коду, перевірити статус, глянути пару сайтів - можна запускати пачкою разом: вони одне одному не заважають. А ось записи - правки файлів - тримай нарізно: різні файли, різні гілки, різні теки. Інакше два потоки перепишуть одне і те саме. І буде каша.
Крок 5. Довге - у фон
Тести, збірка, заливка даних, деплой бувають довгими. Досвідчений агент кидає їх у фон і потім поглядає, а не сидить і тупо чекає біля прогрес-бара. Поки тести крутяться, можна встигнути пробігти ще одну доріжку. Час не простоює.
Що можна робити паралельно, а що тільки по черзі
- Читання й пошук: оглянути проєкт, знайти по коду, глянути статус - усе пачкою одразу.
- Правки в різних файлах, які між собою не перетинаються.
- Кілька перевірок разом: лінтер, тести, скриншот сайту.
- Великі незалежні шматки - в ізольованих робочих копіях (worktree).
- Дві правки в одному й тому самому файлі - гарантований конфлікт.
- Небезпечні команди: видалення, міграції бази, заливка в прод - тільки з підтвердженням.
- Запис в одну й ту саму таблицю з двох потоків одразу.
- Крок, який залежить від підсумку іншого - спершу перший, потім другий.
Приклад: як паралельно перевірити проєкт перед публікацією
Ти просиш агента: «перевір мій сайт перед публікацією». Наївний шлях - він усе робить по черзі: хвилин пʼять читає код, потім запускає тести й чекає, потім відкриває сайт і дивиться, потім перевіряє посилання. Двадцять хвилин. І весь цей час ти гіпнотизуєш екран.
А тепер як вчинить тямущий вайбкодер. Спершу - карта доріжок:
Мені потрібно швидко перевірити проєкт перед публікацією. Спершу склади план доріжок, не поспішай діяти.
- Поділи роботу на незалежні доріжки і для кожної вкажи: чи можна робити її паралельно, що вона зачіпає і як зрозуміти, що вона пройшла.
- Усі доріжки тільки на читання і перевірку запусти разом: огляд файлів, пошук по коду, перевірка статусу.
- Довгі перевірки, на кшталт тестів і збірки, запусти у фоні і потім повернися за результатом.
- Нічого не видаляй, не прав і не публікуй без мого окремого підтвердження.
- У кінці дай таблицю: яка доріжка пройшла, яка впала і що саме ти перевірив.
Часті помилки під час розпаралелювання задач
- Кричати «швидше» без плану. Швидкість дає карта доріжок, а не підганяння. Спершу поділи роботу - потім прискорюйся.
- Паралелити записи в один файл. Класична аварія: два потоки перепишуть одне одного. Писати - по одному, без винятків.
- Паралелити небезпечне. Видалення, міграції, деплой у прод - ніколи не запускай пачкою без підтвердження. Один хибний крок тут коштує дорого.
- Запустити у фоні і забути. Процес крутиться, агент рапортує «готово» - а там помилка. Завжди повертайся за результатом.
- Плутати «швидко» з «готово». Пʼять доріжок пролетіли - це ще не успіх. Успіх - коли перевірка показала, що все сходиться.
- Ховати пропущені перевірки за бадьорим звітом. «Усе ок!» без таблиці - червоний прапор. Вимагай конкретику: що пройшло, що впало.
TL;DR - если коротко
- Швидкість береться не з «давай швидше», а з уміння робити незалежні шматки разом. Спершу карта, потім газ.
- Золоте правило: читати можна юрбою, писати - по одному. Два агенти в одному файлі = бійка.
- Ріж роботу на доріжки й познач кожну: паралельна, по черзі чи «чекай сигналу».
- Довге - тести, збірку, деплой - кидай у фон і поглядай. Не сиди стовпом біля екрана.
- «Швидко» не дорівнює «готово». У фіналі - таблиця перевірки, а не бадьоре «начебто працює».
- Небезпечне - видалення, міграції, прод - ніколи не паралелимо. Тільки за підтвердженням.