Два мира агентной разработки
Я использовал разные инструменты для агентной разработки (многие называют это вайб-кодингом). Каждый подход показал свои сильные и слабые стороны.
Есть подход Cursor, где всё построено вокруг IDE. Ты пишешь промпты, получаешь изменения на ревью, уточняешь — классический интерактивный режим.
А есть подход Claude Code с его чисто агентным режимом: даёшь инструкцию — агент автономно вносит изменения. Никакого постоянного диалога. Результат смотришь потом через git или другие средства.
Claude Code мне нравится своей автономностью, но там жёсткая привязка к моделям Anthropic. Cursor в этом плане гибче — выбирай любые модели. Но в нём нет той автономности, когда можешь просто поставить задачу и уйти.
Проблема масштаба
Когда проект вырастает до сотен тысяч строк кода, и Cursor, и Claude Code начинают буксовать. Они плохо понимают всю сложность архитектуры, не видят, как правильно встроить изменения в существующую структуру.
Обычно это заканчивается либо глубоким ручным рефакторингом, либо решением "всё выкинуть и начать заново".
Да, с агентной разработкой часто правильнее начать с нуля. Но хочется иметь возможность поддерживать и развивать существующий продукт с помощью агентов, при этом не вникая в суть каждого шага.
Частично проблему решает режим планирования в Cursor, где он сначала составляет план, потом действует по нему.
Но всё это происходит в одном окне, в одном контексте. Контекст быстро забивается.
С одной стороны, растут расходы на входные токены (отправляется куча нерелевантной информации).
С другой — падает точность: современные модели хоть и держат миллион токенов контекста, но стабильно работают только на 100–200 тысячах.
Дальше начинаются потери важных деталей и галлюцинации.
Решение: субагенты
И вот здесь появляется изящное решение, которое придумали в Claude Code — субагенты.
Это отдельные экземпляры того же агента, но с фиксированным промптом и чёткими входными данными.
Логика простая: субагенту не нужен весь контекст проекта. Ему не важно, зачем ты это делаешь и какая глобальная постановка задачи.
Дай чёткие инструкции — "сделай А и Б" — он их выполнит и вернёт результат. Это ускоряет работу, повышает точность и экономит токены.
Прекрасно, правда? Кроме одного: в Claude Code имеем vendor lock на модели Anthropic.
Плюс доступ, например, к Opus 4.5 — только на дорогих тарифах.
В Cursor даже базовый тариф даёт доступ ко всем моделям — вот это классно!
Не так давно Cursor стал предлагать агентный режим интерфейса (слева запускаешь агентов).
Но это не совсем то: он не умеет ставить задачи субагентам, поэтому в контексте агента оказывается вся переписка, вся история — контекст забивается лишней информацией.
Приходится вручную под каждую задачу создавать отдельного агента и прописывать промпт.
Это не та автономная мультиагентность, которую хотелось бы иметь.
Хак: командная строка + оркестратор
Однако и в Cursor есть утилита командной строки cursor-agent (надо установить отдельно).
Через неё можно, как в Claude Code, передавать параметры, и агент будет решать задачу, ничего не спрашивая.
Проблема только в том, что нет встроенного механизма вызова субагентов через IDE.
Но ведь Cursor выполняет инструкции из промптов! Значит, можно попросить его самостоятельно инициировать работу субагентов.
Вот пример промпта, по которому Cursor понимает, что ему нужно запустить субагентов с определёнными ролями:
Используя подход по оркестрации мультиагентной разработки (agents/01_orchestrator.md),
выполни доработку {ссылка на файл с постановкой задачи}.
Описание проекта {ссылка на описание проекта для агентов, если проект существующий}
Промпты агентов с указанными в 01_orchestrator.md ролями находятся в agents (02*.md..09.md).
Агентов нужно вызывать shell-командами:
cursor-agent -f --model {модель} -p {промпт}
и дожидаться от них результатов.
Промпт следующего формата:
"{содержимое файла с ролью} {входные данные согласно описанию роли}"
Модель:
аналитик, архитектор, планировщик — opus-4.5
ревьюеры ТЗ, архитектуры, плана, кода и разработчик — composer-1
И это работает!
Достаточно описать логику мультиагентной цепочки — так называемого оркестратора, который живёт в основном окне диалога.
В зависимости от задачи он вызывает нужных субагентов: аналитика, архитектора, планировщика, разработчиков.
Даёшь ему шаблон команды для командной строки — и он запускает субагентов сам.
Контекст главного агента не забивается. Субагенты делают только свои специалированные задачи.
Процесс может работать часами, и в итоге ты получаешь результат: аналитику, архитектуру, план задач, план тестирования, доработанную функциональность, тесты и отчёты.
Дальше смотришь, что реально сделано, результаты тестов и при желании самостоятельно проверяешь изменения в коде.

Почему нужна команда агентов

