4 Гід-напрямний 5 Майже архітектор ~9 хв

Паралельна робота з ШІ-агентом: як прискорити вайбкодинг

Змусь агента працювати бригадою, а не самотнім равликом

Паралельне виконання задач зі ШІ-агентом: які шматки коду можна робити разом, що строго по черзі і як не зловити конфлікт двох агентів в одному файлі.

Скіли ECC у цьому уроці: parallel-execution-optimizer

Що таке паралельне виконання простими словами

Уяви ремонт. Можна найняти одного майстра: він фарбує стіни, потім кладе плитку, потім збирає шафу. По черзі. Цілий тиждень. А можна покликати бригаду: маляр працює в залі, плиточник - на кухні, складальник вовтузиться в спальні. Усе разом. Обсяг той самий. А часу втричі менше.

Зі ШІ-агентом історія один в один. Зазвичай ми ганяємо його як самотнього майстра: зроби це, потім те, потім он те. Але його можна навчити розкидати незалежні шматки так, щоб вони йшли паралельно. Це і є паралельне виконання .

Один втомлений робот-майстер робить усе по черзі проти злагодженої бригади роботів, яка працює одночасно
Зліва - один агент по черзі. Справа - та сама робота доріжками, разом.

Навіщо вайбкодеру вміти розпаралелювати задачі

Ти вайбкодер. Код руками не пишеш - ти режисер процесу. І якщо розумієш, як розкидати роботу по доріжках, то виграєш одразу на всіх фронтах:

  • результат приходить у рази швидше - пʼять перевірок за час однієї;
  • ти не киснеш біля екрана, поки агент пів години ганяє тести - за цей час робиться щось іще;
  • ти не влаштовуєш аварій, коли два потоки лізуть в один і той самий файл;
  • ти вмієш сказати «зроби швидко» так, щоб це реально прискорило, а не зламало.

Різниця між «просидів цілий вечір над однією задачею» і «все було готове за годину» - це найчастіше різниця в одній навичці: бачити, що можна робити разом, а що ні. Поїхали.

Як агент будує карту доріжок

Головний фокус досвідченого агента: перетворити поспіх на карту залежностей ще до того, як він почав щось робити. Не кидатися в бій. А спершу поставити собі питання: які шматки незалежні, а які тримаються одне за одного?

Крок 1. Назви ціль і «сигнал готовності»

Перш ніж дробити роботу, агент вирішує: що взагалі треба отримати і за якою ознакою зрозуміло, що готово. Без цього «швидко» легко перетворюється на «швидко зробив не те». А переробляти завжди довше.

Крок 2. Розріж роботу на доріжки

Доріжка - це один самостійний шматок. Оглянути проєкт - доріжка. Поправити кнопку на сайті - доріжка. Прогнати тести - теж доріжка. Чим чіткіша нарізка, тим зрозуміліше, що з чим не перетинається.

Крок 3. Познач кожну доріжку

У кожної доріжки три варіанти долі:

  • Паралельна - можна робити прямо зараз, нікому не заважає.
  • По черзі - іде тільки після іншої. Не можна фарбувати стіну, поки її не поштукатурили.
  • Чекай сигналу - запускається лише після твого підтвердження, бо небезпечна. Наприклад, деплой у прод.

Крок 4. Читати - юрбою, писати - по одному

Ось воно, золоте правило всього уроку. Будь-які читання - оглянути файли, пошукати по коду, перевірити статус, глянути пару сайтів - можна запускати пачкою разом: вони одне одному не заважають. А ось записи - правки файлів - тримай нарізно: різні файли, різні гілки, різні теки. Інакше два потоки перепишуть одне і те саме. І буде каша.

Схема доріжок: кілька стрілок-читань ідуть паралельно, а записи розведені по різних файлах, небезпечне за шлагбаумом
Карта доріжок: читання йдуть пачкою, записи розведені, небезпечне - за шлагбаумом.

Крок 5. Довге - у фон

