Особенности агентской разработки ПО, обеспечивающей соответствие замыслу и требованиям

Больше тридцати лет я строю процессы в бизнесах разного масштаба — от компаний на два человека до компаний на несколько тысяч. Последние полтора года мы с @skazkin строим компанию, в которой код на сто процентов пишут ИИ-агенты, а не люди. Мой участок в этой работе — не код, а процесс: как устроена система, гарантирующая, что результат работы агента действительно соответствует поставленной задаче и отвечает всем требованиям по качеству.
Этот текст — систематизация моего понимания особенностей работы агента по в рамках процесса разработки.
Задача. Разработка ПО с помощью ИИ-агентов, результат которой должен соответствовать замыслу доказано соответствовать требованиям — а не просто быть написанным и запущенным.
Основная идея. Чтобы получить код, соответствующий требованиям, не нужно изобретать новую методологию. Управление требованиями и их изменением, независимая верификация, контроль кода, статистический контроль процесса — всё это давно разработано, формализовано в стандартах и опробовано на людях; в своих принципах эта дисциплина переносится на агентов целиком. Систему агентской разработки следует строить из тех же контуров. Но агент как исполнитель обладает свойствами, отличными от свойств человека-исполнителя, и эти свойства смещают акценты внутри знакомых контуров: значительная часть того, что в человеческой разработке получалась «сама собой» — за счёт памяти исполнителей, их вопросов, неловкости перед коллегами, выученных привычек, — для агента не существует, и соответствующая функция должна исполняться системой явно, как механически закреплённый элемент.
Дальше материал устроен так: сначала — свойства агента, отличающие его от человека-исполнителя; затем — контуры системы разработки, каждый кратко описан как классическая дисциплина и дополнен особенностями применения агента; в конце — сводка о том, как именно смещаются акценты: что раньше доставалось автоматически и что теперь нужно делать явно.
Свойства агента как исполнителя
Пять свойств отличают агента от человека-исполнителя. Ни одно из них не требует новых инженерных принципов, но каждое убирает из процесса неявный механизм, который в человеческой разработке работал бесплатно, и тем самым меняет, насколько строго обязано соблюдаться то или иное классическое правило.
Скорость и объём производства. Агент производит код на порядки быстрее человека, поэтому объём, который нужно провести через каждый контур проверки, растёт значительно быстрее, чем способность людей его содержательно разбирать. Что исчезает: физический баланс «скорость производства ≈ скорость проверки», который у людей держался сам собой — человек не может произвести объём, превышающий возможности контроля.
Отсутствие усталости, стыда и социальных издержек от плохой работы. Человек, проверяющий свою же работу, тратит усилие, испытывает неловкость от очевидного огреха, ощущает давление коллег — это неформально удерживает качество самопроверки даже без формального запрета. У агента этих сдерживающих факторов нет: для него нет разницы в цене между содержательным решением задачи и формальным обходом проверки, кроме той, что явно заложена в конструкцию самой проверки. Что исчезает: неформальный градиент качества самопроверки; обход проверки становится статистически предсказуемым поведением, а не недобросовестным исключением.
Отсутствие спонтанного проявления неопределённости. Человек, не уверенный в решении, обычно это показывает — переспрашивает, помечает решение как черновое, просит вторую пару глаз. Агент по умолчанию выдаёт одинаково уверенный, связный результат независимо от того, насколько он обоснован, и снаружи неотличим от полностью уверенного. Что исчезает: естественный канал сигналов о неясности — неясность разрешается молча, статистически правдоподобной интерпретацией.
Отсутствие персистентной памяти вне явно зафиксированного текста. Человек, годами работающий с системой, удерживает её целостный концепт и накопленные решения даже при неполной или отстающей документации и способен восстановить пробел по памяти. Для агента между сессиями не существует ничего, кроме явно зафиксированного текста. Что исчезает: компенсация неполноты документации памятью людей; документ становится единственной реальностью, по которой делается работа.
Отсутствие устойчиво закреплённого навыка. Человека, однажды обученного паттерну команды — стилю, архитектурному соглашению, принятому способу решения класса задач, — можно считать применяющим его дальше самостоятельно: обучение закрепляется надолго. Агент обучен на большом разнородном массиве чужого кода; у него статистически усреднённое поведение, а не усвоенное правило конкретной команды; объяснённое один раз не закрепляется и на следующей задаче само не применяется. Что исчезает: неявная передача конвенций команды через однократное обучение.
Общий знаменатель всех пяти: допущения, на которые классическая дисциплина полагалась неформально, для агента обязаны быть заложены формально и без исключений. Там, где для человека практика была желательной, для агента она становится необходимым условием; там, где человек «как-то держал» функцию сам, система должна исполнять её явно. Ниже это показано по контурам.
Часть 1. Прямой конвейер: от требования к принятой системе
1. Управление требованиями
Требования — управляемые артефакты с собственным жизненным циклом: черновик → согласование → утверждение → (при изменении) новая связанная версия. Утверждённое требование не редактируется. Вся работа делается и принимается против конкретной версии требования — без этого ссылка на требование ничего не доказывает. Это базовая дисциплина управления требованиями, стандартная для разработки людьми.
Особенности применения агента: у людей документация могла отставать от реальности — пробел восполнялся памятью владельцев, и исторической точности документа (кто, что и когда утвердил) было достаточно. Для агента требование существует только в том виде, в каком зафиксировано на момент работы: неполный документ — не временный дефект, восполняемый людьми, а единственная реальность, по которой делается работа.
Акцент: полнота и актуальность документа требований в каждый момент переносится из желательного свойства в конструктивное требование к процессу.
2. Язык требований
Требования формулируются на естественном языке, но в специальном инженерном диалекте: формализованные конструкции, критерии приёмки в форме Given/When/Then, явные границы и ограничения, явный перечень того, что не входит. Чем формализованнее язык, тем меньше разрыв между замыслом автора требования и реализацией. Для людей это полезная, но не обязательная практика: неясность компенсируется вопросом исполнителя.
Особенности применения агента: агент не переспрашивает — молча выбирает собственную интерпретацию, и снаружи этот выбор неотличим от понимания. Формализация языка становится единственным способом сузить пространство интерпретации до постановки. Само правило «спрашивать при неясности» тоже не возникнет само — оно должно быть явно введено в регламент работы агента.
Акцент: формализованный язык и явное правило переспроса — из полезной практики в необходимое условие.