Для большой доработки недостаточно просто планирования.
Нужна фактически работа команды разработки: аналитик (+ рецензент), архитектор (+ рецензент), планировщик, который декомпозирует задачи (это, кстати, одна из ключевых ролей, без которой всё развалится), разработчики и ревьюеры кода.
Такое разделение ответственности помогает сфокусироваться на конкретных задачах.
Сначала чётко составляется видение доработки — как она вписывается в существующую архитектуру.
Потом задачи декомпозируются на маленькие, понятные, которые даже простая модель может выполнить по чётким инструкциям.
Разработчику не важен весь контекст — он работает над маленьким кусочком.
А то, что этот кусочек подходит, уже продумали аналитик, архитектор и планировщик.
И это прямо чётко работает!
Пример работающих промптов для ролей: github.com/rdudov/agents. Там же есть детальное описание всего процесса и ролей.
Если задача не реализовать что-то с нуля, а нужно доработать существующий большой проект, внедрить новую функциональность — только такой подход сработает.
Иначе агент наделает велосипедов, и через несколько итераций получим несопровождаемое решение.
От Waterfall к сходящемуся процессу
Я проверил работу своей команды агентов, отладил промпты — в целом всё работало.
Но в некоторых случаях процесс не сходился. Почему? Потому что это фактически waterfall: делаем компонент A, компонент B, компонент C, потом интегрируем — и... ничего не работает.
Проблема waterfall в том, что ты узнаёшь о несходимости только в конце.
Потратил кучу токенов, а на финальных интеграционных тестах всё развалилось.
Тем более модели любят, если тесты не проходят, упрощать и мокать — и ты даже не поймёшь, что разработка ушла не в ту сторону.
Внедрить полноценный Agile (делаем MVP, наращиваем функционал) тоже не вариант: слишком затратно.
Да, получаешь работающий результат, но фактически полностью переписываешь его на следующем цикле.
Для агентной разработки это (пока?) не вариант.
Я пошёл другим путём.
Прописал для планировщика явное требование идти "сверху вниз", от каркаса.
Сначала добавить все необходимые функции, классы, интерфейсы, чтобы сквозные тесты проходили с первой задачи и не ломали существующий функционал.
А дальше — наращивать "мясо", добивать реализацию.
В этом случае не нужно на каждом этапе переписывать всё — просто дописываешь имплементацию в существующий каркас.
Это сработало!
С каждой новой задачей процесс не расходится — он сходится к финальному работающему функционалу.
За счёт того, что на первом этапе пишутся сквозные тесты (пусть с заглушками, фейковыми ответами), видно, что всё продолжает работать.
Мы не делаем кучу кирпичиков, которые потом не стыкуются, а сразу собираем каркас, проверяем, что в таком виде это работает, и наращиваем внутреннюю имплементацию.
Если что-то не срастается — узнаём об этом гораздо раньше.
Процесс продолжает сходиться, а не разваливается в конце.
Итого
Мультиагентная разработка в Cursor с субагентами, где для разных ролей можно использовать разные модели, с подходом реализации "сверху вниз" (каркас → наполнение функциональностью), со сквозными тестами с самого начала и разделением на специализированные роли агентов — всё это позволяет решать сложные задачи для существующих систем с минимальным участием разработчика на промежуточных этапах.
Достаточно поставить задачу и дать команде агентов делать свою работу.
Когда всё будет готово, можно ознакомиться с промежуточными результатами по задачам и итоговыми отчётами по всей доработке.
Комментарии (22)

okoloboga
29.11.2025 19:51Спасибо за статью, очень помогли. Я пользовался похожим методом, но в ручном режиме - создавая отдельных агентов для отдельных задач кратких, создаю им локальные .md, почти никогда не загружаю весь контекст. Но ваш процесс автоматизирует эту суету)

gmtd
29.11.2025 19:51Чего-то я не понимаю, наверно
Открываешь окошко в режиме "Агент", добавляешь нужные Cursor Rules (у меня их пара десятков на проект) и Commands (ваши "субагенты"?) - и вперед с чистым контекстом
Закончил работу - закрыл.
Что за "главный агент"?
Ваш промпт:
аналитик, архитектор, планировщик — opus-4.5 ревьюеры ТЗ, архитектуры, плана, кода и разработчик — composer-1Cursor никак не может понять и разнести по разным LLM. Покажите доказательства скриншотами.

cless75
29.11.2025 19:51Тоже смотрю в сторону автоматизации переключения контекстов с помощью Cursor Rules

positroid
29.11.2025 19:51А в чем может возникнуть проблема у Cursor на этой задаче? В целом здесь только краткий промпт приведен, если смотреть полный файл с инструкциями оркестратора в репозитории - сомнения должны отпасть.

rdudov Автор
29.11.2025 19:51
Добавил скриншот, где видно, как Cursor запускает субагента. Видно, что от вызывает CLI утилиту cursor-agent с передачей содержимого файла с промптом с ссылкой на файл с задачей.
В приведённом в статье шаблоне промпта есть ссылки на файлы с описанием общей схемы работы оркестратора и промптами для отдельных ролей. Пример файлов есть на github. Каталог с этими файлами нужно расположить либо в самом проекте (это имеет смысл, если там есть специфичные для данного проекта инструкции), либо где-то рядом, но в доступном для Cursor месте. И в промте указать актуальное расположение файла с инструкциями для оркестратора и файлов с промптами.
Тогда всё заработает.

