#ai
Addy Osmani поділився думкою про те, як працювати з ШІ агентами на реальних проєктах, яким вже багато років.
🤓 Почнемо з термінів
Brownfield system - це така система, в якій опис того, як вона працює вже не може відобразити всю ту складність, що реально відбувається під капотом. Така система ще й має купу неявних знань, підпорок, купу легасі від сусідніх систем.
Якщо просто "залетіти" й почати ганяти ШІ агенти, то можна легко отримати результат, який навіть буде "якось" працювати. Але такий результат може мати некоректний системний дизайн чи нестабільні тести.
🤔 Що пропонує Addy
1. Поділіть систему на зони. Зелена - там де зміни безпечні, бо є хороший дизайн чи багато тестів. Жовті - з якістю середнього рівня. Червоні - вкрай ризиковані, як-от дозволи чи автентифікація. Працюйте з кожною зоною по-різному. В зелених можна пускати агентів сміливіше.
2. Сучасні агенти можуть читати код та робити висновки з нього. Ваша задача - надати те, чого в коді немає: конвенцій, паттерни, нюанси, бізнес правила.
3. Якщо ваш агент не залишив після дослідження артефакт - то він наполовина марно працював. Бо без артефакту, наступний запуск буде робити ту ж саму роботу й знову палити токени зря.
4. Кожен раз, коли ви виправляєте агента - повинен залишатись як правило, як частина вашого harness. Інакше знову ж таки, агент буде раз за разом виконувати одну й ту саму дію.
5. Почніть зміни маючи characterization тести. Що це? Це тести, як документують поточний стан та поведінку системи. Можна навіть ганяти такі тести на старій та новій версії системи.
6. Агенти знизили вартість спроб змінити технології. Замість аналізу можна зробити майже повну реімплементацію компоненту. Дослідити перфоманс, порівняти згідно метрик та прийняти більш зважене рішення.
7. Чим більше ви маєте згенерованого коду, чи більш прискіпливими ви повинні бути на код ревʼю (як людина). То ж потрібні додаткові інвестиції в тестову інфраструктуру, перед тим як заганяти десятки агентів в паралелі робити зміни.
😏😏😏
Lines generated don’t tell you whether the codebase improved. I would track lead time, review minutes, human interventions, escaped defects, rollbacks, oracle mismatches, and suppressions left behind.