30 марта 2026 г. (изменено: 30 марта 2026 г.)

Канал: @cherkashindev

275 0

Знаете как это бывает, начинаешь делать задачу, посидел, придумал архитектуру, реализовал, и тут начинается самое интересное… В одном месте что-то не учёл, в коде соседнего модуля вылез косяк, а время идёт, сроки горят и приходится подставить костыли и надеяться что когда-то можно будет это исправить. Да и переписывать свой код больно, он же ваш, вы потратили на него время.

Я это вот к чему. Астрологи объявили год агентного кодинга, все пишут как они ускоряются в 5-10 раз, но эта проблема никуда на самом деле не уходит.

Вы ставите задачу кодексу, клоду или чем вы там пользуетесь, он реализует задачу, вы проверяете, а он архитектурно сделал что-то не так, какие-то требования не учёл, и вы начинаете просить агента исправить всё что он натворил в том же чате. И он делает примерно то же, что и мы - начинает либо фиксить баги, либо добавлять костыли. В итоге код уже не такой хороший, как если бы он сразу сделал нормально. А под конец агент ещё и начинает путаться, тупить и ходить вокруг да около.

И тут на помощь приходит One Shot Prompting. Про подход я уже слышал, но по-настоящему понял его только на стриме Вани в GuideDAO. В общем, суть простая - вы не просите агента исправить все косяки. Вместо этого берёте исходный промпт и уточняете требования, чтобы избежать проблем, которые всплыли в первой реализации. И, конечно, без угрызений совести выкидываете первую версию.

То есть по сути, теперь мы дешево можем делать почти сразу хорошо, переписать всё стало в разы проще.

🧪 Пример из своего опыта. Я решил начать пилить небольшой пет-проект, который, надеюсь, когда-нибудь увидит свет. В проекте используется MapLibre GL JS - библиотека для отображения векторных карт. После очередной фичи я решил попросить кодекс покрыть её playwright тестами, и тут началось.

Он написал тесты и следующие полчаса пытался понять, почему же карта не отображается. Как джун, искал проблему методом тыка. Вносил изменения - карта не работает. Решил, что проблема в кеше - перезапускает дев-сервер. И так раз десять. В итоге он всё-таки дошёл до причины: WebGL, который используется в MapLibre, не работает, когда playwright запущен в headless режиме.

С горем пополам тесты он написал, но на код, конечно, лучше не смотреть. Естественно, он не убрал все свои неудачные попытки пофиксить проблему.И это именно тот случай, когда нужен One Shot Prompting.

Я просто спросил у кодекса, в чём была проблема, добавил это в исходный промпт, откатил изменения и запустил всё заново. В этот раз реализация прошла быстро, и код получился заметно чище.

На работе теперь тоже постоянно применяю этот подход. После этого у меня даже появилась небольшая надежда, что сеньоров заменят не скоро. Потому что джунам гораздо сложнее делать ревью кода, который написал агент, а в итоге это легко может привести к неподдерживаемому коду. Но теперь за ними нужен глаз да глаз, чтобы не пропустить такой код в прод 😅.

⚠️ У подхода, конечно, есть и минус. Токенов тратится больше. Поэтому если задача большая, а багов немного, иногда проще пойти на компромисс и просто попросить агента всё пофиксить.

||А вообще теперь же с 1 марта нельзя говорить one shot prompting. Как это будет по-русски, «однократное задание по образцу»? 😆||

А вы используете One Shot Prompting?

  • 👍 — использую one shot prompting
  • ❤️ — правлю всё в одном чате
  • 😢 — почти не использую ИИ
7 👍 7 💊 1 😢 1