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

Использовать режим плана

Это руководство показывает, как получить от агента структурированный план, прежде чем он напишет хоть строку кода.

В режиме плана агент исследует только для чтения, и его единственный результат — типизированный план: граф зависимостей из шагов, который вы утверждаете, после чего Control Center компилирует его в настоящую работу. Используйте его, когда хотите увидеть объём изменения, разбить его на шаги или получить названные риски и зависимости до того, как что-либо будет затронуто.

Любое из этих действий переключает режим пространства, и изменение сохраняется:

  • Выберите План в выпадающем списке режимов у самого левого края панели инструментов композера
  • Нажмите Shift+Tab
  • Отправьте /plan. Просто /plan только взводит режим; /plan <request> взводит его и отправляет остаток как ваше сообщение

/plan никогда не передаётся как текст — он задаёт сохранённый режим, а это источник истины, который читают поверхность инструментов, предустановка ограничений и промпт. Поэтому режим действует для этого хода и всех последующих, пока вы не переключите его обратно.

Режим хранится в пространстве, поэтому один и тот же агент может быть в режиме плана здесь и в режиме агента в другом месте.

  1. Он исследует только для чтения — память, индекс кода, файлы
  2. Он вызывает submit_plan один раз, с goal и nodes, где каждый узел несёт стабильный key, title, description и ключи узлов, от которых он dependsOn (именно это позволяет независимой работе выполняться параллельно)
  3. Он останавливается

Инструмент проверяет граф — дублирующиеся ключи, висячие зависимости, циклы — и возвращает нарушения, чтобы агент их исправил, вместо того чтобы принять сломанный план.

План появляется в разговоре компактной строкой, показывающей цель, её статус и число шагов. Plan Studio — граф зависимостей, инспектор по каждому узлу и оценка стоимости — открывается вкладкой рядом с разговором: нажмите Открыть у строки или просто подождите, потому что план, появившийся в течение 30 секунд, пока вы смотрите на разговор, открывает свою вкладку сам.

Текст здесь не считается результатом. Запуск, завершившийся без вызова submit_plan, публикует в разговоре видимую строку «Ended without submitting a plan (no submit_plan call).» и помечает запуск как не создавший свой результат. Статус запуска намеренно остаётся completed — так конвейер и машины состояний тикетов остаются нетронутыми, — поэтому читайте строку, а не значок статуса.

У строки плана в разговоре нажмите Одобрить и запустить. На панели утверждения Plan Studio нажмите Утвердить план (или Отклонить рядом; утверждение заблокировано, пока в графе есть ошибка валидации).

Затем:

  1. Control Center компилирует план в оркестрацию и материализует её — тикеты и запуск. На этом шаге модель не участвует; он детерминированный
  2. План выполняется тем агентом, который его написал. Привлекать ли кого-то ещё — решает этот агент во время выполнения: он может delegate_task шаг более подходящему коллеге, в пределах предела глубины делегирования рабочего пространства
  3. Цель плана становится целью разговора, и работа идёт в том же разговоре: каждый шаг публикует то, о чём попросили агента, и передаёт свой ход обратно потоком, так что вы следите за ним (и можете остановить ход) там, где уже находитесь
  4. Строка цели на боковой панели Общие разговора (в разделе Задачи) несёт прогресс запуска в виде settled/total и свою кнопку остановки; Plan Studio показывает состояние каждого узла на графе и тоже отменяет оттуда

Если вы предпочитаете остаться в этом разговоре, а не утверждать план, агент может вызвать exit_plan_mode. Это единственный разрешённый выход: он открывает долговечный запрос на подтверждение, привязанный к разговору, и возвращает pending — пространство остаётся в режиме плана, и агент не должен действовать. Как только запрос подтверждён, следующий вызов exit_plan_mode со стороны агента переключает пространство из режима плана в режим агента и разблокирует его изменяющие инструменты. Отказ позволяет агенту открыть новый запрос на переработанный план.

Чтобы выйти из режима плана, переключите выпадающий список в композере (или Shift+Tab) либо утвердите отправленный план. exit_plan_mode открывает долговечное подтверждение, решение по которому принимается инструментом MCP decide_approval. Оверлей ограничений для заблокированных вызовов инструментов — это другая очередь в памяти, и он не несёт запросы на выход из режима плана.

Узел конвейера messaging.createSpace читает режим разговора из дополнительного поля mode в конфигурации узла — extras['mode']: 'plan'. Ключ требует точного совпадения: любое другое написание, включая conversationMode или dispatchMode, молча игнорируется, и комната получает значение по умолчанию из body, а именно режим ревью, а не чат. Шаг promptAgent присоединяется к комнате, которую не создавал, и не перенастраивает её права. Селектор Режим диспетчеризации в редакторе конфигурации узла (allParallel / manager) предназначен для узлов командной диспетчеризации. Задавайте режим разговора с помощью extras['mode'] в шаблоне, который открывает пространство, или в конфигурации этого узла через API.