Pusk1
29.11.2025 19:51Про каркас аля как было принято в Паскале +1. Я с курсором попробовал в процелурное программирование сверху вниз с вкраплениями функционально. Получается отлично. Про автозапуск субагентов звучит прекрасно. Попробую. Сейчас запускаю руками.

Amareis
29.11.2025 19:51Рекомендую попробовать KiloCode с тем же клодом. Режим оркестрации там есть и в него можно воткнуть любую нужную модель. Большой бонус - работает в idea based IDE, если не нравится vs code.

vityo
29.11.2025 19:51Все эти мульти агенты очень интересны. Но даже один в режиме эдитор иногда делает чушь, приходится каждый шаг немного корректировать. Не могу представить как можно модель оставить на несколько часов работы. Даже один чат за 5-10 мин может отработать 2-3 промта и каждые надо бежать проверять. Наверно от проекта зависит

rdudov Автор
29.11.2025 19:51Если изменение не тривиальное, то чтобы агент-разработчик мог сделать что-то правильно, как раз и требуется предварительная цепочка анализа и декомпозиции задачи.
Также важно помочь агентам разобраться в том, что уже есть в проекте. Я не стал делать на это фокус в статье, но в промте, возможно, обратили внимание на путь к файлу с описанием проекта. Это важно, т.к. для более-менее большого проекта никакого контекста не хватит переварить весь код - нужна выжимка, чтобы аналитик и архитектор знали, куда смотреть в первую очередь.
Вероятность получить приемлемый результат также повышается за счёт этапов ревью. Да, на ревью требуются дополнительные токены, но практически всегда ревьюеры находят замечания, по которым выполняются исправления.
И конечно самое важное для получения хорошего результата - это обратная связь, т.е. результаты тестов. Можно рассматривать процесс решения задачи как своеобразный RL (reinforcement learning*): делаем → получаем обратную связь → дорабатываем. Чем тесты будут более приближенными к реальным сценариям использования системы, тем качественнее будет результат. Модели часто любят тривиальные юнит-тесты типа проверки наличия полей в классе. А вот более вдумчивые тесты они ленятся делать. В своих промтах я делаю акцент именно на как можно более реалистичные тесты, чтобы они действительно показывали, насколько доработки соответствуют требованиям. Плюс обязательные регрессионные тесты.
Конечно, результат невозможно гарантировать, бывают неудачные решения, которые приходится откатывать или рефакторить. Но всё равно стабильность разработки по описанной схеме намного выше, чем без каких-либо специальных приёмов.

MkIV007
29.11.2025 19:51Я ему говорю "сначала разработай автотесты, перепроверь их логику, потом напиши код, протестируй результаты..."

Tihon49
29.11.2025 19:51Не хватает хорошего README на github.

rdudov Автор
29.11.2025 19:51Согласен.
Сейчас в качестве описания общей схемы можно использовать файл https://github.com/rdudov/agents/blob/master/00_agent_development.md.

deksden
29.11.2025 19:51Дополню:
Claude code не особенно привязана к моделям антропиков - туда легко встраиваются другие модели.
Нативно - киты (минимакс м2, зайка glm, deepseek), через Claude-code-router любые OpenAI-совместимые, а через cliproxyapi модно встроить даже другие cli агенты по подпискам (как просто модели, не субагенты).
и все функции СС сохраняются даже с другими моделями!
СС довольно удобная упряжка.

Svyatoblood
29.11.2025 19:51Делаете костыли, когда уже есть готовые решения по типу Roo Code и Kilo Code который тут уже упоминали, причём в них можно добавить конфигурацию MCP серверов, которые как раз и решают проблемы summary.
Akuma
Проблема субагентов через cli в том, что теряется UI курсора для ревью изменений.
CLI просто меняет файлы, оно никак не отражается непосредственно в IDE и это неудобно.
VanderDev
Частично этот вопрос решается через git.
Akuma
Очень частично. Родной UI курсора сильно удобнее
rdudov Автор
Именно, но тут Cursor ведет себя аналогично другим CLI-агентам. Можно либо проверять все изменения через git в конце, либо просить после завершения каждой задачи делать коммит, чтобы видеть этапность изменений и иметь возможность откатиться на несколько шагов назад.
Я предпочитаю первый вариант: ревьюить сразу финальный код.
Bodysnats
Теоретичести, если представить суб агентов как tools/mcp, то агент в UI сможет вызваать их и отображать вывод как обычно в UI
green_fenix
Курсором не пользуюсь, но при использовании Claude Code в терминале обычного vscode есть официальная интеграция, которая позволяет как раз все изменения ревьюить в ide.
Akuma
И которая лютое Г по сравнению с курсором. Знаю, использовал СС и с ней и потом с расширением. Все равно менее удобно