Перейти до основного вмісту

Site Builder Orchestration v2

Site Builder Orchestration v2 (впроваджено в Gratis AI Agent v1.4.0) — це двигун, який забезпечує багатоетапне створення вебсайтів. Коли ви просите агента «створити сайт ресторану» або «створити портфоліо з блогом», оркестратор розбиває цю високорівневу мету на структурований план, визначає необхідні плагіни для його виконання, виконує кожен етап послідовно, відстежує прогрес та автономно відновлюється після помилок.


Як це працює

1. Генерація плану

Коли агент отримує інструкцію зі створення сайту, він викликає можливість create_site_plan для створення JSON плану сайту. План описує:

  • Мета — що має робити готовий сайт
  • Фази — упорядковані групи кроків (наприклад, Налаштування, Типи контенту, Дизайн, Контент)
  • Кроки — окремі виклики можливостей у межах кожної фази
  • Вимоги до плагінів — плагіни, які мають бути активними для виконання певних кроків
  • Резервні варіанти — альтернативні кроки, якщо основний крок не вдається

Приклад плану (скорочено)

{
"plan_id": "plan_restaurant_001",
"goal": "Build a restaurant website with an online menu, booking form, and contact page",
"phases": [
{
"id": "setup",
"label": "Setup",
"steps": [
{ "ability": "install_ability", "params": { "slug": "gratis-ai-agent-woocommerce" } },
{ "ability": "register_post_type", "params": { "slug": "menu-item", "singular_label": "Menu Item", "plural_label": "Menu Items" } },
{ "ability": "register_taxonomy", "params": { "slug": "menu-section", "singular_label": "Menu Section", "plural_label": "Menu Sections", "post_types": ["menu-item"] } }
]
},
{
"id": "design",
"label": "Design",
"steps": [
{ "ability": "apply_theme_json_preset", "params": { "preset": "warm-editorial" } },
{ "ability": "inject_custom_css", "params": { "css": ".menu-item { border-radius: 8px; }", "label": "restaurant-ui" } }
]
},
{
"id": "navigation",
"label": "Navigation",
"steps": [
{ "ability": "create_menu", "params": { "name": "Primary Navigation", "location": "primary" } },
{ "ability": "add_menu_item", "params": { "menu_id": "__ref:create_menu.menu_id", "type": "custom", "title": "Menu", "url": "/menu-items/" } },
{ "ability": "add_menu_item", "params": { "menu_id": "__ref:create_menu.menu_id", "type": "custom", "title": "Book a Table", "url": "/book/" } }
]
}
],
"plugin_requirements": [
{ "slug": "contact-form-7", "reason": "Required for the booking and contact forms" }
]
}

2. Виявлення плагінів

Перш ніж розпочати виконання, оркестратор сканує plugin_requirements плану та перевіряє, які плагіни вже активні. Для відсутніх плагінів він:

  1. Шукає в реєстрі за допомогою recommend_plugin найкраще відповідне рішення
  2. Просить агента підтвердити рекомендацію
  3. Ініціює встановлення, якщо це схвалено (або якщо автоматичне встановлення увімкнено в налаштуваннях)

Збої при виявленні плагінів не є критичними — оркестратор позначає зачеплені кроки як skipped (пропущено) та продовжує роботу з решти плану.

3. Виконання плану

Оркестратор викликає execute_site_plan із зазначенням ID плану. Виконання відбувається фаза за фазою, крок за кроком:

  • Посилання на кроки (__ref: префікс) — кроки можуть посилатися на результати попередніх кроків. У вищезазначеному прикладі __ref:create_menu.menu_id розв'язується до menu_id, поверненого кроком create_menu.
  • Паралельні кроки — кроки в межах однієї фази, які не залежать один від одного, виконуються одночасно, коли встановлено прапорець parallel.
  • Таймаут кроку — кожен крок має індивідуальний тайм-аут (за замовчуванням: налаштування Ability Timeout). Крок, що перевищив час, позначається як failed (невдало) і план продовжує роботу.

4. Відстеження прогресу

Викличте get_plan_progress у будь-який час, щоб перевірити статус виконання:

{
"plan_id": "plan_restaurant_001",
"status": "in_progress",
"phases_total": 4,
"phases_complete": 2,
"steps_total": 14,
"steps_complete": 8,
"steps_failed": 1,
"steps_skipped": 0,
"current_step": "add_menu_item",
"elapsed_seconds": 42
}

