Plan‑and‑Execute: plan jako artefakt kontroli i jakości
Jak oddzielić planowanie od wykonania, zwalidować plan przed uruchomieniem i uruchamiać przebiegi, które da się testować i utrzymywać jak klasyczny workflow.
Plan jako artefakt: po co to robić
Plan‑and‑Execute bywa mylony z „łańcuchem promptów”. Różnica jest zasadnicza: plan jest artefaktem kontroli. Da się go walidować, wersjonować, audytować i testować – zanim cokolwiek zostanie wykonane.
Minimalny schemat planu
plan:
goal: "..."
constraints: ["privacy", "policy@2.1", "tool.read_only"]
steps:
- id: "retrieve_policy"
tool: "knowledge.search"
input: {query:"..."}
expected: "citations"
- id: "draft_answer"
tool: "llm.generate"
input: {format:"answer_md"}
- id: "final_check"
tool: "lint.language"
input: {tone:"tone_v2"}
Walidacja planu (bramki)
- Policy gate: czy plan respektuje ograniczenia (PII, cytowania, narzędzia).
- Tool gate: czy kroki narzędziowe mają kontrakt, timeout, retry, idempotency.
- Cost gate: budżet tokenów i czas p95 (SLO).
Egzekucja i ślad
Execute powinien produkować dziennik: krok → wejście → wynik → decyzja bramki. To jest podstawa debugowania i regresji.
- trace: rozmowa + kroki narzędziowe,
- replay: odtwarzanie krok po kroku (mini-scrubber),
- post-mortem: porównanie planu z wykonaniem (odchylenia).
Operacyjny skrót
Ten rozdział należy do rodziny Projektowanie interakcji i ma formę Wzorzec. Poniższe dopowiedzenie ma jeden cel: przełożyć treść na działania, które da się wdrożyć, zmierzyć i utrzymać.
Checklista
- Ustal cel i kryteria poprawności (co znaczy „dobry wynik”).
- Zamknij format wyjścia (JSON / tabela / sekcje) i przygotuj walidację.
- Ogranicz przestrzeń odpowiedzi: instrukcje, słownik terminów, limity.
- Dodaj kontrolę jakości: self-check, sanity-checks, fallback, „no-answer”.
- Zapisz jako szablon (prompt_template) i wersjonuj jak kod.
- Wprowadź testy regresyjne (golden set) i przeglądy po zmianach.
Najczęstsze pułapki
- Mieszanie instrukcji z danymi wejściowymi (brak separacji „co” vs „na czym”).
- Format wynikowy „opisowy” bez kontraktu – brak automatycznej kontroli.
- Zbyt ogólne polecenia („napisz mądrze”) bez parametrów i ograniczeń.
- Brak strategii na niepewność: model zaczyna „zgadywać” zamiast eskalować.
Artefakty w Luage
Standard działa dopiero wtedy, gdy ma właściciela, wersję, ślad (trace) oraz test regresyjny.
Minimalny szablon promptu (do biblioteki)
prompt_template: support.reply@v3
intent: support.reply
inputs:
- user_message
- locale
constraints:
- "Jeśli brak źródła → powiedz, że nie wiesz i poproś o doprecyzowanie"
output:
format: markdown
sections: ["Odpowiedź", "Co dalej"]
Traktuj szablon jak kod: owner, wersja, testy i przegląd. Wtedy to działa powtarzalnie.
- różnica względem ReAct
- struktura planu (JSON)
- walidacja planu: policy/RBAC/DLP
- execute: timeouts, idempotency, trace
- checklist wdrożeniowy