AI-First: инструменты, правила и границы

Агентные CLI, JSON mode, промпты в Git. Три рабочих случая с числами, правила проверки и три типа отказов, из-за которых модель ошибается правдоподобно.

AI-First: инструменты, правила и границы

AI-First — это способ организации работы, при котором языковая модель постоянно включена в цикл разработки: написание кода, ревью, документирование, эксплуатация результата. Термин перекочевал из продуктового менеджмента, где «AI-first продукт» означает, что модель и есть продукт. В инженерной практике смысл уже и скучнее: модель — первый инструмент, к которому тянешься, и нужна причина, чтобы взять другой.

25мин
уходило у менеджера на квалификацию одного лида руками
86сек
технический аудит страницы целиком, на Raspberry Pi
2недели
работаешь медленнее, пока учишься писать техзадания
3типа
отказов дают почти всю правку за моделью

Оценки по моим проектам, а не замеры на стенде.

Что конкретно использую

Четыре вещи, по убыванию сэкономленного времени:

  • Агентные CLI — Claude Code, Cursor. Отличие от окна чата принципиальное: агент читает репозиторий, выполняет команды, видит вывод и исправляется сам. Окно чата получает абзац контекста и угадывает.
  • Модели в продакшене — GPT-4o-mini квалифицирует входящие лиды в Bitrix24. Достаточно дёшево, чтобы гонять на каждом лиде, достаточно точно для извлечения и классификации. Рассуждающие модели здесь — деньги на ветер.
  • Структурированный вывод — JSON mode с фиксированной схемой вместо свободного текста, который потом разбираешь регулярками. Одна эта замена убрала бо́льшую часть плавающих ошибок в интеграции с CRM.
  • Промпты в Git — промпт это код. Его правка меняет поведение для всех будущих запросов, значит ему место в системе контроля версий, с диффом и возможностью откатиться.

Три конкретных случая

Квалификация лидов. Менеджеры тратили 20–30 минут на лид, собирая бюджет, сроки и лицо, принимающее решение. Теперь вебхук срабатывает при создании лида, модель извлекает эти поля в JSON, CRM показывает их как поля сделки. Если уверенность ниже порога — лид уходит на ручную проверку, а не угадывается.

SEO-аудит. Python-движок собирает факты: коды ответов, мета-теги, структуру заголовков, битые ссылки, robots.txt. Детерминированная работа, модель в ней не участвует. Дальше модель превращает эту груду фактов в текст, с которым может что-то сделать клиент без технического образования. Разделение труда: измеряет код, объясняет модель.

Инфраструктура. Развернуть self-hosted хранилище на Raspberry Pi — Docker, обратный прокси, ACME-сертификаты, правила firewall, бэкап с проверкой восстановимости. Вечер вместо выходных, причём документация вышла лучше той, что я пишу уставшим в конце сборки.

Правила, без которых это не работает

Промпт — это техническое задание. «Сделай лучше» вернёт что-нибудь. «Перепиши эту функцию так, чтобы ошибки возвращались типизированным значением вместо null, сигнатуру сохрани, добавь тест на пустой ввод» вернёт то, что нужно. Бо́льшая часть претензий к качеству моделей, которые я слышу, — это претензии к качеству формулировок.

Вывод модели — это вход для проверки. Для всего детерминированного (миграции, деньги, права доступа) проверка означает тесты, а не вычитывание глазами. Глаза ловят очевидные ошибки. Тесты ловят остальные.

Не могу объяснить строку — строка не идёт в проект. Это ограничение удерживает AI-First от вырождения в копипаст. Оно стоит времени на входе и экономит гораздо больше на выходе: отладка кода, который ты никогда не понимал, — самая дорогая работа из существующих.

Контекст — это бюджет, а не ведро. Высыпать в окно весь репозиторий значит ухудшить ответ. Полезная нагрузка — относящиеся к делу файлы, реальный текст ошибки и ограничение, которое надо соблюсти.

Откуда на самом деле берутся отказы

Современные модели редко выдают бессмыслицу. Они выдают правдоподобное, и это проблема сложнее: правдоподобное проходит ревью. Конкретные типы отказов, с которыми я сталкиваюсь, по частоте:

  • Выдуманные сигнатуры. Функция, которая должна была бы существовать, с аргументами, которые имели бы смысл, в библиотеке, где её никогда не было.
  • Устаревшая конфигурация. Директивы, валидные две мажорные версии назад. На этом меня ловили и Caddy, и Docker Compose: ответ выглядит правильным и не проходит валидацию.
  • Уверенно неверные константы. Таймауты, лимиты, номера портов, названные как факт. Вот эти опаснее всего: ничего не падает, система просто ведёт себя слегка неправильно.

Противоядие негероическое — сверяться с актуальной документацией прежде, чем применять что-либо, касающееся конфигурации.

Куда не пускаю

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

Чего это стоит

Денег: меньше дневной ставки джуна, в месяц. Времени: первые две недели работаешь медленнее, потому что писать техзадания — отдельный навык, и большинство разработчиков, включая меня, приходят к нему неподготовленными.

Честный итог: AI-First переносит усилие с набора текста на формулирование и проверку. Если эти два занятия нравятся вам меньше, чем набор текста, станет хуже. Если интересной частью работы всегда было решать, что именно строить, — её станет больше.

Обсудим задачу.

Опишите задачу или проект — отвечу в течение дня. Если нет чёткого ТЗ, это не проблема: помогу сформулировать.

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