Source
Дивовижний світ веброзробки | Останнім часом на роботі я дрєсірую любіму абізяну. Навіть не одну, а ...
2 300 Views/Reach
2026-07-23 05:48
Message №426
Останнім часом на роботі я дрєсірую любіму абізяну. Навіть не одну, а ціле стадо. Я розробляю набір LLM агентів під мої власні задачі, і це стало одним з найцікавіших проєктів.
Тривалий час саме написання коду в рамках роботи перестало приносити задоволення, тому я зміщую свій фокус в сторону продуктового мислення та розробки рішень проблем, які переді мною стоять. Так, та сама "продуктова інженерія".
Будемо відверті — коли ти працюєш на великому проєкті з купою легасі, з усталеними практиками і всякими власними дизайн системами, місця для творчості в коді якось особливо й не лишається. Особливо, коли реалізація задач зводиться до кількох типових хуків і збірки UI з готових компонентів.
І тоді вся забава переходить в іншу площину — розробити рішення. А потім його швиденько втілити. І саме для цих цілей я й дресирую своїх цифрових абізян.
Зараз я майже майже завершив кодинг-агента, який робить те, що мені потрібно, і, що головне — так, як мені потрібно. Зараз спробую описати, що за систему я роблю взагалі, а потім вкину кілька цікавих думок, які виникли в процесі.
Я вирішив вийти трошки за рамки стандартного підходу з оркестрацією, і роблю те, що називаю харнесом, тобто комплексом спеціалізованих агентів з власними ролями.
Для щоденної роботи я маю головного агента, з яким я "спілкуюсь", ставлю задачі, сперечаюсь і називаю дурачком. Його відповідальність — такий собі менеджер, який делегує конкретні запити і задачі іншим. Інших зараз двоє: імплементатор і дослідник. Дослідник шариться по коду, джирі, документації і саме він відповідає на головні питання життя, Всесвіту і взагалі. Ну і готує детально поставлені задачі для імплементатора. А той вже бере ці задачі і… імплементує.
Ще у мене є агент для розробки інших агентів, і в процесі зараз харнес для розробки тих самих специфікацій, але фокус — завершити повсякденний харнес.
Так от що цікавого я в процесі визначив. По-перше, те, що працює для вас — цілком не працюватиме для інших. Агенти дозволяють делегувати процес. А він у кожного свій. І отут розробка такого агента дає цікаву можливість — зрозуміти свій процес для себе. Бо ви ж намагаєтесь його відгрузити на цифрові невтомні плечі вашої абізяни.
По-друге — розробка агента це теж програмування. З однією особливістю — у вас немає однієї стандартизованої мови програмування. Але основні прицнипи ті самі — якщо ви хочете передбачуваних результатів, ви повинні описувати їх так само передбачувано.
Тому у мене в агентах є роутинг, який описує типові ситуації, і що в цих ситуаціях робити, куди іти, до кого звертатися. Є описи сценаріїв, є описи дій, є навть своєрідні функції. І це все густо обмазано маленькими скілами, до яких часто роутинг і веде. І це все дуже строго обмежується, аби агент не вигадував. Нема гілки в роутингу — він завершує виконання роботи.
Ще один дуже важливий урок — ви ніколи не виправите помилку в агенті, додаючи розлогі описи і пояснення. Воно тупе. Тому у мене правило — опис бути настільки чітким і малослівним, наскільки це дозволяє інтерпретувати задачу в один єдиний спосіб. Якщо ви додаєте пояснення і приклади — ви лікуєте симптом, а не причину.
А ще я додав кілька шарів для короткострокової та середньостроковї памʼяти у вигляді mcp-сервера для sql. І абізяни самі розрулюють свої тудушки і нотатки через базу даних замість створення гігантських markdown-файлів.
Але, що найголовніше — в усьому цьому майже на кожному кроці є я. Ревʼю документації, специфікацій, код-ревʼю після кожної задачі (я під це навіть власний локальний діф-переглядач з mcp-сервером навайбірував), затвердження описів до пул-ріквестів, і так далі. І, звичайно ж, постійне, постійне покращення та виправлення самих агентів.
А ще я дуже активно використовую worktree, що дозволяє паралельно працювати над кількома задачами і жонглювати пул-ріквестами.
І при всьому цьому я не забуваю, як виглядає код, що найголовніше. Бо які б розумні не були ваші ШІшки, без нагляду вони так говноклодять, що не всяка людина так зуміє.
Поки писав, зрозумів, що про це можна цілу серію про це зробить.
Тож закриваєм збір і буде вам ;)
@babichdev
Тривалий час саме написання коду в рамках роботи перестало приносити задоволення, тому я зміщую свій фокус в сторону продуктового мислення та розробки рішень проблем, які переді мною стоять. Так, та сама "продуктова інженерія".
Будемо відверті — коли ти працюєш на великому проєкті з купою легасі, з усталеними практиками і всякими власними дизайн системами, місця для творчості в коді якось особливо й не лишається. Особливо, коли реалізація задач зводиться до кількох типових хуків і збірки UI з готових компонентів.
І тоді вся забава переходить в іншу площину — розробити рішення. А потім його швиденько втілити. І саме для цих цілей я й дресирую своїх цифрових абізян.
Зараз я майже майже завершив кодинг-агента, який робить те, що мені потрібно, і, що головне — так, як мені потрібно. Зараз спробую описати, що за систему я роблю взагалі, а потім вкину кілька цікавих думок, які виникли в процесі.
Я вирішив вийти трошки за рамки стандартного підходу з оркестрацією, і роблю те, що називаю харнесом, тобто комплексом спеціалізованих агентів з власними ролями.
Для щоденної роботи я маю головного агента, з яким я "спілкуюсь", ставлю задачі, сперечаюсь і називаю дурачком. Його відповідальність — такий собі менеджер, який делегує конкретні запити і задачі іншим. Інших зараз двоє: імплементатор і дослідник. Дослідник шариться по коду, джирі, документації і саме він відповідає на головні питання життя, Всесвіту і взагалі. Ну і готує детально поставлені задачі для імплементатора. А той вже бере ці задачі і… імплементує.
Ще у мене є агент для розробки інших агентів, і в процесі зараз харнес для розробки тих самих специфікацій, але фокус — завершити повсякденний харнес.
Так от що цікавого я в процесі визначив. По-перше, те, що працює для вас — цілком не працюватиме для інших. Агенти дозволяють делегувати процес. А він у кожного свій. І отут розробка такого агента дає цікаву можливість — зрозуміти свій процес для себе. Бо ви ж намагаєтесь його відгрузити на цифрові невтомні плечі вашої абізяни.
По-друге — розробка агента це теж програмування. З однією особливістю — у вас немає однієї стандартизованої мови програмування. Але основні прицнипи ті самі — якщо ви хочете передбачуваних результатів, ви повинні описувати їх так само передбачувано.
Тому у мене в агентах є роутинг, який описує типові ситуації, і що в цих ситуаціях робити, куди іти, до кого звертатися. Є описи сценаріїв, є описи дій, є навть своєрідні функції. І це все густо обмазано маленькими скілами, до яких часто роутинг і веде. І це все дуже строго обмежується, аби агент не вигадував. Нема гілки в роутингу — він завершує виконання роботи.
Ще один дуже важливий урок — ви ніколи не виправите помилку в агенті, додаючи розлогі описи і пояснення. Воно тупе. Тому у мене правило — опис бути настільки чітким і малослівним, наскільки це дозволяє інтерпретувати задачу в один єдиний спосіб. Якщо ви додаєте пояснення і приклади — ви лікуєте симптом, а не причину.
А ще я додав кілька шарів для короткострокової та середньостроковї памʼяти у вигляді mcp-сервера для sql. І абізяни самі розрулюють свої тудушки і нотатки через базу даних замість створення гігантських markdown-файлів.
Але, що найголовніше — в усьому цьому майже на кожному кроці є я. Ревʼю документації, специфікацій, код-ревʼю після кожної задачі (я під це навіть власний локальний діф-переглядач з mcp-сервером навайбірував), затвердження описів до пул-ріквестів, і так далі. І, звичайно ж, постійне, постійне покращення та виправлення самих агентів.
А ще я дуже активно використовую worktree, що дозволяє паралельно працювати над кількома задачами і жонглювати пул-ріквестами.
І при всьому цьому я не забуваю, як виглядає код, що найголовніше. Бо які б розумні не були ваші ШІшки, без нагляду вони так говноклодять, що не всяка людина так зуміє.
Поки писав, зрозумів, що про це можна цілу серію про це зробить.
Тож закриваєм збір і буде вам ;)
@babichdev