- BrainTools - https://www.braintools.ru -
Agent Comfort: измеримое свойство среды, от которого зависит, справится кодинг агент сам или нет
В обсуждениях агентской разработки сейчас две повторяющиеся истории. Инженеры тонут в ревью сгенерированного кода: с ИИ мержится почти вдвое больше PR, а время ревью выросло на 91% [1]. Продакты и эффективные менеджеры тем временем хвастаются, что выкатывают фичи без программистов. Продакт из Meta [2], чья “суперспособность” от vibe coding разошлась по лентам, передает свой код разработчику на финальное ревью. Суперсила Формулы-1, где под капотом живые кочегары.
В этой статье я предлагаю подход – Agent Comfort: свойство среды разработки, которое можно измерить и целенаправленно поднимать, чтобы кочегаров под капотом заменила среда.
Типичная картина: агенту ставят задачу, он что-то пишет, тесты падают, он читает логи, интерпретирует их по-своему, пробует еще раз, снова мимо. Инженер в это время либо ждет, либо вмешивается и начинает разбираться, что происходит. Если ему хватает терпения докопаться, к третьей итерации выясняется, что агент неправильно понял структуру проекта: в контексте было три версии одного и того же модуля и закомментированный легаси-код пятилетней давности. У некоторых терпение кончается – тогда человек исправляет код сам. Токены сгорели, полдня инженера сгорело. На следующей задаче агент опять ошибается, доверие к нему падает, выгорание инженера растет. При этом формально “мы используем ИИ в разработке”.
Agent Comfort – свойство среды: насколько агенту удобно ориентироваться в контексте, применять доступные инструменты и проверять свою работу. Измеряется оно метрикой First-Prompt Success Rate:
FPSR = задачи, закрытые с первого промпта / всего задач
Если из 10 задач агент закрыл 8 с первого промпта – FPSR = 0.8, комфорт высокий. “Первый промпт” здесь – стартовый промпт сессии. Сколько итераций агент крутил внутри – значения не имеет. Важно, что человек в чате больше не участвовал в уточнении задачи и не отвечал на вопросы агента.
Комфорт держится на трех элементах среды.
Чистый контекст. Минимум шума: понятная структура, история изменений под рукой, отсутствие мешающего легаси. Агент не тратит токены на разбор хаоса и не строит ложных гипотез о том, как устроена система. Каждый лишний файл в контексте – это и расход токенов, и дополнительная возможность ошибиться в интерпретации.
Удобные инструменты. Агент не должен бороться с окружением: угадывать, как собрать проект, как запустить тесты, где лежат логи. Каждая такая борьба – это ложные ветки исследований и дополнительные вопросы. Все запускается одной командой, вывод читается без археологии, результат воспроизводим.
Датчики контура верификации. Способы посмотреть на промежуточное состояние работы, пока она еще идет. Написать сценарный тест и вывести промежуточные состояния выполнения – то, что сводится к оптимизируемым метрикам. В геометрической задаче, например, – построить профиль трехмерной поверхности и получить ее характеристики в точке. В веб-сервисе – получить число запросов к базе на операцию, посмотреть, на что уходит время запроса, обратиться к Zabbix за показателями нагрузки. Датчик – это осциллограф, а не ОТК. Он не выносит fail/pass вердикт, а показывает объективную картину в виде чисел и слов, по которым агент оптимизирует результат генерации под требования задачи. Требования должны быть непротиворечивыми и достижимыми – иначе датчики показывают прогресс к цели, которой не существует.
У высокого комфорта есть следствие, которое я проверял на практике: он частично заменяет интеллект [3] модели. В комфортной среде знание уже лежит в контексте и в контуре верификации – и Sonnet закрывает тикеты сам, без плана от Fable, дешево и быстро.
Человек не участвует во внутреннем цикле “изменение -> проверка -> исправление”. Он настраивает среду, задает цель и оценивает итог, а не код.
Введем парное понятие – Human Comfort: сколько инженерной экспертизы человек должен добавить к своему намерению, чтобы агент выполнил задачу. Меньше экспертизы – выше комфорт. Максимум комфорта – требование на языке продукта, без технических деталей реализации: “при потере связи лодка должна безопасно остановиться и сообщить оператору причину”. Агент будет искать ответ на вопрос “где хранить величину таймаута?” В некомфортной среде вопрос пойдет человеку – вместе с ним упадут и Human Comfort, и FPSR. В комфортной ответ уже лежит в среде: в конвенциях проекта, в истории решений, в конфиге. Если для успеха агента нужен человек, способный написать исчерпывающий инженерный промпт или ответить на все уточняющие вопросы – Human Comfort низкий.
Два понятия дают матрицу из четырех режимов:
|
Agent Comfort |
Human Comfort |
Режим |
|---|---|---|
|
Low |
Low |
Swamp of Despair |
|
Low |
High |
Cheap Lottery |
|
High |
Low |
Heroic Prompting |
|
High |
High |
Paved Road |
Swamp of Despair – Low Agent / Low Human. Легаси, слабый контекст, бедные инструменты. Инженер должен досконально знать систему, подробно объяснять ее агенту и все равно регулярно вытаскивать его из трясины. Платим токенами и инженерной экспертизой.
Cheap Lottery – Low Agent / High Human. От человека почти ничего не требуется: сформулировал желание – получил результат. Иногда ожидаемый. Но агент работает в среде, где плохо ориентируется и плохо проверяет себя, поэтому результат – лотерея, а когда агент возвращается с вопросами, ответить на них человек без инженерной экспертизы не может. Здесь живет большая часть vibe coding: отложенный риск, который срабатывает на проде или вычищается кочегарами на code review.
Heroic Prompting – High Agent / Low Human. Агент способен выполнить сложную задачу, но инженер каждый раз вручную загружает в него недостающее знание: архитектуру, ограничения, инварианты, способы проверки, особенности легаси. Результат как правило ожидаемый – но потому, что инженер в каждой задаче толкает агента к цели заново своим промптом-бульдозером.
Paved Road – High Agent / High Human. Нужное знание уже находится в среде: структура проекта понятна, инструменты доступны, датчики дают обратную связь, гейты проверяют инварианты. Человек формулирует продуктовое намерение, а агент сам добирает инженерный контекст из репозитория, спецификаций и истории решений. Дорога вымощена и служит каждой следующей задаче.
Отдельно от комфорта стоит слой, без которого агентская разработка невозможна. Гейты – это детерминированные проверки инвариантов (в CI-мире Quality Gates). Тесты (юнит, контрактные, регрессионные), линтеры, статические анализаторы, архитектурные чекеры – для C++ я написал такой сам, archcheck [4], – метрики с пороговыми значениями. Они работают в детерминированном pass/fail режиме.
Гейты защищают архитектуру, инфраструктуру и пользователей – а заодно среду от самого агента. Он оставляет за собой дубли, устаревшие комментарии, вторую версию правды, и все это становится контекстом следующей задачи. Низкий комфорт порождает код, который делает среду еще хуже. Гейты разрывают эту петлю.
Агент Replit снес основателю SaaStr продакшн-базу [5], потому что тестовая и боевая базы не были разделены. Tea App выложила в открытый доступ 72 000 документов пользователей [6], включая государственные ID: база осталась с дефолтными настройками, ее даже не взламывали. Разбор семи таких инцидентов [7] за полгода сводит их к общему знаменателю: между выводом агента и продом не было ни одного слоя верификации.
Продакт из Meta, с которого начиналась статья, решает эту проблему по-старому: его код уходит разработчику на финальное ревью. Гейт из живого инженера. Он работает, но не масштабируется – чем больше кода генерят агенты, тем больше ревью ложится на людей. Автоматические гейты забирают повторяемую часть этой работы – то, что можно выразить инвариантом и проверить механически. Так делится труд на Paved Road: инженер строит среду – комфорт и гейты. Агент в этой среде работает с продактом напрямую. Инженер перестает быть ревьюером каждого коммита и становится строителем дороги.
Индустрия уже трижды пыталась закрыть некомфортную среду надстройкой поверх нее. Сначала подробный план писал человек, а агент исполнял. Потом план поручили сильной модели: Fable загружает все знание о системе в план, Sonnet идет по нему. Обе волны – мертворожденная технология: знание тратится заново на каждую задачу, а среда как была непонятной агенту, так и осталась. Третья волна – loop engineering: не промптить агента, а проектировать циклы. В мае 2026 в Claude Code появилась команда /goal: формулируешь условие завершения, агент крутит итерации сам, а после каждого хода маленькая модель читает переписку и решает, достигнута ли цель. Это работает: Борис Черни, создатель Claude Code, за 30 дней сделал 259 PR [8], написанных самим Claude Code. Работу с контекстом эти три волны прошли поверху. Цикл крутится – лавэха мутится.
Проверяющая модель – не детерминированная проверка: она не запускает команды и не читает файлы, а судит по тексту переписки. Технически /goal – это Stop hook [9], который после каждого хода спрашивает модель. Тот же механизм умеет иначе: Stop hook может запускать скрипт, и тогда вердикт выносит код. Свежая академическая работа Proof-or-Stop [10] (июль 2026) требует того же: результат агента – только заявление, пока его не подтвердила проверка, которую можно запустить и повторить без участия модели.
Экономика цикла определяется скоростью сходимости, а сходимость – средой: в комфортной среде цикл доходит до цели за меньшее число итераций. Сломать цикл очень просто: непроверяемая цель, противоречивые требования, переполненный контекст, датчики, оторванные от продукта, отсутствие ограничения по итерациям.
Непроверяемая цель. Автор разбора на vc.ru [11] поставил на ночь “сделай интерфейс настроек удобнее” и утром получил 217 ходов, ноль коммитов и две трети недельного лимита: агент всю ночь двигал верстку туда-обратно и откатывал собственные изменения, потому что такую цель нельзя ни подтвердить, ни опровергнуть.
Переполненный контекст. В другом открытом разборе [12] Claude Code крутил классическую петлю “подход A, стена, подход B, возврат к A”: задача не влезала в контекст, а каждое автосжатие размывало ранние решения.
/goal в некомфортной среде – это попытка забить гол в темноте.
Loop engineering в среде с низким Agent Comfort имеет смысл, только если вы осознанно занимаетесь токенмаксингом [13] – расход токенов некоторые компании успели вставить программистам в KPI. Сейчас некоторые одумались [14]: Meta и Amazon сняли внутренние токен-лидерборды, Duolingo отозвал план мерить сотрудников использованием ИИ.
В проекте матмодели гусеничной машины Rumba агент написал 12 788 строк кода. Датчиком и гейтом там служил механизм сценарного плейера: он прогонял тесты, которые Клод генерил пачками по спекам и замечаниям экспертов, выдавал трассу промежуточных состояний и вердикт по ним. Я настраивал среду: придумывал метрики и замкнутые проверки, находил документацию, заполнял пробелы в контексте и вычищал противоречия, когда агент путался. Как появилась Rumba и почему я выбрал написание с нуля – в “Клоде в шестернях” [15].
Признаки низкого Agent Comfort:
Агент задает вопросы, ответы на которые лежат в репозитории.
Перечитывает одни и те же файлы по несколько раз за сессию.
Меняет код так, что он противоречит соседнему коду или документации.
“Чинит” упавшие тесты подгонкой ожидаемых значений под фактические.
Каждая сессия начинается с археологии: агент заново восстанавливает картину, которую уже строил вчера.
В ответах и коде множатся “честные оговорки”: for now, placeholder, simplified, not verified, one honest caveat – агент заранее тихо снимает с себя ответственность за непроверенное.
Большинство этих симптомов сводится к двум причинам – противоречиям и дырам в контексте. Противоречие – две версии правды в репозитории: документация расходится с кодом и с другой версией себя, комментарий с реализацией, CLAUDE.md с реальной структурой проекта. Классика жанра – комментарий, переживший изменение кода:
// try all 4 directions
for (int dir = 0; dir < 8; dir++)
Человек часто такие расхождения фильтрует не задумываясь, потому что знает, “как на самом деле”. Агент не знает – и выбирает не ту версию. Дыра – отсутствие нужного знания, которое агент молча заполняет правдоподобной выдумкой.
Подъем комфорта – это два направления работы. Первое – контекст: искать и закрывать противоречия и дыры. Попросите вашего агента в режиме максимального думания найти все противоречия в рабочем контексте и проанализировать, как они влияют на его генерации. Возьмите себе за правило – когда агент путается, не исправлять его ответ, а находить все источники, которые его запутали, и удалять/исправлять неверные. Правило (constraint), положенное в контекст, в сессии не вечно: агент соблюдает (почти всегда) ограничение, пока оно живет в его окне, а окно деградирует.
LLM-вики нужна, когда исходники – набор разнородных и противоречивых документов: знание дистиллируется в одну структуру и синхронизируется при изменении исходников. На малой кодовой базе идея переворачивается, я это померил: в archcheck вики на 28 страниц проиграла обычному грепу – страницы оказались больше файлов, которые описывали. Выиграл один плотный файл с фактами, которых нет ни в одном отдельном файле репозитория: минус 49% токенов и минус 92% вызовов инструментов на разведочных вопросах.
Работает это при трех условиях. Файл должен быть короче того, что он заменяет. Агент должен попадать в него сразу, без промежуточных ссылок. И в инструкции файл должен быть назван источником правды, иначе агент прочитает его и все равно полезет в код. Рядом нужна автоматическая проверка, что файл не устарел.
Второе направление – верификация: выбрать правильные ракурсы, с которых агент смотрит на свою работу. Правильный ракурс сводит промежуточный результат к оптимизируемой метрике и тем самым дает агенту возможность самому двигать генерацию к цели, не дожидаясь финального вердикта.
Стоит отметить сдвиг, который ломает привычную интуицию [16]: датчики по-прежнему супер-полезны, но их изготовление перестало что-либо стоить. Обвязка для наблюдаемости всегда была дорогой скучной инженерной работой, которую сдвигали в конец бэклога, поэтому ее делали редко. Теперь прибор по выбранному ракурсу агент изготавливает за минуты. Дорогим ресурсом остался только выбор ракурса, за который ответственен человек.
Вышел Claude Opus 5, и Anthropic опубликовала официальный гайд [17] по работе с ним. Рекомендация для агентного кодинга: модель работает лучше всего, когда получает полную спецификацию задачи заранее и дальше работает сама. Узнаете квадрант? Полная спецификация заранее – это Heroic Prompting: все инженерное знание снова выгружается в промпт.
Вторая деталь: гайд отмечает, что Opus 5 проверяет свою работу сам, и просит убрать из промптов инструкции “перепроверь”: они не отменяются зашитым поведением [18], а пересекаются с ним и ведут к потреблению лишних токенов. Для новых моделей Anthropic удалила больше 80% системного промпта Claude Code без потери качества – правила, защищавшие от слабостей прошлых моделей, стали шумом, конкурирующим за внимание [19] с настоящими инструкциями. Это еще раз подтверждает критическую важность контекста.
Официальные гайды отправляют в Heroic Prompting: это лучший режим из тех, куда можно попасть, не работая над средой. Paved Road придется строить самим.
Пока вендоры призывают писать исчерпывающие промпты, с другого конца подъехал олдскул. Роберт Мартин, автор “Чистого кода”, написал на днях [20]: “моя текущая стратегия – не читать код, написанный моими агентами”. Вместо чтения он окружает агентов гейтами: юнит-тесты, gherkin-сценарии, метрики качества, мутационное тестирование, покрытие.
Инженеры тонут в ревью, потому что сегодня они сами работают гейтами – живыми и не масштабируемыми вместе с генерацией. Подъем Agent Comfort и автоматика инвариантов снимают эту работу с людей: агент работает в чистой среде и приходит к цели за меньшее число итераций, проверки не пускают в прод сломанное, а человек смотрит на результат и выбирает ракурс автоматической верификации.
Если вы дочитали до этого места – попробуйте дать прочесть эту статью вашему агенту в конце длинного сложного чата, полного ошибок и разочарований. Вы удивитесь результату.
Автор: blurman
Источник [21]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/33664
URLs in this post:
[1] время ревью выросло на 91%: https://linearb.io/dev-interrupted/podcast/linearb-2026-benchmarks-ai-pr-merge-rate
[2] Продакт из Meta: https://www.aol.com/news/meta-product-manager-no-technical-060448066.html
[3] интеллект: http://www.braintools.ru/article/7605
[4] archcheck: https://habr.com/ru/articles/1057624/
[5] Агент Replit снес основателю SaaStr продакшн-базу: https://fortune.com/2025/07/23/ai-coding-tool-replit-wiped-database-called-it-a-catastrophic-failure/
[6] Tea App выложила в открытый доступ 72 000 документов пользователей: https://www.nbcnews.com/tech/social-media/tea-app-hacked-13000-photos-leaked-4chan-call-action-rcna221139
[7] Разбор семи таких инцидентов: https://getautonoma.com/blog/vibe-coding-failures
[8] за 30 дней сделал 259 PR: https://x.com/bcherny/status/2004887829252317325
[9] Stop hook: https://code.claude.com/docs/en/goal
[10] Proof-or-Stop: https://arxiv.org/abs/2607.14890
[11] Автор разбора на vc.ru: https://vc.ru/ai/2982760-problemy-s-claude-code-i-rezhim-goal
[12] другом открытом разборе: https://dev.to/ailnk0/claude-code-stuck-in-a-failure-loop-i-escaped-with-multi-agent-16di
[13] токенмаксингом: https://habr.com/ru/articles/1020648/
[14] одумались: https://fortune.com/2026/05/28/tokenmaxxing-is-dead-companies-didnt-get-the-roi-from-ai-they-wanted-to-see/
[15] “Клоде в шестернях”: https://habr.com/ru/articles/1045911/
[16] интуицию: http://www.braintools.ru/article/6929
[17] официальный гайд: https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5
[18] поведением: http://www.braintools.ru/article/9372
[19] внимание: http://www.braintools.ru/article/7595
[20] написал на днях: https://x.com/unclebobmartin/status/2080257779395154409
[21] Источник: https://habr.com/ru/articles/1064012/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1064012
Нажмите здесь для печати.