Plan-and-Solve Prompting
Двухступенчатая агентская архитектура, разделяющая стратегическую декомпозицию задачи на глобальный план и его последовательное тактическое выполнение с динамическим перепланированием.
1. Обзор концепции и системная проблема
Когда разработчик ставит искусственному интеллекту крупную инженерную задачу (например, «переписать модуль авторизации с JWT на сессии в базе данных»), импульсивная реакция агента заключается в мгновенном редактировании первого случайного файла.
Такой сугубо реактивный подход вызывает критические сбои:
- Нарушение порядка зависимостей: Агент изменяет компонент интерфейса до того, как обновил схему базы данных или создал необходимые типы TypeScript.
- Циклические правки: Модель исправляет одну ошибку, ломая другой связанный файл, и застревает в бесконечном латании синтаксиса без понимания общей картины.
- Потеря первичной цели: После 10 шагов поиска багов контекст забивается сообщениями компилятора, и модель забывает начальную задачу пользователя.
Plan-and-Solve устраняет эту проблему через классический принцип инженерии: Разделение стратегического проектирования (Planning) и тактической реализации (Execution).
2. Архитектурная таксономия и ментальная модель
Паттерн реализуется через три взаимодополняющие фазы:
- 1. Фаза исследования и планирования (Discovery & Planner Phase): Агент анализирует запрос, предварительно читает файловую систему (Read-Only) и генерирует четко структурированный граф действий: массив шагов с обозначением целей, критериев успеха и необходимых файлов.
- 2. Фаза выполнения шагов (Solver / Execution Phase): Специализированный исполнитель берет первый открытый пункт плана, вызывает необходимые инструменты (редактирование файлов, запуск сборки), убеждается в выполнении подзадачи и помечает пункт как завершенный.
- 3. Фаза динамического перепланирования (Replanning & Feedback Phase): Если во время выполнения шага возникает ошибка, которую невозможно решить простым повтором (например, обнаружена недостающая библиотека в системе), репланер пересматривает остальные пункты плана, добавляя шаг установки зависимостей.
3. Технический пайплайн и внутренняя механика
Жизненный цикл работы по паттерну Plan-and-Solve:
- Plan Generation (Генерация структурированного плана):
Модель формирует валидный JSON-объект с массивом задач:
tasks: [{ id: 1, title: "DB Schema", status: "pending" }, { id: 2, title: "API Route", status: "pending" }]. - State Injection (Инициализация трекера): План записывается в состояние агента. Пользователь видит визуальный прогресс выполнения в виде интерактивного чеклиста.
- Execution Loop (Итеративное прохождение):
Оркестратор выбирает следующую задачу со статусом
pending. Контекст очищается от старых деталей отладки, фокусируясь только на текущей задаче и финальной цели. - Invariant Check & Status Transition (Контроль инвариантов):
После завершения шага запускается линтер или юнит-тест. Если проверка успешна — статус изменяется на
completed. Если нет — вызывается методreplan(), который корректирует невыполненные шаги.
4. Практические инженерные сценарии в продакшене
01. Комплексная миграция кодовой базы
Переход проекта с Next.js Pages Router на App Router:
- Шаг 1: Аудит структуры папки
pages/и выделение общих Layouts. - Шаг 2: Создание корневого
app/layout.tsxи базовых стилей. - Шаг 3: Поэтапное перенесение статических страниц.
- Шаг 4: Переписывание динамических маршрутов и API Routes в
route.ts. - Шаг 5: Полный билд проекта и удаление устаревших файлов.
02. Создание новых функций по спецификации (Spec-Driven Development)
Агент получает бизнес-требование. Сначала он пишет документацию и схемы Zod, согласует их с пользователем, и лишь после получения одобрения пошагово генерирует бэкенд, клиентские хуки и UI-компоненты.
03. Инфраструктурное развертывание серверов
Поэтапное закаливание Linux VPS:
- Генерация плана из 6 этапов (SSH-ключи, UFW-файрвол, fail2ban, обновление пакетов, создание non-root пользователя, отключение парольного доступа).
- Каждый пункт выполняется отдельно с обязательной проверкой статуса порта перед отключением предыдущего метода связи.
5. Подводные камни, типовые ошибки и безопасность
- Планирование вслепую (Premature Planning): Составление плана без предварительного анализа файлов репозитория. Модель может спланировать использование библиотек, которых нет в проекте. Решение: обязательный шаг «Исследование» (Discovery) перед запуском планировщика.
- Чрезмерная жесткость (Plan Rigidity): Агент настойчиво пытается выполнить Шаг 3, когда на Шаге 1 выяснилось, что архитектура требует принципиально другого подхода. Обязательно внедряйте хуки динамического перепланирования.
- Микроменеджмент на 30 шагов: Слишком мелкие шаги (например, отдельный шаг для импорта каждого типа) сжигают время и деньги. Держите уровень абстракции на уровне логических функциональных блоков.
FAQ: Plan-and-Solve Prompting
Связанные термины
ReAct Паттерн (Мышление + Действие)
Фундаментальный алгоритмический паттерн автономных агентов, который чередует шаги внутренних размышлений (Thought), выполнения внешних инструментов (Action) и анализа полученного результата (Observation).
Spec-Driven Development (SDD)
Ведущая методология инженерии программного обеспечения эпохи ИИ, где создание, согласование и фиксация структурированной машинно-читаемой спецификации обязательно предшествует генерации кода.
Автономный Цикл (/goal mode)
Архитектурный паттерн замкнутого цикла выполнения задач, в котором агент автономно чередует генерацию кода, запуск команд и верификацию результатов до полного достижения зафиксированной цели.
Reflection Pattern (Рефлексия)
Архитектурный паттерн повышения надежности агентов, который разделяет процесс на генерацию решения (Generator), его критический аудит (Critic) и итеративное доработку (Refiner).
Связанные материалы экосистемы
Практические гайды, терминология и агентские скиллы
Spec-First Engineering (RFC-Driven AI Dev)
Методология разработки с использованием ИИ, где 80% усилий разработчика направлены на создание кристально четкой технической спецификации (PRD/RFC) перед генерацией первой строки кода.
Гайд по базе Gemini: промптинг (prompting)
Фундаментальное руководство по промптингу для Google Gemini: освоение фреймворка RTF (Role-Task-Format), типология запросов, готовые шаблоны и устранение ошибок.
Часть I. Архитектура ИИ-агентов: фундаментальные блоки
Одиннадцать фундаментальных строительных блоков современного ИИ-агента: таксономия моделей, агентный рантайм, техники промптинга, дистилляция, архитектура навыков (skills), память, function calling и FinOps.
Черновик раздумий агента (Scratchpad)
Временная область рабочей памяти в контекстном окне модели, где агент записывает свои промежуточные размышления, планы, сомнения и выводы перед вызовом инструментов. Скрыта от глаз конечного пользователя для сохранения чистоты финального интерфейса.
OpenAI предлагает бесплатные сбросы подписчикам
OpenAI будет давать по бесплатному ресету всем подписчикам каждый день, пока нет доступа к Astra.
Модель Astra от OpenAI теперь доступна всем подписчикам
Модель Astra от OpenAI стала доступна для всех подписчиков Plus, Pro, Enterprise и Business.