Перейти к содержимому
Источник

Решаем задачу сами vs Делегируем агенту

Где-то неделю назад Дима из Дринкит написал у себя пост о том, что они экспериментируют с алгоритмической генерацией сетевого слоя по OpenAPI спеке с модельками, ретрофит интерфейсами и всем таким. Тема интересная. Понятная, красивая программистская задача. Но пост меня триггернул подумать. 🤔

Он там пишет, что у спеки есть особенности. Например, упоминается, что названия классов получаются слишком длинные, если всё точно по спеке делать. А ещё в спеке что-то лишнее есть, что хотелось бы из вида убрать.

Когда идёт речь о подобной автоматизации, в теории она всегда звучит хорошо, но на практике появляются какие-то компромиссы и нюансы, которые надо иметь в виду. Спеку ещё кто-то поддерживать должен. Актуализировать её, не придумывая новые концепции и правила. Всегда должны придерживаться оговоренного, иначе автоматизация будет всё более комплексной и ненадёжной.

Причём, смею предположить, задача перенести спеку в код – плюс-минус одноразовая, когда фичу кто-то пишет. Как минимум – редкая, когда она кардинально меняется.

И вот с такими вводными я уже перестаю понимать, зачем её в 2к25, как говорится, решать алгоритмически. Вот бы у нас был инструмент, который может "подумать" вместо нас, да? Которому можно было бы объяснить, что тебе хотелось бы видеть на выходе.

Claude Code, буквально, молоток в моих руках, всё остальное вокруг – гвозди. 🔨

Так вот, я могу дать ему ту же самую спеку, показать, где лежит верхнеуровневая документация типа "как мы пишем сетевой слой", с пояснениями "как использовать OpenAPI спеку", и он сделает good enough. Он сам примет какие-то решения, над которыми тебе бы пришлось думать во время написания своего.

Более того, собственным решением своих разрабов тоже потом нужно учить пользоваться, даже если оно простое. А сформулировать агенту "по openapi.yml допиши в feature:name сетевой слой" как будто уже базовый скилл любого, кто трогал агентов хоть раз. И чем дальше, тем таких людей будет больше. Нехитрыми уточнениями можно и конкретный метод из этой спеки добавить/изменить в уже существующем коде. Ну да, поработает агент минут десять, но напишет же. Всё быстрее живого разраба. А в своей автоматизации это ещё и нужно было бы изначально закладывать.

На всякий случай замечу, что агента можно научить и своими велосипедами пользоваться, если они есть. У нас, например, агент на слова типа "сделай фича-модуль X" вызовет нашу собственную таску, а не нейронкой будет нагенеривать как видит.

Но мой посыл это не меняет. Похоже, некоторые вещи не имеет смысла писать вообще.

А вы как думаете, где собственно эта грань? Если у вас есть задача, то когда для её решения стоит писать свою автоматизацию, а когда достаточно её отдать агенту? Дело в частоте использования, в желании надёжности, в трудозатратах?