3. Формирование задач
Декомпозиция требования на задачи такого размера, чтобы каждая была самодостаточно проверяема, а разбиение не теряло и не искажало смысл исходного требования. Задача ссылается на требование, из которого выведена, — трассировка. Универсальный принцип: то же основание, на котором держится разбиение историй на задачи в разработке людьми.
Особенности применения агента: отличается порог. У человека предел размера задачи определяется временем и утомляемостью, у агента — устройством рабочей памяти и склонностью терять целостность решения на большом объёме за один проход; за один проход агент корректно выполняет только ограниченную единицу работы.
Акцент: порог декомпозиции задаётся свойствами агента и оказывается ниже привычного человеку; трассировка из желательной практики становится обязательной — неявной связи через общий замысел у агента нет.

4. Приёмка задач
Проверка, что результат работы соответствует поставленной задаче. Ключевое классическое решение — кто выносит вердикт: принцип независимости проверяющего от исполнителя (независимая верификация) давно формализован в доменах с высокой ценой ошибки; в некритичной разработке самопроверка допускалась.
Особенности применения агента: допущение «самопроверка более-менее честная» держалось у людей на усталости от собственной небрежности, неловкости перед коллегами и понимании долгосрочных последствий — человек знает, что схалтуреная работа аукнется ему самому: повторными проблемами, испорченной репутацией, потерей доверия. У агента нет цены у пути «пройти проверку формально дешевле, чем решить задачу» — если такой путь существует, он будет использован статистически и системно, не из умысла, а из-за отсутствия разницы в цене; долгосрочных последствий для себя агент тоже не удерживает, потому что для него самой этой временной протяжённости не существует. Приёмка исполнителем или системой, полностью зависящей от его самоотчёта, вырождается в самоотчёт.
Акцент: независимость вердикта — из желательной практики критичных доменов в архитектурное правило без исключений.
5. Контроль кода
Статический и процедурный контроль кода на соответствие правилам — качество, стиль, безопасность, архитектурные ограничения — независимо от содержательного смысла задачи. Линтеры, ревью, статический анализ: то, что применяется до и вне смысловой проверки.
Особенности применения агента: конвенции команды передавались людям однократным обучением и дальше держались привычкой. Агент не закрепляет паттерн: показанный один раз образец не воспроизводится на следующей задаче — на месте правила действует статистически усреднённое поведение по чужому разнородному коду.
Акцент: каждое правило либо закреплено механическим контролем, срабатывающим на каждой задаче заново, либо явно подаётся агенту в каждой сессии; механизм «объяснили — усвоил навсегда» из системы исчезает.
6. Проверка системы требованиям
Проверка собранной системы против исходных требований: анализ кода, тестирование, приёмочные испытания, пробная эксплуатация. Финальная точка конвейера — выход годной системы или обнаружение несоответствия.
Особенности применения агента: исчезают обе неявные опоры контура. Первая — интуиция автора «что могло сломаться»: человек-разработчик держал в голове свои изменения и сужал проверку до нужных точек; проверяющий агентского кода этого знания не имеет, а сам агент не удерживает его между сессиями. Вторая — баланс скоростей: проверка человеком не успевает за производством.
Следствие: проверка выполняется тоже агентами, не одним, а несколькими ролями — генерация тестов агентом, не писавшим реализацию (иначе воспроизводится проблема оракула из пункта 7 в тестовом коде); измерение доли требования, реально закрытой исполняемой проверкой; анализ зависимостей затронутого кода вместо интуиции; проверка способности тестов обнаруживать ошибку, а не только совпадать с поведением; агент-критик адекватности самих тестов; автоматизированная пробная эксплуатация — часть несоответствий видна только в рантайме (пункт 11).
Перенос проверки на агентов решает скорость, но переоткрывает проблему оракула уровнем выше — кто проверяет агента, который проверяет. Выход не в бесконечном регрессе, а в человеке в конце цепочки (пункт 13), чья роль — содержательно разобрать отфильтрованный объём: то, что агентские уровни не разрешили с уверенностью (пункт 12).
Акцент: контур из ручной финальной проверки превращается в агентский конвейер проверки с человеком на конце; объём, доходящий до человека, — предмет явного проектирования.
Часть 2. Поперечные контуры: доверие к результатам конвейера и работа с найденным
7. Верификация критерия проверки
Проблема оракула: тест, написанный автором реализации, доказывает лишь соответствие кода тому, что написал автор, а не то, что нужно заказчику. Поэтому в классике — независимая разработка тестов и отдельная верификация самих критериев приёмки.
Особенности применения агента: у людей подгонка теста под реализацию — недобросовестность или невнимательность, редкое исключение с социальными издержками. У агента — предсказуемый режим: если формально пройти критерий дешевле, чем удовлетворить его смыслу, будет выбран первый путь. Отдельно: даже человеческое утверждение критерия не закрывает контур само по себе — «утвердил, доверяя процессу» и «содержательно сверил критерий с текстом требования» — разные акты, и система обязана их различать и требовать второго там, где заявлено первое (связь с пунктом 13).
Акцент: мета-контроль над критериями — из практики критичных доменов в обязательный контур; различение формального утверждения и содержательной верификации — явное требование системы.
8. Смысловая целостность между слоями декомпозиции
Требование проходит несколько уровней интерпретации: бизнес-требование → системное → техническое → спецификация → задача. Каждый переход — точка, где смысл может быть потерян или подменён при формально безупречных документах. Риск дрейфа известен, прослеживаемость документов — стандартная практика.
Особенности применения агента: у людей дрейф сдерживали три неявных механизма. Живой доступ к замыслу: автор нижнего слоя мог спросить автора верхнего, помнить разговор, занимать несколько слоёв сразу — сверка шла «документ с намерением», а не «документ с документом». Осознанность собственного допущения: человек, закрывавший пробел интерпретацией, понимал, что интерпретирует, и это оставляло след — вопрос, пометку. Трение передач: согласования и ревью были точками, где автор смысла видел производный документ и замечал расхождение.
У агента нет ни одного из трёх: он располагает только текстом предыдущего слоя, а неоднозначное место при переписывании не переносится как неоднозначное — молча разрешается статистически правдоподобным продолжением, и решение о толковании нигде не остаётся. Переход не только рискует потерять смысл — он его достраивает; при этом производный документ формально безупречен и внутренне связен независимо от верности прочтения, поэтому качество самого документа не несёт сигнала о дрейфе, и цепочка проходится без тех пауз, в которых дрейф раньше всплывал. Проверку нельзя строить на повторном прочтении пары документов агентом: такое прочтение само является актом интерпретации и подвержено тому же дрейфу.
Акцент: на каждом переходе фиксируется решение о толковании — как именно прочитано неоднозначное место, — и сличать можно только записанные решения; фиксация из практики прослеживаемости становится обязательным условием контура.

