Dowiedz się, jak LLM tłumaczą polityki na reguły, śledzą stan przepływu i weryfikują decyzje za pomocą promptów, narzędzi, testów i przeglądu ludzkiego — a nie tylko kodu.

Gdy pytają, czy model LLM potrafi „rozumować o regułach biznesowych”, zwykle mają na myśli coś bardziej wymagającego niż „czy potrafi napisać if/else”. Rozumowanie reguł biznesowych to umiejętność stosowania polityk w sposób spójny, wyjaśniania decyzji, obsługi wyjątków i zachowania zgodności z aktualnym krokiem przepływu pracy — zwłaszcza gdy dane wejściowe są niekompletne, nieuporządkowane lub zmienne.
Generowanie kodu polega głównie na tworzeniu poprawnej składni w docelowym języku. Rozumowanie reguł to zachowanie intencji.
Model może wygenerować w pełni poprawny kod, który nadal daje błędny wynik biznesowy, ponieważ:
Innymi słowy, poprawność to nie „czy kompiluje się?”, lecz „czy zgadza się z tym, co firma by zdecydowała, za każdym razem, i czy możemy to udowodnić?”.
LLM-y mogą pomóc tłumaczyć polityki na strukturyzowane reguły, sugerować ścieżki decyzyjne i szkicować wyjaśnienia dla ludzi. Nie wiedzą jednak automatycznie, która reguła jest nadrzędna, które źródło danych jest zaufane ani na jakim etapie sprawy się znajdujemy. Bez ograniczeń mogą pewnie wybrać prawdopodobną odpowiedź zamiast tej regulowanej.
Dlatego celem nie jest „pozwolić modelowi decydować”, lecz dać mu strukturę i kontrole, by mógł wiarygodnie pomagać.
Praktyczne podejście wygląda jak pipeline:
To różnica między sprytnym fragmentem kodu a systemem, który może wspierać prawdziwe decyzje biznesowe.
Zanim omówimy, jak LLM radzi sobie z „rozumowaniem”, warto rozdzielić dwie rzeczy, które zespoły często łączą: reguły biznesowe i przepływy pracy.
Reguły biznesowe to instrukcje decyzyjne, które organizacja chce egzekwować spójnie. Pojawiają się w postaci polityk i logiki, np.:
Reguły zwykle formułuje się jako „JEŚLI X, TO Y” (czasem z wyjątkami) i powinny dawać jasny wynik: zatwierdź/odrzuć, cena A/cena B, poproś o więcej informacji itd.
Przepływ pracy to proces, który przemieszcza zadanie od początku do końca. Chodzi mniej o to, co jest dozwolone, a bardziej o to, co dzieje się dalej. Przepływy często zawierają:
Wyobraź sobie prośbę o zwrot.
Fragment reguły: „Zwroty są dozwolone w ciągu 30 dni od zakupu. Wyjątek: pobierane pliki cyfrowe nie podlegają zwrotowi po dostępie. Wyjątek: chargebacki muszą być eskalowane.”
Fragment przepływu:
Reguły komplikują się, gdy konfliktują („klienci VIP zawsze dostają zwroty” vs. „pobierane pliki nigdy”), zależą od braku kontekstu (czy pobieranie nastąpiło?) lub kryją przypadki brzegowe (pakiety, częściowe zwroty, prawo regionalne). Przepływy dodają kolejną warstwę: decyzje muszą być zgodne z bieżącym stanem, wcześniejszymi działaniami i terminami.
LLM-y nie „rozumieją” reguł biznesowych jak człowiek. Generują kolejne najbardziej prawdopodobne słowa bazując na wzorcach z dużych zbiorów tekstu. Dlatego model może brzmieć przekonująco nawet wtedy, gdy zgaduje — lub gdy samowolnie uzupełnia brakujące informacje.
To ograniczenie ma znaczenie dla przepływów i logiki decyzyjnej. Model może zastosować regułę, która brzmi poprawnie („pracownicy zawsze potrzebują zgody menedżera”), mimo że rzeczywista polityka ma wyjątki („tylko powyżej 500$” lub „tylko dla kontraktorów”). To częsty tryb awaryjny: pewne, ale błędne zastosowanie reguły.
Nawet bez prawdziwego „rozumienia”, LLM-y pomagają, gdy traktuje się je jako ustrukturyzowanego asystenta:
Kluczowe jest umieszczenie modelu w pozycji, w której nie może łatwo zbaczyć w improwizację.
Praktyczny sposób zmniejszenia niejednoznaczności to ograniczony format wyjścia: wymagaj, by LLM odpowiadał w określonym schemacie lub szablonie (np. JSON z konkretnymi polami lub tabela z wymaganymi kolumnami). Gdy model musi wypełnić rule_id, conditions, exceptions i decision, łatwiej wykryć braki i automatycznie zwalidować wynik.
Ograniczone formaty także pokazują, kiedy model czegoś nie wie. Jeśli wymagane pole jest puste, można wymusić pytanie uzupełniające zamiast akceptować niepewną odpowiedź.
Wniosek: „rozumowanie” LLM to w praktyce generowanie wzorców sterowane strukturą — pomocne do organizowania i sprawdzania reguł, ale ryzykowne, gdy traktuje się je jako nieomylnego decydenta.
Dokumenty polityk są pisane dla ludzi: mieszają cele, wyjątki i „zdrowy rozsądek” w tym samym akapicie. LLM może je podsumować, ale będzie stosował reguły bardziej niezawodnie, gdy przekształcisz politykę w jawne, testowalne wejścia.
Dobre reprezentacje reguł mają dwie cechy: są jednoznaczne i możliwe do sprawdzenia.
Formułuj reguły tak, by dało się je przetestować:
Reguły możesz dostarczać modelowi w kilku formach:
Rzeczywiste polityki konfliktują. Gdy dwie reguły się nie zgadzają, model potrzebuje jasnego schematu priorytetów. Typowe podejścia:
Określ regułę rozwiązywania konfliktów bezpośrednio lub zakoduj ją (np. priority: 100). W przeciwnym razie LLM może „uśredniać” reguły.
Oryginalny tekst polityki:
"Zwroty są dostępne w ciągu 30 dni dla planów rocznych. Plany miesięczne nie podlegają zwrotowi po 7 dniach. Jeśli konto wykazuje oszustwo lub nadmierne chargebacki, nie wydawaj zwrotu. Klienci Enterprise potrzebują zgody finansów na zwroty powyżej $5,000."
Zorganizowane reguły (YAML):
rules:
- id: R1
statement: "IF plan_type = annual AND days_since_purchase <= 30 THEN refund MAY be issued"
priority: 10
- id: R2
statement: "IF plan_type = monthly AND days_since_purchase > 7 THEN refund MUST NOT be issued"
priority: 20
- id: R3
statement: "IF fraud_flag = true OR chargeback_rate = excessive THEN refund MUST NOT be issued"
priority: 100
- id: R4
statement: "IF customer_tier = enterprise AND refund_amount > 5000 THEN finance_approval MUST be obtained"
priority: 50
conflict_resolution: "Higher priority wins; MUST NOT overrides MAY"
Teraz model nie zgaduje, co ma znaczenie — stosuje zestaw reguł, który możesz przeglądać, testować i wersjonować.
Przepływ pracy to nie tylko zbiór reguł; to sekwencja zdarzeń, w której wcześniejsze kroki zmieniają, co powinno się wydarzyć dalej. Ta „pamięć” to stan: aktualne fakty o sprawie (kto co złożył, co już zatwierdzono, co czeka i jakie obowiązują terminy). Jeśli nie śledzisz stanu jawnie, przepływy zawodzą w przewidywalny sposób — duplikowane zatwierdzenia, pominięte kontrole, odwrócone decyzje lub zastosowanie niewłaściwej polityki, bo model nie potrafi wiarygodnie odczytać, co już się wydarzyło.
Myśl o stanie jak o tablicy wyników przepływu. Odpowiada na: Gdzie teraz jesteśmy? Co zostało zrobione? Co wolno zrobić dalej? Dla LLM jasne streszczenie stanu zapobiega ponownemu rozpatrywaniu wcześniejszych kroków lub zgadywaniu.
Gdy wywołujesz model, dołącz zwarty ładunek stanu wraz z prośbą użytkownika. Przydatne pola:
manager_review: approved, finance_review: pending)Unikaj wrzucania całej historii wiadomości. Zamiast tego podaj aktualny stan i krótką ścieżkę audytu najważniejszych przejść.
Traktuj silnik przepływu (bazę danych, system zgłoszeń lub orchestrator) jako jedno źródło prawdy. LLM powinien czytać stan z tego systemu i proponować kolejną akcję, ale to system powinien zapisywać przejścia. To zmniejsza „dryf stanu”, gdy narracja modelu rozbiega się z rzeczywistością.
{
"request_id": "TRV-10482",
"workflow": "travel_reimbursement_v3",
"current_step": "finance_review",
"step_status": {
"submission": "complete",
"manager_review": "approved",
"finance_review": "pending",
"payment": "not_started"
},
"actors": {
"employee_id": "E-2291",
"manager_id": "M-104",
"finance_queue": "FIN-AP"
},
"amount": 842.15,
"currency": "USD",
"submitted_at": "2025-12-12T14:03:22Z",
"last_state_update": "2025-12-13T09:18:05Z",
"flags": {
"receipt_missing": false,
"policy_exception_requested": true,
"needs_escalation": false
}
}
Z taką migawką model pozostaje spójny: nie poprosi ponownie o akceptację menedżera, skupi się na kontrolach finansowych i będzie potrafił wyjaśnić decyzję w kontekście bieżących flag i kroku.
Dobry prompt nie tylko pyta o odpowiedź — ustawia oczekiwania, jak model powinien stosować reguły i jak raportować wynik. Celem są powtarzalne decyzje, nie efektowny tekst.
Nadaj modelowi konkretną rolę powiązaną z procesem. Trzy role dobrze ze sobą współpracują:
Możesz uruchamiać je sekwencyjnie („analityk → weryfikator → agent”) lub poprosić o wszystkie trzy wyjścia w jednej ustrukturyzowanej odpowiedzi.
Zamiast prosić o „chain-of-thought”, określ widoczne kroki i artefakty:
To utrzymuje model zorganizowanym i skupionym na rezultatach: które reguły użyto i jaki płynie z tego wniosek.
Swobodne wyjaśnienia błądzą. Wymagaj zwięzłej racjonalizacji wskazującej źródła:
To przyspiesza przegląd i pomaga debugować niezgodności.
Używaj stałego szablonu za każdym razem:
Szablon zmniejsza niejednoznaczność i skłania model do odkrywania braków zanim podejmie błędną akcję.
LLM potrafi napisać przekonującą odpowiedź, nawet jeśli brakuje mu kluczowych faktów. To przydatne do szkiców, ale ryzykowne w decyzjach biznesowych. Jeśli model musi zgadywać status konta, poziom klienta, stawkę podatkową lub czy limit został już przekroczony, otrzymasz pewnie wyglądające błędy.
Narzędzia rozwiązują to, przekształcając „rozumowanie” w proces dwuetapowy: najpierw pobierz dowody, potem zdecyduj.
W systemach opartych na regułach i przepływach kilka prostych narzędzi robi większość pracy:
Ważne, by model nie „wymyślał” faktów operacyjnych — powinien je żądać.
Nawet mając centralne repozytorium polityk, rzadko chcesz wkleić wszystkie dokumenty do promptu. Retrieval wybiera tylko najbardziej istotne fragmenty dla danej sprawy, np.:
To redukuje sprzeczności i zmniejsza ryzyko, że model zastosuje przestarzałą regułę tylko dlatego, że pojawiła się wcześniej w kontekście.
Wiarygodny wzorzec to traktowanie wyników narzędzi jako dowodu, które model musi powołać w decyzji. Na przykład:
get_account(account_id) → status="past_due", plan="Business", usage_this_month=12000retrieve_policies(query="overage fee Business plan") → zwraca regułę: „Overage fee applies above 10,000 units at $0.02/unit.”calculate_overage(usage=12000, threshold=10000, rate=0.02) → $40.00Teraz decyzja nie jest zgadywaniem: to wniosek osadzony w konkretnych danych („past_due”, „12,000 units”, „$0.02/unit”). Jeśli później audytujesz wynik, zobaczysz, które fakty i która wersja reguły zostały użyte — i możesz naprawić właściwą część, gdy coś się zmieni.
Swobodny tekst jest elastyczny, ale też najłatwiej prowadzi do błędów w przepływie. Model może dać „rozsądną” odpowiedź niemożliwą do zautomatyzowania („wygląda w porządku”) lub niespójną między krokami („approve” vs. „approved”). Ograniczone odpowiedzi wymuszają przewidywalny kształt decyzji.
Praktyczny wzorzec: wymagaj od modelu jednej odpowiedzi w postaci obiektu JSON, który system może sparsować i przekierować.
{
"decision": "needs_review",
"reasons": [
"Applicant provided proof of income, but the document is expired"
],
"next_action": "request_updated_document",
"missing_info": [
"Income statement dated within the last 90 days"
],
"assumptions": [
"Applicant name matches across documents"
]
}
Taka struktura jest użyteczna nawet wtedy, gdy model nie może całkowicie zdecydować. missing_info i assumptions zamieniają niepewność w konkretne kolejne kroki zamiast ukrytego zgadywania.
Aby zmniejszyć zmienność, zdefiniuj dozwolone wartości (enum) dla kluczowych pól. Na przykład:
decision: approved | denied | needs_reviewnext_action: approve_case | deny_case | request_more_info | escalate_to_humanDzięki enumom systemy downstream nie muszą interpretować synonimów, interpunkcji ani tonu. Po prostu rozgałęziają się na znane wartości.
Schematy działają jak barierki ochronne. One:
reasons).decision i next_action.Efekt: mniej niejednoznaczności, mniej awarii w przypadkach brzegowych i decyzje, które mogą płynnie przechodzić przez przepływ.
Nawet dobrze skonstruowany prompt może „brzmieć poprawnie”, a jednocześnie łamać regułę, pominąć wymagany krok lub wymyślić wartość. Walidacja to sieć bezpieczeństwa, która zmienia prawdopodobną odpowiedź w niezawodną decyzję.
Zacznij od sprawdzenia, czy masz minimum informacji potrzebnych do zastosowania reguł. Pre-checki powinny działać zanim model podejmie decyzję.
Typowe pre-checki: pola wymagane (np. typ klienta, suma zamówienia, region), podstawowe formaty (daty, identyfikatory, waluty) i dozwolone zakresy (wartości nieujemne, procenty do 100%). Jeśli coś zawiedzie, zwróć jasny, wykonalny błąd ("Brakuje 'regionu'; nie można wybrać zestawu reguł podatkowych") zamiast pozwalać modelowi zgadywać.
Po wygenerowaniu wyniku przez model, sprawdź, czy jest zgodny z zestawem reguł.
Skup się na:
Dodaj „drugie przejście”, które ponownie ocenia pierwszą odpowiedź. Może to być kolejne wywołanie modelu lub ten sam model z promptem weryfikatora, który sprawdza zgodność, nie kreatywność.
Prosty wzorzec: pierwsze przejście generuje decyzję + racjonalizację; drugie przejście zwraca valid lub uporządkowaną listę niezgodności (braki pól, naruszone ograniczenia, niejednoznaczna interpretacja reguły).
Dla każdej decyzji loguj użyte dane wejściowe, wersję reguły/polityki oraz wyniki walidacji (łącznie z ustaleniami z drugiego przejścia). Gdy coś pójdzie nie tak, pozwala to odtworzyć dokładne warunki, naprawić mapowanie reguł i potwierdzić korektę — bez zgadywania, co model „miał na myśli”.
Testowanie funkcji LLM opartych na regułach i przepływach to mniej pytanie „czy coś wygenerował?” a bardziej „czy podjął taką samą decyzję jak uważny człowiek, z właściwego powodu, za każdym razem?”. Dobrą wiadomością jest to, że możesz testować je z taką samą dyscypliną jak klasyczną logikę decyzyjną.
Traktuj każdą regułę jak funkcję: dla danych wejściowych powinna zwracać oczekiwany wynik.
Na przykład dla reguły zwrotu „zwroty do 30 dni dla nieotwartych produktów” napisz zwięzłe przypadki oczekiwanych wyników:
Testy jednostkowe wykrywają pomyłki o jeden krok, brak pól i „pomocne” zachowanie modelu, który próbuje wypełnić nieznane.
Przepływy zawodzą, gdy stan staje się niespójny między krokami. Testy scenariuszowe symulują rzeczywiste ścieżki:
Celem jest zweryfikowanie, że model respektuje aktualny stan i podejmuje jedynie dozwolone przejścia.
Utwórz zestaw starannie dobranych, zanonimizowanych przykładów z uzgodnionymi wynikami (i krótkimi racjonalizacjami). Wersjonuj go i przeglądaj przy zmianach polityk. Nawet mały złoty zestaw (100–500 przypadków) jest potężny, bo odzwierciedla rzeczywistość — brakujące dane, nietypowe sformułowania, decyzje graniczne.
Śledź rozkłady decyzji i sygnały jakości w czasie:
needs_review lub przekazywaniu do ludzi (często problem z promptem, retrieval lub danymi upstream)Połącz monitoring z mechanizmem bezpiecznego rollbacku: trzymaj poprzedni pakiet promptów/reguł, wdrażaj nowe wersje za flagą funkcji i szybko wycofuj, gdy metryki się pogorszą. Dla playbooków operacyjnych i progów wydawniczych zobacz /blog/validation-strategies.
Jeśli wdrażasz opisane wzorce, zwykle budujesz mały system wokół modelu: przechowywanie stanu, wywołania narzędzi, retrieval, walidacja schematów i orchestrator przepływów. Koder.ai to praktyczny sposób szybkiego prototypowania i wdrażania takiego asystenta z obsługą przepływów: możesz opisać przepływ w czacie, wygenerować działającą aplikację webową (React) oraz backend (Go z PostgreSQL) i bezpiecznie iterować za pomocą migawek i rollbacku.
To ma znaczenie dla rozumowania reguł biznesowych, bo „barierki” często żyją w aplikacji, nie w promptach:
LLM-y mogą zaskakująco dobrze stosować codzienne polityki, ale nie są deterministycznym silnikiem reguł. Traktuj je jako asystenta decyzji, który potrzebuje barier, a nie ostatecznego autorytetu.
Trzy tryby awaryjne pojawiają się powtarzalnie w przepływach opartych na regułach:
Wprowadź obowiązkowy przegląd, gdy:
Zamiast pozwalać modelowi „wymyślać”, zdefiniuj jasne następne kroki:
Używaj LLM-ów w przepływach opartych na regułach, gdy możesz odpowiedzieć „tak” na większość z tych pytań:
Jeśli nie, trzymaj LLM w roli szkicu/asystenta, dopóki nie wprowadzisz tych zabezpieczeń.