Недавно я писал, что пошел учиться и изучаю вайбкодинг. А также обещал делиться инсайтами по мере обучения, но факт в том, что каких-то секретных инсайтов как таковых нет. Однако есть простые правила взаимодействия с агентом, предохраняющие вас от печальных последствий в дальнейшем. Про это сегодня и поговорим.
Как чаще всего мы общаемся с агентом? Открываем приложение под определенным брендом и пишем, что хотим получить на выходе: бота, ассистента, сайт или целый сервис. Ну и дальше агент начинает кодить, запрашивать разные токены, иногда даже пушить в Git, и на выходе получается что-то работающее. Чаще всего нас это даже устраивает.
Но проблема в том, что получившийся результат - ненадежная поделка, неустойчивая, немасштабируемая и опасная в плане инфобеза.
Чтобы так не было, ниже несколько лайфхаков, как правильно организовать работу:
0️⃣ Начните с описания проекта. Это своеобразный манифест про ваше приложение, правила работы, технологии, сервер, тестирование. То есть некая отправная точка, которую любой агент считывает при начале работы. Обычно такой файл называется AGENTS.md.
1️⃣ Прежде чем делать фичу, напишите спецификацию. На ее основе создаются план работы и тесты, и с ней же агент сверяется, чтобы ничего не поломать при расширении функционала.
2️⃣ Всегда используйте Plan Mode. В этом режиме агент не бросается делать фичу сразу, сначала он рассуждает, задает вопросы, советуется, и на выходе получается план, который вы согласовываете. По нему и ведется разработка.
3️⃣ Сначала пишутся тесты, потом код. На основе спеки просим агента написать автотесты, чтобы проверять функционал. Да, именно в таком порядке - сначала тест, после него реализация. У агента должно быть правило перед любым релизом всегда запускать тесты.
4️⃣ Берегите секреты. Токены и ключи храните в файле .env, а сам .env добавьте в .gitignore, чтобы он не улетел в Git. Никогда не вставляйте их в чат и не давайте агенту доступ к проду. А если ключ уже попал в репозиторий, перевыпустите его, удаления файла недостаточно, так как он останется в истории вашей переписки и коммитов.
5️⃣ Храните код в Git. Код вашего детища обязательно должен жить в Гите - разработали фичу, прогнали через тесты, коммит и пуш. Так у вас всегда будет история изменений, и если агент что-то сломает, можно вернуться к рабочей версии.
Его можно настроить самостоятельно, просто объяснив агенту, что вы хотите и попросив запомнить. Но благо умные люди уже выложили эти правила в виде готовых скиллов или даже целых фреймворков, например таких как Superpowers.
Агент сильно ускоряет разработку, но скорость без правил дает ту самую поделку. Использование конвеера фичи превращает ее в надежное приложение, которое можно развивать, не боясь что-то сломать.
Как меняется работа с данными в эпоху ИИ
➡️ Узнайте на GoCloud Tech 2026
15 октября в Москве пройдет ИТ-конференция от Cloud․ru для тех, кто создает технологии.
Отдельный трек будет посвящен данным и ML:
▶️метаслой данных и новые требования к Data Governance
▶️миграция корпоративных хранилищ
▶️методы вычислительных хранилищ в облаке
▶️защита чувствительных данных при работе с LLM
А еще вас ждут хардовые доклады про инфраструктуру и разработку, технозоны, воркшопы и много нетворкинга.
Количество офлайн-мест ограничено, успейте зарегистрироваться
Когда я изучал программирование, то нас учили простому правилу. Функция при одних и тех же входных данных возвращает один и тот же результат. Два плюс два всегда равно четыре. Это называется детерминированность.
Языковая модель работает по-другому. Она вероятностная, поэтому при одинаковых входных данных может пойти разными путями. Но как модель выбирает путь, по которому пойти?
Под капотом она предсказывает следующий фрагмент текста (токен) на основе двух факторов:
▪️Информации, на которой модель была обучена;
▪️Того, что вы передаете ей на вход (промпта).
Далее на каждом шаге она оценивает, насколько вероятен каждый следующий токен. Более вероятные она выбирает чаще, но может выбрать и менее вероятные. Угадала кусок, показала его на экране и уже от него угадывает следующий. Вы можете наблюдать за этим процессом при диалоге в чате, когда печатается ответ, как будто его при вас набирает живой человек. Каждый выбранный токен меняет вероятности для следующего. Поэтому один и тот же вопрос, заданный дважды, может дать два разных ответа.
Теперь давайте разберемся с тем, что такое токен. Токен - это не слово. Иногда это действительно целое слово, но чаще лишь часть слова, знак или пробел.
На английском 1 токен занимает примерно 4 символа, сто токенов - около 75 слов. В русском иначе - 1 токен занимает 2-3 символа, сто токенов это 30-40 слов. Одна и та же мысль на русском часто тратит в 1.5-2 раза больше токенов.
Почему так происходит? Токенайзер собирает словарь из самых частых кусков в данных, на которых модель учили. Чем чаще последовательность встречалась, тем выше шанс, что она станет одним токеном. Английского в обучающих данных было гораздо больше, поэтому целые английские слова часто лежат в словаре одним куском. Русский исторически дробился сильнее, иногда до отдельных букв. Сейчас ситуация стала лучше, но русское слово все равно чаще режется на 2-4 токена, английское на 1-2.
На практике это влияет на стоимость, поэтому один и тот же запрос на русском выходит дороже, и в лимит модели русского текста влезает гораздо меньше, а значит, долгий диалог упирается в потолок раньше.
Можете проверить сами: вставьте одну и ту же фразу по-русски и по-английски в любой токенайзер и сравните счетчик.
С базой вроде разобрались. Теперь, если модель на один и тот же вопрос ответит по-разному, вы знаете почему.