Тести, збірка, заливка даних, деплой бувають довгими. Досвідчений агент кидає їх у фон і потім поглядає, а не сидить і тупо чекає біля прогрес-бара. Поки тести крутяться, можна встигнути пробігти ще одну доріжку. Час не простоює.

Що можна робити паралельно, а що тільки по черзі

Сміливо паралелимо
  • Читання й пошук: оглянути проєкт, знайти по коду, глянути статус - усе пачкою одразу.
  • Правки в різних файлах, які між собою не перетинаються.
  • Кілька перевірок разом: лінтер, тести, скриншот сайту.
  • Великі незалежні шматки - в ізольованих робочих копіях (worktree).
Тільки по черзі і з підтвердженням
  • Дві правки в одному й тому самому файлі - гарантований конфлікт.
  • Небезпечні команди: видалення, міграції бази, заливка в прод - тільки з підтвердженням.
  • Запис в одну й ту саму таблицю з двох потоків одразу.
  • Крок, який залежить від підсумку іншого - спершу перший, потім другий.

Приклад: як паралельно перевірити проєкт перед публікацією

Ти просиш агента: «перевір мій сайт перед публікацією». Наївний шлях - він усе робить по черзі: хвилин пʼять читає код, потім запускає тести й чекає, потім відкриває сайт і дивиться, потім перевіряє посилання. Двадцять хвилин. І весь цей час ти гіпнотизуєш екран.

А тепер як вчинить тямущий вайбкодер. Спершу - карта доріжок:

Промпт - скопіюй і спробуй

Мені потрібно швидко перевірити проєкт перед публікацією. Спершу склади план доріжок, не поспішай діяти.

  1. Поділи роботу на незалежні доріжки і для кожної вкажи: чи можна робити її паралельно, що вона зачіпає і як зрозуміти, що вона пройшла.
  2. Усі доріжки тільки на читання і перевірку запусти разом: огляд файлів, пошук по коду, перевірка статусу.
  3. Довгі перевірки, на кшталт тестів і збірки, запусти у фоні і потім повернися за результатом.
  4. Нічого не видаляй, не прав і не публікуй без мого окремого підтвердження.
  5. У кінці дай таблицю: яка доріжка пройшла, яка впала і що саме ти перевірив.

Часті помилки під час розпаралелювання задач

  • Кричати «швидше» без плану. Швидкість дає карта доріжок, а не підганяння. Спершу поділи роботу - потім прискорюйся.
  • Паралелити записи в один файл. Класична аварія: два потоки перепишуть одне одного. Писати - по одному, без винятків.
  • Паралелити небезпечне. Видалення, міграції, деплой у прод - ніколи не запускай пачкою без підтвердження. Один хибний крок тут коштує дорого.
  • Запустити у фоні і забути. Процес крутиться, агент рапортує «готово» - а там помилка. Завжди повертайся за результатом.
  • Плутати «швидко» з «готово». Пʼять доріжок пролетіли - це ще не успіх. Успіх - коли перевірка показала, що все сходиться.
  • Ховати пропущені перевірки за бадьорим звітом. «Усе ок!» без таблиці - червоний прапор. Вимагай конкретику: що пройшло, що впало.
Мем: два роботи вчепилися в один файл і тягнуть у різні боки, папір рветься
Коли вирішив, що «паралельно» - це два агенти в одному файлі.

TL;DR - если коротко

  • Швидкість береться не з «давай швидше», а з уміння робити незалежні шматки разом. Спершу карта, потім газ.
  • Золоте правило: читати можна юрбою, писати - по одному. Два агенти в одному файлі = бійка.
  • Ріж роботу на доріжки й познач кожну: паралельна, по черзі чи «чекай сигналу».
  • Довге - тести, збірку, деплой - кидай у фон і поглядай. Не сиди стовпом біля екрана.
  • «Швидко» не дорівнює «готово». У фіналі - таблиця перевірки, а не бадьоре «начебто працює».
  • Небезпечне - видалення, міграції, прод - ніколи не паралелимо. Тільки за підтвердженням.

Пошук по вікі

Натисніть Esc для закриття

Введіть запит для миттєвого пошуку по всіх сторінках курсів та уроків.