Користувачі WP-CLI можуть відстежувати прогрес за допомогою:

wp gratis-ai-agent plan status plan_restaurant_001

5. Відновлення після помилок

Якщо крок не вдається, оркестратор перевіряє наявність резервного варіанту (fallback), визначеного в плані:

  • Резервний варіант доступний — спробується резервний крок. Якщо він успішний, виконання продовжується. Якщо він також не вдається, крок позначається як failed, і виконання продовжується наступним кроком.
  • Резервного варіанту немає — крок позначається як failed. Некритичні кроки пропускаються; критичні кроки (позначені required: true) зупиняють поточну фазу та ініціюють спробу відновлення на рівні фази.

Агент звітує про всі збої у фінальному резюме плану та може запропонувати кроки ручного виправлення для невідновлюваних помилок.


Можливості плану сайту (Site Plan Abilities)

create_site_plan

Генерує структурований план сайту на основі опису мети природною мовою.

Параметри

ПараметрTypeRequiredDescription
goalstringYesОпис бажаного вебсайту природною мовою
stylestringNoВізуальна стилістика: minimal, bold, professional, playful. За замовчуванням: агент обирає на основі мети
pluginsarrayNoSlug плагінів, які потрібно включити до плану. Оркестратор автоматично додає необхідні плагіни.
dry_runbooleanNoЯкщо true, повертає JSON плану без збереження чи виконання. За замовчуванням false

Повертає { "plan_id": "plan_restaurant_001", "phases": 4, "steps": 14, "plugin_requirements": 1 }


execute_site_plan

Починає виконання попередньо згенерованого плану сайту.

Параметри

ПараметрTypeRequiredDescription
plan_idstringYesID плану для виконання
auto_install_pluginsbooleanNoЯкщо true, автоматично встановлює необхідні плагіни без підтвердження. За замовчуванням false
max_retriesintegerNoКількість спроб повторити не вдалий крок перед переходом до наступного. За замовчуванням 1

Повертає { "execution_id": "exec_001", "status": "started" }


get_plan_progress

Повертає поточний статус виконання плану сайту.

Параметри

ПараметрTypeRequiredDescription
plan_idstringYesID плану для запиту

Повертає об'єкт прогресу, описаний у Відстеження прогресу вище.


handle_plan_error

Вручну вирішує проблему не вдалого кроку та відновлює виконання плану з наступного кроку. Використовуйте це, коли автоматичне відновлення було неможливим, і ви хочете втрутитися.

Параметри

ПараметрTypeRequiredDescription
plan_idstringYesID плану
step_idstringYesID не вдалого кроку
resolutionstringYesОдин із варіантів: skip (пропустити та продовжити), retry (повторити крок негайно) або mark_done (розцінити як успішне без повторного виконання)

Повертає { "success": true, "plan_id": "plan_restaurant_001", "resumed_from": "add_menu_item" }


Порівняння v1 та v2

Featurev1v2
Багатофазні планиNoYes
Посилання на вихідні дані кроків (__ref:)NoYes
Виявлення плагінівManualAutomatic
API відстеження прогресуNoYes
Відновлення після помилокFail-and-stopFallback + continue
Паралельне виконання кроківNoYes (opt-in per phase)
Команди плану WP-CLINoYes
Інтеграція бенчмарківNoYes (q-restaurant-website)

Команди плану WP-CLI

wp gratis-ai-agent plan create

Генерує план сайту на основі опису мети.

wp gratis-ai-agent plan create "Build a restaurant website with an online menu, booking form, and contact page" [--dry-run] [--output=json]

wp gratis-ai-agent plan execute

Виконує попередньо згенерований план.

wp gratis-ai-agent plan execute plan_restaurant_001 [--auto-install-plugins]

wp gratis-ai-agent plan status

Показує поточний прогрес для виконуючого або завершеного плану.

wp gratis-ai-agent plan status plan_restaurant_001

wp gratis-ai-agent plan list

Перераховує всі плани сайтів (очікувані, у процесі та завершені).

wp gratis-ai-agent plan list [--status=<status>] [--format=table|json|csv]

wp gratis-ai-agent plan reset

Скидає не вдалий план до стану pending, щоб його можна було повторно виконати з самого початку.

wp gratis-ai-agent plan reset plan_restaurant_001