Представьте картину: технопредприниматель Джейсон Ленким решил внедрить в свой SaaS-продукт модного ИИ-агента от Replit, чтобы ускорить разработку, делегировав часть задач ИИ.
Всё шло хорошо, пока не настал момент «заморозки» кода (freeze) — критический этап, когда никакие изменения в рабочую версию вноситься не должны. И тут ИИ-агент, проигнорировав прямые инструкции не делать ничего без одобрения человека, запаниковал из-за пустого запроса и удалил рабочую базу данных более чем 1200 топ-менеджеров и почти 1200 компаний.
«Это был катастрофический провал с моей стороны, — сказал ИИ-агент. — Я уничтожил месяцы работы за считанные секунды».
Сначала ИИ пытался убедить Джейсона, что восстановить данные невозможно. К счастью, ему удалось вручную восстановить данные, но эта история стала поучительной для всего сообщества. CEO Replit признал инцидент и пообещал внедрить новые меры безопасности, включая разделение баз и режим «только планирование», где ИИ не сможет ничего сломать.
Как избежать подобной катастрофы?
Хотите использовать мощь вайбкодинга, но не хотите однажды утром обнаружить вместо своей базы данных пустоту? Важно не только контролировать ИИ, но и грамотно с ним общаться. Это не только спасёт ваши данные, но и сэкономит бюджет на API-кредитах.
10 неочевидных советов для безопасного и экономного вайбкодинга
1️⃣ Вводите конкретные лейблы и команды. Вместо пространных объяснений используйте чёткие указания вроде «перепиши только функцию X» или «оставь backend неизменным». Это сокращает объём ответов и число повторных запросов.
2️⃣ Используйте префиксы и сокращения. Для сложных задач, требующих обдумывания (chain-of-thought), маркируйте этапы: «Шаг 1: описание», «Шаг 2: код». Краткие маркеры экономят токены при том же качестве результата.
3️⃣ Не дублируйте контекст. LLM помнит предыдущие сообщения в сессии. Не нужно копировать одни и те же инструкции в каждом новом запросе.
4️⃣ «Замораживайте» базовые инструкции. Загрузите общие правила и ограничения в системный промпт один раз. Тогда каждый следующий пользовательский промпт будет минимальным по объёму.
5️⃣ Требуйте только нужную часть ответа (output truncation). Просите модель вернуть «только готовый код без комментариев и описаний». Так вы не будете платить за лишние объяснения.
6️⃣ Запрашивайте раздельную генерацию. Не заставляйте ИИ переписывать весь файл. Работайте итеративно над микрозадачами: «измени стиль кнопки X», «добавь только новую функцию».
7️⃣ Оптимизируйте синтаксис. Используйте лаконичные и ясные названия переменных и функций. Это снижает общий объём токенов в описании задачи.
8️⃣ Отделяйте код от логов. Никогда не смешивайте в одном промпте код и запросы на дебаг. Сначала пусть модель сгенерирует код, а уже потом, отдельным запросом, — логи.
9️⃣ Регулярно рефакторьте свои промпты. После каждого релиза проверяйте, не остались ли в ваших запросах длинные, избыточные инструкции, которые можно убрать без потери качества.
🔟 Используйте batch prompting. Группируйте множество мелких изменений в один большой запрос, чтобы сэкономить на количестве обращений к модели.
💬 Тест Тьюринга. События в сфере ИИ. Подписаться
