Wzorzec

ReAct (Reason + Act): wzorzec pracy z narzędziami bez zgadywania

Jak projektować przebieg „plan → tool → observation → odpowiedź” w sposób kontrolowalny, audytowalny i odporny na pętle oraz nadużycia narzędzi.

Rozszerzenie praktyczne

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

prompt_template output_contract policy:language.standard trace_id golden_set

Standard działa dopiero wtedy, gdy ma właściciela, wersję, ślad (trace) oraz test regresyjny.

Szablon do skopiowania

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.

W tym rozdziale
  • kiedy ReAct ma sens (a kiedy nie)
  • jak zbudować cykl plan–action–observation
  • kontrakt narzędzi + Tool Gateway
  • limity i telemetria (trace, budżety)
  • checklist wdrożeniowy

Po co ReAct

ReAct (Reason + Act) to wzorzec projektowania interakcji, w którym model naprzemiennie wykonuje kroki rozumowania i kroki działania (wywołania narzędzi). W praktyce produkcyjnej ReAct ma jeden cel: zmniejszyć ryzyko zgadywania poprzez wymuszenie pracy na danych i obserwacjach, zamiast na domysłach.

Uwaga praktyczna: w Luage „Reason” nie oznacza publikowania pełnego toku rozumowania. W systemach produkcyjnych preferujemy jawny plan i jawne działania (narzędzia, źródła, walidacje), a rozumowanie wewnętrzne pozostaje krótkie, kontrolowane i audytowalne.
Rysunek 1. Minimalny cykl ReAct w systemie narzędziowym
Plan (jawny) Action (tool) Observation Update state kontekst, pamięć Final pętla do spełnienia kryterium stopu (limity kroków, wynik, błąd krytyczny)

ReAct w Luage: trzy warstwy kontroli

Żeby ReAct był rzetelny, potrzebuje kontroli w trzech miejscach:

  1. Kontrakt narzędzi (schema, typy, ograniczenia, idempotency).
  2. Bramki (RBAC, DLP/PII, zakres uprawnień, approvals dla skutków ubocznych).
  3. Audyt i limity wykonania (trace, budżet kroków, budżet tokenów, timeouts).
Wzorzec: ReAct nie zaczyna się od „ładnego promptu”, tylko od inżynierii narzędzi i inżynierii kontekstu. Dopiero potem promptowanie dostraja zachowanie.

Minimalny kontrakt „Planner → Tool Gateway → Executor”

W praktyce warto rozdzielić role:

  • Planner – wybiera narzędzie i przygotowuje argumenty (bez skutków ubocznych).
  • Tool Gateway – waliduje i autoryzuje wywołanie (schema/RBAC/DLP/approval).
  • Executor – wykonuje narzędzie deterministycznie, loguje trace i zwraca observation.

Najczęstsze błędy i jak ich unikać

  • Tool‑loop (pętla bez postępu) → limit kroków + detektor powtarzalnych obserwacji.
  • „Tool cosplay” (model udaje wynik narzędzia) → twarde rozdzielenie kanałów: action/observation z systemu, nie z modelu.
  • Brak provenance → bind cytowań do źródeł (doc_id, wersja, fragment).
  • Za szerokie uprawnienia → allowlist narzędzi per dziedzina + RBAC + approvals.

Checklist wdrożeniowy (skrót)

  • Inventory narzędzi + kontrakty (schema, typy, ograniczenia) gotowe i wersjonowane.
  • Tool Gateway z bramkami: Schema → RBAC → DLP/PII → Approval (jeśli write).
  • Limity: max steps, max tool calls, timeout per call, idempotency key.
  • Telemetria: trace_id, wynik bramek, błędy narzędzi, retry count.
  • Regresje: scenariusze „tool fail”, „denied”, „approval required”.
Powiązane
Na tej stronie
Spis
    Status merytoryczny
    Ten rozdział jest częścią Compendium. Metryka (wersja, owner, terminy przeglądu) jest wypełniana automatycznie na podstawie manifestu.