🧪 «У меня локально работает» — это не результат проверки

В прошлом посте был список запретов для ИИ-агентов на боевой системе. Первый пункт — разные контуры. Разбираю, почему он первый.

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

• 📦 Объём данных. Локально десяток записей, в бою — десятки тысяч. Запрос, который отвечал мгновенно, начинает думать полминуты. Локально это не увидеть в принципе. • 🎭 Форма данных. В боевой базе живут записи, которых по нынешним правилам быть не должно: заведённые до изменения логики, с пустыми полями, с опечатками, с отменёнными статусами. Тестовые данные всегда аккуратные — в этом их беда. • 👥 Люди. Пользователи нажимают не то и не в том порядке, открывают три вкладки, уходят с незаполненной формой и возвращаются через час. Ни один сценарий проверки этого не воспроизводит. • ⚙️ Окружение. Версии, переменные, права доступа, внешние сервисы, лимиты. Совпадает почти всё — а ломается на том, что не совпало.

Отсюда правило, записанное в регламенте отдельной строкой: локальное поведение не является доказательством боевого. Ни один агент в прод не ходит — ни посмотреть, ни «только прочитать».

Что тогда делать с локальной копией? Использовать по назначению.

Локалка отвечает на вопрос «есть ли тут ошибка» — если сломалось там, в бою сломается точно. Она не отвечает на вопрос «всё ли теперь хорошо». Это генератор гипотез, а не приёмка.

Приёмка выглядит иначе: изменение выкатывает человек, на боевых данных проверяются заранее названные вещи, и заранее известно, как откатиться. Не «посмотрим, что будет», а «проверяем вот это, и если не сходится — возвращаем как было».

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

Следующий пост — почему агент не должен принимать собственную работу.

#агенты #erp