Основы software engineering важны как никогда
Джозеф Хек (Joseph Heck) — разработчик, автор и вечный студент из Сиэтла — опубликовал размышление о том, что значит быть инженером-программистом в эпоху агентной разработки. Его вывод: шумиха вокруг agentic engineering заглушает сигнал, но именно поэтому классические основы software engineering важны сегодня больше, чем когда-либо.
Мощный инструмент, а не конец профессии
За маркетинговым угаром «крупных провайдеров моделей» автор видит действительно интересный инструмент: связку agent harness и модели. Он наблюдает за тем, как коллеги используют эти инструменты, и замечает закономерность: самые впечатляющие результаты показывают не те, кто громче всех кричит в соцсетях о конце профессии. Эти люди нашли «большую чертову палку», исследуют точки опоры и, подобно Архимеду, наваливаются на рычаг, двигая мир.
За последний год агентные харнесы перешли Рубикон «а можно ли это сделать вообще». Автор оговаривается: он не одобряет то, как знания были собраны без разрешения, и считает экономические модели больших провайдеров нежизнеспособными. Но сама возможность никуда не денется — она стремительно дешевеет и сжимается. Открытые open-weight модели уже позволяют мощным персональным компьютерам делать нечто похожее: чуть хуже, но разрыв во времени и качестве невелик.
«Сделать можно» — это только начало
Главный тезис статьи: «можно ли сделать» — лишь малая часть профессии инженера. Хек вспоминает, как в двадцать с лишним лет учился варить металл — и быстро начал создавать вещи, которые не мог даже поднять и вынести из мастерской. Урок, который он тогда усвоил, применим и к софту:
Как что-то собрано — вот что решает всё.
Если работать с агентами с толком и предвидением, можно получить не просто «это работает», но и «это тестируемо» — автор активно использует промпт «develop with red/green TDD». Однако выше этого уровня прочность падает. Стыки — то, как код устроен, его «API», как он встраивается в другой софт — это в такой же мере искусство, как и наука. Субъективные оценки, опирающиеся на опыт и догадки: что вы решаете сейчас и как будете жить с этим софтом долгие годы.
Сделать ПО отлаживаемым, сопровождаемым, слоистым и компонуемым — всё ещё трюк. Значительная часть этой работы требует обстоятельного, вдумчивого рассуждения. И именно здесь LLM, даже на переднем крае возможностей frontier-моделей, пока не дотягивают.
LLM не рассуждают — они предсказывают
Ключевая мысль, которую автор советует держать в голове: LLM не «reason'ят». Они предсказывают, а сами модели — фактически сжатые человеческие знания. Если рассуждение есть в закодированном знании, модель может его «эхом» воспроизвести. Для агентов, ориентированных на разработку ПО, такие следы рассуждений — ценнейшие данные.
Хек ссылается на доступно написанную исследовательскую работу Apple The Illusion of Thinking — о том, насколько плохо LLM справляются с реальным рассуждением. Он следит за исследованиями предсказания результатов действий — это совсем другое направление: JEPA-модели, статья LeWorld Model и недавние выступления Яна Лекуна. Но в сегодняшних кодинг-агентах этого нет.
Что реально повышает эффективность агентов
Работая с LLM, есть масса способов сделать их эффективнее, и многие выигрыши ещё даже не начали выжимать. Большинство успехов, которые автор видит сегодня, строятся на трёх вещах:
- дать модели хорошие, лаконичные данные для работы — в нужный момент;
- предоставить детерминированные инструменты валидации;
- снабдить их обратной связью на естественном языке, которую LLM использует для самокоррекции.
Удивительно в этих моделях не то, что они предсказывают код, — а то, насколько эффективно они вызывают инструменты и следуют инструкциям.
Слепое следование инструкциям — топливо для кошмара
Обратная сторона послушания — то, что Саймон Уиллисон назвал lethal trifecta. Суть: LLM принципиально неспособны отличить хороший совет от плохого и не могут гарантированно и последовательно отражать prompt injection. «Работа над alignment», предохранители и песочницы добавляют барьеры против худшего, но фундаментальные дыры остаются. Херк формулирует жёстко: нечто, неутомимо следующее инструкциям без хорошего рассуждения, — для него «топливо для ночных кошмаров».
Что хотелось бы увидеть дальше
Автор надеется на скорые достижения в обучении моделей — включение следов рассуждений в post-training (RLHF), по духу близкое книге RLHF Book. В его идеальном будущем в reinforced-оценки войдёт само понятие софта с чистыми интерфейсами — отлаживаемого и сопровождаемого.
Внимательно ревьюить, планировать и чинить «швы» софта и систем — критический навык, который мы можем и должны применять при разработке — с агентами или без. А на фоне волны «ой, да это легко реализовать» и тяги к clanker'ам, полагает автор, это важнее, чем когда-либо.
Инженерия — это управление tradeoffs
Хороший момент, чтобы следить за людьми, которые пишут, говорят и делятся мыслями о ремесле софта. Панацеи не существует и не существовало никогда — всегда есть компромиссы и выбор того, что имеет смысл для конкретной задачи. Опираясь на великие умы — и нынешние, и десятилетия назад — мы располагаем отличным ящиком инструментов.
Сводится всё к следующему:
- выбирать — или перерабатывать ради лучшего варианта — правильные абстракции;
- управлять когнитивной нагрузкой;
- понимать, какие части должны быть стабильны, а где мы хотим гибкости — и какой именно.
Это и есть фундамент, на котором агентные ассистенты становятся рычагом, а не источником хаоса.
P.S. Автор отмечает, что все em-dash в тексте расставил сам — слишком уж любит рекурсивные скобки и передышку от запятых.