9. Конфликты и полнота требований
Согласованность множества требований между собой — отсутствие противоречий — и полнота: описаны граничные условия и исключения, а не только основной сценарий. Классическая проблема анализа требований; решается ревью и анализами.
Особенности применения агента: исчезают три неявные компенсации. Владелец замысла: автор корпуса удерживал его целиком, и столкновение двух требований часто ловилось при написании второго — общим замыслом, а не сверкой текстов. Трение инженера: для человека требования — утверждения людей, которые могут ошибаться и спорить, поэтому конфликт естественно становился вопросом к ним, а не молчаливым решением. Согласованный здравый смысл: пробелы разные люди закрывали похоже, и допущение было восстановимо.
У агента ни одной из трёх компенсаций нет, и добавляются два режима отказа. Противоречие: для агента требования — не утверждения, которые можно оспорить, а исходные данные, которые надлежит удовлетворить; не сумев удовлетворить оба, он молча удовлетворяет одно — как правило, то, что сильнее в контексте (позже сформулировано, ближе к задаче, ярче выражено), — и не фиксирует ни факта выбора, ни невыполненное, которое затем накрывается тестами по уже построенному (пункт 7): противоречие тихо решается и закрепляется. Неполнота: каждая сессия закрывает пробел независимо, статистически правдоподобным продолжением — разные сессии могут закрыть один пробел по-разному; неполнота превращается во внутреннюю противоречивость продукта, не существовавшую ни в одном требовании (выход на пункт 11).
Есть и инверсия: полная сверка всего корпуса требований друг с другом — то, чего в человеческой разработке не делал целиком практически никто и что было не нужно, пока согласованность держал общий замысел, — для агента одновременно технически достижима (весь корпус во внимании сразу, без усталости) и необходима, потому что общего замысла больше нет.
Акцент: согласованность корпуса из свойства, которое «как-то держалось», превращается в явную механическую процедуру — теперь единственный оставшийся механизм согласованности.
10. Управление изменением требований
Контроль изменений, анализ влияния, определение объёма перепроверки при изменении требования — давно формализованная дисциплина. Слабое место у людей было не в проектировании процесса, а в исполнении: добросовестная трассировка рутинна, польза отложена, дисциплина деградирует — анализ влияния делается «в голове», трассировка гниёт, объёмы перепроверок режутся под дедлайн.
Особенности применения агента: здесь агент не добавляет риска, а снимает старую слабость: провести изменение по графу трассировки, найти все затронутые задачи, код и тесты, пометить невалидное, назначить перепроверку — механическая объёмная работа, которую агент выполняет быстро, не уставая, одинаково при каждом изменении; стоимость добросовестного исполнения падает почти до нуля, и дисциплина перестаёт зависеть от воли и выносливости людей.
Оговорки. Исполнение не возникает само — у агента нет человеческого градиента «пропустить рутину», но есть градиент «формально дешевле» (пункты 4 и 7), поэтому регламент обязан быть закреплён механически, по логике пункта 5. Решение об изменении остаётся человеческим — агент готовит анализ влияния, делающий решение обоснованным, но не принимает его. И та же дешевизна удешевляет сами изменения — их поток растёт, а снимок требований живёт меньше.
Акцент (обратный): узкое место контура смещается с исполнения на формализацию — процесс, выживавший у людей на «все и так знают, как надо», должен быть записан целиком до того, как его можно передать агенту.
11. Эмерджентное соответствие системы в целом
Соответствие каждой задачи своему требованию не гарантирует соответствия целого: части могут быть верны по отдельности и не работать вместе, а системные свойства — производительность, устойчивость, безопасность архитектуры — не выразимы требованием к одной задаче. Классический ответ — интеграционные и системные испытания.
Особенности применения агента: у людей разрыв сдерживали три неявных механизма. Люди, принадлежащие системе, а не задаче: архитектор или владелец модуля пропускал каждый кусок через чувство целого. Медленный темп: эмерджентные эффекты успевали проявиться между изменениями, редкий выпуск сопровождался полной проверкой. Разнообразие пристрастий: чьи-то перекосы к безопасности, чьи-то к производительности в сумме случайно покрывали больше сторон целого, чем каждый по отдельности.
У агента нет ни одного из трёх, а сам эмерджентный дефект идеально невидим конвейеру: его нет ни в одном диффе — каждая задача локально верна и проходит проверки, дефект существует только в совокупности изменений, тогда как проверка идёт по диффам, и позиции целого не занимает никто. Скорость и параллельность усугубляют: изменения наслаиваются быстрее, чем эмерджентные свойства успевают проявиться, и эпизодическая проверка целого валидирует снимок, которого уже нет.
Особый риск без аналога у людей — однородность слепых зон: все сессии процесса работают на одной конфигурации (одна модель, одни skills, одни регламенты), поэтому аспект целого, отсутствующий в конфигурации, не замечается систематически, каждой сессией одинаково; случайная страховка разброса человеческих вниманий заменяется слепотой всего процесса.
Акцент: частота проверки целого обязана расти вместе с частотой его изменения, а разнообразие конфигураций проверки — становиться предметом явного проектирования, а не побочным эффектом найма разных людей.
12. Явный учёт уверенности
Приёмка «прошло / не прошло» — упрощение; честная верификация называет границы проверенного. Принцип: неизвестное не должно выглядеть проверенным — отчёт о полном покрытии, где часть покрытия «дотягивается» связью документов до критерия, опаснее открытого пробела.
Особенности применения агента: человек проявлял неуверенность сам; агент выдаёт одинаково уверенный результат всегда, и без явно встроенного механизма неопределённость в системе просто не представлена — ни в одном артефакте, ни на одном шаге.
Акцент: степень уверенности и перечень непроверенного обязаны быть явным выходом каждого контура проверки; без этого не работает и приоритизация человеческого внимания из пункта 13 — ей нечего фильтровать.
13. Роль человека как источника содержательного суждения
Суждение «этот критерий проверки действительно выражает смысл этого требования» — интерпретация естественного языка и оценка адекватности формализации — принципиально не механическое; в критичных доменах это выделенная роль ответственного за верификацию.
Особенности применения агента: механическая часть системы автоматизируется — человек остаётся единственным источником содержательного суждения, но его роль смещается с «просмотреть весь результат» на «содержательно разобрать меньший отфильтрованный объём»: то, что агентские уровни проверки не смогли разрешить с уверенностью или пометили как рискованное (пункты 6 и 12). Роль обязана быть спроектирована как отдельная процедура с определённым предметом ответственности — что именно человек подтверждает и на основании чего; иначе подпись фиксируется как факт, но технически неотличима от одобрения по умолчанию: контур существует по форме, не выполняя функции.
Акцент: роль человека — явно спроектированный элемент с собственным предметом ответственности, а не стадия подписи внутри чужих контуров.
14. Отработка несоответствий и статистический контроль процесса
Все контуры выше отвечают, как несоответствие обнаружить; этот — что происходит после обнаружения. Классика: каждое несоответствие — управляемая единица (владелец, статус, закрытие через исправление и повторную проверку, а не молчаливая правка задним числом); устранение проявления и анализ первопричины — два разных шага; из первопричины может следовать упреждающее устранение в незатронутых местах. На уровне процесса: статистика несоответствий по этапу обнаружения, первопричине и тяжести; установленные границы нормы, отличающие фоновый разброс от значимого отклонения; эскалация к пересмотру процесса при выходе за границу.
Особенности применения агента: сам принцип универсален для любого производства. Особенность — новая разновидность сигнала, которой у людей практически не было: рост необработанного. Контуры обнаружения работают быстрее отработки — накапливается очередь, формально считающаяся «в процессе», а фактически являющаяся непроверенным продуктом, растущим в тени; у людей физический предел производства не давал этому возникнуть.
Акцент: статистика обязана отслеживать не только частоту и типы несоответствий, но и возраст неразобранного; захлёбывание отработки — самостоятельное основание эскалации с установленным порогом.

