Ревью недостаточно
Похоже, уже все доехали до мысли, что ИИ-разработка без разработчика — затея так себе. Но, кажется, не все ещё догоняют, насколько это может быть опасно на самом деле. Вот вам пример из реальной жизни.
Представьте, что вы списываете с клиента подписку раз в месяц через какую-нибудь юкассу. Реализация вроде тривиальна: раз в день вы отбираете всех клиентов, у которых прошёл месяц с последнего списания, и списываете.
И вот тут есть типовая ошибка, с которой знаком любой сеньор-помидор. Вы списали деньги и сохраняете списание в базу. Но если что-то по какой-то причине сломалось, то деньги списались, а в базу ничего не сохранилось. На следующем проходе вы снова видите этого клиента, у которого последняя дата списания больше месяца назад — и списываете деньги ещё раз. Неприятная ошибка, да?
Решается это идемпотентностью вызова. В наше время любой сеньор про эту проблему знает, понимает её и умеет разруливать.
Но я лично видел, как опус эту ошибку не заметил и сделал наивное решение без всякой идемпотентности. При том что у поставщика в API этот ключ идемпотентности есть и чётко прописан. Агент просто не придал этому значения.
Стрём? Не то слово.
Плот твист
Куда более стрёмно другое: эта ошибка не была замечена и на человеческом ревью, несмотря на весь опыт и экспертизу. Потому что агентская разработка сильно усложняет вникание: продумать задачу на всю глубину становится тяжелее, когда код написан не тобой. Об этом уже многие говорили, но мне важно зафиксировать сам механизм: опасность не только в ошибках ИИ, но и в том, что человек выпадает из глубокого осмысления задачи.
Плот твист #2
Кстати ошибка нашлась самим же опусом при валидации тестовой модели на стенде: плохо настроенная интеграция сломалась и навела клод на мысль, что тут что-то не так.
Может, всё-таки при хорошем харнессе можно уже и без человека? Раз уж он все равно не ловит такие ошибки.
Плот твист #3
Если вас тоже посетила эта мысль, то вот вам последний поворот сюжета: при попытке фикса этой проблемы тупая ллмка неправильно поняла проблему, написала неправильный тест и начала его зеленить.
Выводы?
Стрёмно! Ошибка вроде простая, но ни модель не углядела сразу, ни человек. Что означает, что ИИ-разработка, в целом, не снижает требования к разработчику, а, наоборот, повышает. Впрочем, не сказать, что это большая новость: метафора спорткара на этом канале уже звучала.
Причём, эта конкретная проблема - это же просто пример. Реально таких опасных мест в разработке куда больше.
Что делать?
Мы знаем, что разработчики при достаточной включённости такое ловят. Этот пример показывает, что и нейросеть подобное может поймать в определённых обстоятельствах. Поэтому в свой процесс надо для каждого этапа включать моменты максимальной вовлечённости разработчика в проблему и создавать условия для агента, в которых он должен ловить такое.
За сим пойду починять фреймворк, наверное.
Post #149
651
- ❤ 11
- 🔥 5