Wzorzec

Orkiestracja rozmowy: state machine i guardrails

Tradycyjny, solidny sposób na przewidywalność rozmów z LLM: maszyna stanów, deterministyczne bramki oraz zaplanowany fallback. Szczególnie istotne, gdy asystent korzysta z narzędzi.

Czas czytania: ~15 min Aktualizacja: 2026-01-09
W skrócie
  • rozmowa jako proces i stany
  • deterministyczne bramki w Engine
  • fallback: no‑answer / HITL / retry

Dlaczego state machine

Model językowy jest świetny w generowaniu treści, ale słaby w utrzymywaniu niejawnych reguł. Jeżeli rozmowa ma mieć przewidywalny przebieg (szczególnie z narzędziami), potrzebujesz mechanizmu, który tradycyjnie sprawdza się od dekad: maszyny stanów.

State machine rozmowy
Minimalny wzorzec stanów: intake → plan/execute → deliver z kontrolowanym fallbackiem i eskalacją.

Minimalny zestaw stanów

Dla większości asystentów wystarczą stany:

  • Intake — zrozumienie celu, zebranie danych wejściowych.
  • Plan — wybór strategii, narzędzi, ograniczeń.
  • Execute — wykonanie z bramkami (policy, DLP, ACL, timeouts).
  • Deliver — odpowiedź, cytowania, format, next steps.
  • Fallback — no‑answer, HITL, retry planowy.

Przejścia i bramki

Każde przejście ma warunek i log. Przykład (pseudo):

if missing_required_inputs:
  goto Intake (ask)
elif high_risk and not approved:
  goto Fallback (approval)
elif tools_required:
  goto Execute
else:
  goto Deliver
Kluczowe: bramki są deterministyczne. Model może proponować, ale decyzja o przejściu jest w silniku.

Integracja z narzędziami

  • Każde narzędzie ma kontrakt (schema, skutki uboczne, idempotency).
  • Execute uruchamia narzędzia z limitami i timeouts.
  • Wyniki są walidowane (schema) i cytowane (provenance).

Fallback i eskalacja

Fallback to nie „błąd”, tylko zaplanowana ścieżka. Typowe warianty:

  • No‑Answer + dopytanie.
  • Approval/HITL dla działań o skutkach ubocznych.
  • Retry planowy dla operacji technicznych (np. chwilowy timeout).

Artefakty

Warto utrzymywać trzy artefakty:

Mapa stanów
diagram + warunki przejść (wersjonowane).
Bramki
policy, DLP, ACL, SLO, approval.
Test harness
regresje na ścieżkach i wyjątkach.

Checklist

  • Zdefiniuj stany i przejścia (nie zostawiaj tego „w głowie modelu”).
  • Wymuś deterministyczne bramki w silniku.
  • Wpisz fallback (no‑answer, HITL, retry) jako część projektu.
  • Loguj state, transition i trace_id.
  • Testuj regresje na ścieżkach krytycznych.

Powiązane

Skrót operacyjny
  1. Rozmowa to proces — ma stany.
  2. Bramki są deterministyczne.
  3. Fallback jest częścią projektu.
Artefakt
Mapa stanów + warunki przejść + checklist.
Integracje w workflow