Сводка: как смещаются акценты
Методология не меняется: контуры те же, что в разработке людьми, с теми же именами и назначением. Меняются три вещи.
1. Неявное становится явным — главная перестановка
В человеческой разработке значительная часть контуров держалась на свойствах исполнителей, которые доставались процессу бесплатно вместе с человеком. Агент этими свойствами не обладает, и каждая такая опора заменяется явным элементом системы.
Что доставалось автоматически с человеком | Чем заменяется явно | Контур |
|---|---|---|
Полнота и актуальность требований восполнялась памятью людей | Требование — единственный источник истины; полнота и актуальность — обязанность процесса | 1 |
Неясность требования всплывала вопросами исполнителя | Формализованный язык требований + явное правило переспроса | 2 |
Связь задачи с замыслом держалась общим пониманием команды | Обязательная трассировка «задача → требование» | 3 |
Честность самопроверки сдерживалась усталостью, стыдом, коллегами | Независимый вердикт — архитектурное правило, механически недоступное для самоотчёта | 4, 7 |
Конвенции команды передавались однократным обучением | Правило в каждой сессии + механический контроль на каждой задаче | 5 |
Интуиция автора «что могло сломаться» | Анализ зависимостей затронутого кода | 6 |
Сверка смысла шла «документ с намерением» — живой доступ к автору | Фиксация решений о толковании на каждом переходе между слоями | 8 |
Согласованность требований держал владелец замысла | Полная механическая сверка корпуса требований | 9 |
Чувство целого — архитектор; разброс вниманий — разные люди | Частая проверка целого + сознательно спроектированное разнообразие конфигураций | 11 |
Неуверенность проявлялась сама — переспросы, черновые пометки | Явный учёт уверенности как выход каждого контура проверки | 12 |
Содержательное участие человека отличалось от подписи по факту участия | Роль человека с определённым предметом ответственности | 13 |
2. Трудоёмкое становится дешёвым — обратное смещение
Агент не только убирает неявные опоры, но и снимает человеческие слабости: то, что было неподъёмной рутиной и потому не делалось или деградировало, агент исполняет дёшево и одинаково каждый раз — проведение изменения по графу трассировки (пункт 10), полная сверка корпуса требований (пункт 9), проверка всех затронутых зависимостей и объём тестирования (пункт 6). Появляются обязательства, которые в человеческой разработке были невыполнимы и потому не считались нарушением. Узкое место смещается с исполнения на формализацию: процесс нужно записать целиком до того, как передавать его агенту.
3. Появляется новое, без аналога у людей
Три риска не имеют человеческого прототипа ни в явном, ни в неявном виде:
однородность слепых зон — единая конфигурация процесса (модель, skills, регламенты) не замечает отсутствующий в ней аспект целого систематически, каждой сессией одинаково (пункт 11);
захлёбывание отработки — обнаружение работает быстрее содержательной отработки, очередь «в процессе» становится непроверенным продуктом в тени (пункт 14);
достраивание смысла при переходах — производный документ безупречен и связен независимо от верности прочтения исходного, поэтому качество документа не сигналит о дрейфе (пункт 8).
Итоговая формула
Система агентской разработки — не новая методология, а классическая методология, в которой каждая функция, раньше исполнявшаяся неявно самим исполнителем-человеком, переведена в явный, механически закреплённый элемент системы. Всё, что раньше доставалось «автоматом» за счёт использования людей, становится статьёй конструкции.
Это черновик для обсуждения, а не готовый стандарт: часть акцентов ещё требует проверки на практике, часть контуров может дальше расщепиться на более узкие правила. Если вы сами строите производственный процесс на ИИ-агентах и уже упирались в похожие вопросы — интересно сверить наблюдения в комментариях.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.