Не чини, а перезапусти: почему это работает лучше с ИИ
Знаете как это бывает, начинаешь делать задачу, посидел, придумал архитектуру, реализовал, и тут начинается самое интересное… В одном месте что-то не учёл, в коде соседнего модуля вылез косяк, а время идёт, сроки горят и приходится подставить костыли и надеяться, что когда-то можно будет это исправить. Да и переписывать свой код больно, он же ваш, вы потратили на него время.
Я это вот к чему. Астрологи объявили год агентного кодинга, все пишут, как они ускоряются в 5–10 раз, но эта проблема никуда на самом деле не уходит. Вы ставите задачу кодексу, клоду или чем вы там пользуетесь, он реализует задачу, вы проверяете, а он архитектурно сделал что-то не так, какие-то требования не учёл, и вы начинаете просить агента исправить всё, что он натворил, в том же чате.
И он делает примерно то же, что и мы — начинает либо фиксить баги, либо добавлять костыли. В итоге код уже не такой хороший, как если бы он сразу сделал нормально. А под конец агент ещё и начинает путаться, тупить и ходить вокруг да около.
И тут на помощь приходит One Shot Prompting. Про подход я уже слышал, но по-настоящему понял его только на стриме Вани в GuideDAO. В общем, суть простая — вы не просите агента исправить все косяки. Вместо этого берёте исходный промпт и уточняете требования, чтобы избежать проблем, которые всплыли в первой реализации. И, конечно, без угрызений совести выкидываете первую версию.
То есть по сути, теперь мы дешево можем делать почти сразу хорошо, переписать всё стало в разы проще.
🧪 Пример из своего опыта. Я решил начать пилить небольшой пет-проект, который, надеюсь, когда-нибудь увидит свет. В проекте используется MapLibre GL JS — библиотека для отображения векторных карт. После очередной фичи я решил попросить кодекс покрыть её playwright тестами, и тут началось.
Он написал тесты и следующие полчаса пытался понять, почему же карта не отображается. Как джун, искал проблему методом тыка. Вносил изменения — карта не работает. Решил, что проблема в кеше — перезапускает дев-сервер. И так раз десять.
В итоге он всё-таки дошёл до причины: WebGL, который используется в MapLibre, не работает, когда playwright запущен в headless режиме.
С горем пополам тесты он написал, но на код, конечно, лучше не смотреть. Естественно, он не убрал все свои неудачные попытки пофиксить проблему. И это именно тот случай, когда нужен One Shot Prompting.
Я просто спросил у кодекса, в чём была проблема, добавил это в исходный промпт, откатил изменения и запустил всё заново. В этот раз реализация прошла быстро, и код получился заметно чище.
На работе теперь тоже постоянно применяю этот подход. После этого у меня даже появилась небольшая надежда, что сеньоров заменят не скоро. Потому что джунам гораздо сложнее делать ревью кода, который написал агент, а в итоге это легко может привести к неподдерживаемому коду.
Но теперь за ними нужен глаз да глаз, чтобы не пропустить такой код в прод 😅.
⚠️ У подхода, конечно, есть и минус. Токенов тратится больше. Поэтому если задача большая, а багов немного, иногда проще пойти на компромисс и просто попросить агента всё пофиксить.
А вообще теперь же с 1 марта нельзя говорить one shot prompting. Как это будет по-русски, «однократное задание по образцу»? 😆
А какие новые подходы в использовании ИИ недавно узнали вы? #ai
· 01.04
По-русски "ван шот промтинг" переводится как "то был черновик, теперь пишем красиво в чистовик" 😅
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 01.04
🔥🔥🔥
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён