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 Pattern (Reasoning + Acting)
Фундаментальний алгоритмічний патерн автономних агентів, що чергує кроки внутрішніх міркувань (Thought), виконання зовнішніх інструментів (Action) та аналізу отриманого результату (Observation).
Spec-Driven Development (SDD)
Провідна методологія інженерії програмного забезпечення епохи ШІ, де створення, узгодження та фіксація структурованої машинно-читабельної специфікації обов'язково передує генерації коду.
Autonomous Loop (/goal mode)
Архітектурний патерн замкненого циклу виконання задач, у якому агент автономно чергує генерацію коду, запуск команд і верифікацію результатів до повного досягнення зафіксованої мети.
Reflection Pattern (Рефлексія)
Архітектурний патерн підвищення надійності агентів, що розділяє процес на генерацію рішення (Generator), його критичний аудит (Critic) та ітеративне доопрацювання (Refiner).
Пов'язані матеріали екосистеми
Дізнайтеся більше про практичну реалізацію, термінологію та інструменти
Специфікація перед кодом (Spec-First Вайбкодинг)
Інженерна методологія розробки з ШІ (Spec-Driven Development). Замість миттєвої хаотичної генерації коду розробник спершу змушує модель скласти структурований файл SPEC.md із архітектурою, типами даних та кроками реалізації.
Spec-First Engineering (RFC-Driven AI Dev)
Методологія розробки за допомогою ШІ, де 80% зусиль розробника спрямовані на створення кришталево чіткої технічної специфікації (PRD/RFC) до генерації першого рядка коду.
Гайд по базі Gemini: промптинг (prompting)
Фундаментальний посібник із промптингу для Google Gemini: розбір фреймворку RTF (Role-Task-Format), типологія запитів, готові шаблони та усунення помилок.
Частина I. Архітектура ШІ-агентів: фундаментальні блоки
Десять фундаментальних блоків сучасного агента: таксономія моделей, рантайм-петля, техніки промптингу, дистиляція, навички (skills), пам'ять, function calling та юніт-економіка.
Claude Code оптимізував статус фонових субагентів: витрати на оновлення зменшилися на 99%
У CLI-версії Claude Code оновлення статусу фонових субагентів тепер виконує Haiku 5.5 на основі коротких нотаток, що знижує споживання лімітів.
OpenCode: у 30 разів більше використання DeepSeek за ту саму ціну
Співзасновник OpenCode Дакс заявив, що команда підвищила ефективність використання DeepSeek: тепер $10 дають обсяг, який раніше коштував $300.