Jak powstrzymać halucynacje ChatGPT w regulowanej pracy zgodności (compliance)

AI Compliance Prompt Engineering AI Agents Responsible Gambling

Brytyjski zespół Responsible Gambling (RG) zgłosił się do nas z problemem, który rozpozna każdy, kto automatyzuje regulowaną pracę. Zespół używa ChatGPT do przekształcania automatycznych wyzwalaczy zgodności w formalne notatki analityczne. Gdy klient przekracza próg — obrót wzrasta o ponad 100% w 30 dni, sesja przekracza swój limit — analityk kopiuje odpowiednie dane do ChatGPT, a model, zgodnie z wcześniej wgranym promptem, tworzy notatkę do pliku zgodności klienta.

Ta notatka to nie szkic e-maila. To dokument prawny, który może zostać skontrolowany przez UK Gambling Commission. I po pewnym czasie ChatGPT zaczął halucynować liczby, pomijać kluczowe informacje, wstawiać myślniki (em dash), które łamały styl firmowy, oraz po cichu odchodzić od reguł w miarę upływu popołudnia. W regulowanym pliku każdy z tych błędów to problem zgodności.

Pytanie, które zadali, było proste: czy w ogóle da się uzyskać z modelu językowego spójność, jakiej wymaga regulowana praca? Odpowiedź brzmi tak — ale nie przez poprawianie sformułowań promptu w oknie czatu. Wymaga to zmiany architektury oraz zdyscyplinowanego przepisania. Ten artykuł krok po kroku przedstawia dokładną metodę, wykorzystując workflow RG jako przykład roboczy, dzięki czemu można ją zastosować w dowolnym regulowanym procesie, w którym to samo wejście musi za każdym razem dawać ten sam wiarygodny wynik.

Dlaczego ChatGPT dryfuje w regulowanej pracy

Zanim cokolwiek naprawimy, warto precyzyjnie nazwać tryby awarii. W workflow RG odtworzyliśmy pięć odrębnych sposobów, w jakie wynik się psuł — od krytycznych po jedynie irytujące.

Pięć trybów awarii: halucynowane liczby i odwrócenie konwencji P/L (krytyczne), wstawianie myślników i dryf sesji (wysokie), oraz niespójne nazewnictwo interwencji (średnie)

Dwa krytyczne to niebezpieczna para. Halucynowane liczby wprowadzają błędną kwotę depozytu lub wyniku finansowego (P/L) do regulowanego pliku — model uzupełnia lukę z pamięci treningowej zamiast przyznać, że dane są nieobecne. Odwrócenie konwencji jest subtelniejsze: ten operator stosuje odwróconą konwencję zysków i strat, w której liczba dodatnia oznacza, że klient przegrywa. Jest to nieintuicyjne, więc model wraca do standardowej konwencji, której nauczył się w treningu, i pisze, że klient przegrywa, podczas gdy w rzeczywistości wygrywa.

Problemy o wysokiej istotności — myślniki naruszające styl firmowy oraz dryf sesji, w którym reguły są ignorowane w późniejszej części dnia — nie wprowadzają błędnej liczby do pliku, ale podważają zaufanie do wyniku i tworzą dodatkową pracę. Problem o średniej istotności, nieformalne nazwy interwencji zamiast dokładnych terminów regulacyjnych, po cichu zaburza rejestr zgodności.

Pierwotną przyczyną jest brak bezstanowości — lub jego brak

Cztery z tych pięciu awarii mają jedną wspólną przyczynę. W pojedynczej sesji ChatGPT każdy analizowany przypadek jest dołączany do okna kontekstu. Przy analizie przypadku pierwszego model widzi prompt i jeden przypadek. Przy piętnastym widzi prompt plus statystyczną pozostałość czternastu poprzednich wymian. Reguły promptu wciąż tam są, ale konkurują z rosnącym stosem kontekstu, a uwaga poświęcana im słabnie.

Po lewej: sesja ChatGPT, w której kontekst kumuluje się przypadek po przypadku, a przestrzeganie reguł słabnie od rana do popołudnia. Po prawej: bezstanowy agent, w którym każdy przypadek to izolowane, świeże wywołanie, a przestrzeganie reguł pozostaje stałe.

Dlatego ten sam prompt daje idealną notatkę o 9 rano i wadliwą o 16. Rozwiązaniem architektonicznym jest bezstanowość: każdy przypadek musi być całkowicie nowym, izolowanym wywołaniem, które widzi wyłącznie zablokowany prompt i bieżący przypadek. Nic nie jest przenoszone dalej. Agent AI skonfigurowany w ten sposób poświęca promptowi taką samą uwagę przy przypadku pięćdziesiątym, jak przy pierwszym.

Bezstanowość jest konieczna, ale niewystarczająca. Zatrzymuje dryf, ale wiernie odtworzy zły prompt przy każdym wywołaniu. Dlatego sam prompt musi zostać utwardzony.

Logo FlowHunt

Gotowy na rozwój swojej firmy?

Rozpocznij bezpłatny okres próbny już dziś i zobacz rezultaty w ciągu kilku dni.

Krok 1: Utwardź prompt pod kątem prymatu i świeżości (primacy i recency)

Modele językowe nie ważą każdej linii promptu jednakowo. Uwaga ma z grubsza kształt litery U — najsilniejsza na początku i na końcu, najsłabsza pośrodku. Oryginalny prompt RG walczył z tym efektem. Jego najważniejsza reguła, odwrócona konwencja zysków i strat, znajdowała się w środku promptu, podana tylko raz. Zakaz myślników był ostatnią linią, również podaną tylko raz.

Oryginalny prompt ukrywał regułę P/L w środku, gdzie uwaga jest najniższa; utwardzony prompt v2.0 umieszcza kluczowe reguły na górze i powtarza je na dole, aby uchwycić zarówno wagę prymatu, jak i świeżości

Przepisanie przeniosło kluczowe reguły tam, gdzie model faktycznie patrzy, i przepracowało słabe fragmenty promptu systemowego . Oto co się zmieniło i dlaczego.

OryginałUtwardzona wersja v2.0Dlaczego to ważne
Reguła P/L ukryta w środku promptu, podana razReguła 1 na samej górze z krokiem samosprawdzenia, powtórzona w sekcji stylu pisaniaWaga prymatu — najważniejsza reguła musi być pierwsza
Zakaz myślników na samym końcu, razReguła 2 na górze, powtórzona jako ostatnia reguła na doleUchwytuje wagę zarówno prymatu, jak i świeżości
Brak instrukcji dla niekompletnego wejściaReguła 4 — protokół brakujących danych z dokładnym formatem odpowiedziEliminuje halucynacje i tworzy ścieżkę audytu
Brak instrukcji dla formatu wejściaReguła 3 — akceptuj dowolny format, zawsze przepisuj od zeraPowstrzymuje model przed lekkim przeformatowaniem wklejonej notatki
19 wymaganych pól, wszystkie o równej wadze15 wymaganych + 4 opcjonalne pola, wyraźnie rozdzielonePola opcjonalne są pomijane po cichu; pola wymagane blokują generowanie, jeśli ich brak
“Profesjonalnie. Naturalnie. Nie robotycznie.”Konkretne reguły: język łączący, zróżnicowana długość zdań, zabronione konstrukcjeNiejasne przymiotniki nie są przestrzegane; konkretne reguły — tak
Przykładowa notatka dołączonaPrzykład całkowicie usuniętyModel traktował przykład jako dane wejściowe, na które trzeba odpowiedzieć

Największa lekcja: niejasne przymiotniki to nie instrukcje. Polecenie modelowi bycia “naturalnym” aktywnie zachęcało do myślników i retorycznych ozdobników, które łamały styl firmowy. Zastąpienie tego konkretnymi, testowalnymi regułami sprawiło, że styl stał się spójny.

Krok 2: Obsłuż brakujące dane zamiast je wymyślać

Halucynacja jest często przedstawiana jako defekt modelu. W pracy strukturalnej jest to zwykle defekt promptu: prompt nigdy nie powiedział modelowi, co robić, gdy pole jest nieobecne, więc model zrobił to, co statystycznie prawdopodobne, i wygenerował wiarygodnie brzmiącą wartość.

Rozwiązaniem jest protokół brakujących danych. Podziel swoje pola na wymagane i opcjonalne. Pola opcjonalne są po cichu pomijane, gdy ich brak. Pola wymagane działają odwrotnie — jeśli któregoś brakuje, model musi zatrzymać się i poprosić o nie w dokładnie określonym formacie zamiast generować notatkę. Ta jedna reguła zamienia niewidoczną halucynację w widoczną, możliwą do audytu prośbę o dodatkowe dane. To różnica między błędną liczbą w regulowanym pliku a notatką, która nigdy nie powstała, bo wejście było niekompletne.

Krok 3: Zablokuj konfigurację agenta

Przy utwardzonym prompcie sam agent musi zostać zablokowany, aby nic nie wprowadziło ponownie zmienności. Cały przepływ jest celowo minimalny — trzy węzły i nic więcej.

Chat Input przepływa do węzła AI Agent zawierającego zablokowany prompt systemowy przy temperaturze 0,2, bez narzędzi i z nową konwersacją dla każdego przypadku, a następnie do Chat Output

Wybory konfiguracyjne, które miały znaczenie:

  • Prompt systemowy w polu System Message, nigdy w polu Input, aby był odczytywany jako instrukcje, a nie dane.
  • Temperatura 0,2. Wystarczająco niska dla maksymalnej spójności, wystarczająco wysoka, aby uniknąć robotycznej prozy. Zero było zbyt sztywne; jeden był zbyt kreatywny.
  • Brak podłączonych narzędzi. Narzędzia do pobierania plików i URL-i wprowadzają nieprzewidywalność i mogą omijać rozumowanie agenta. Do tego zadania model nie potrzebuje niczego poza promptem i wklejonym przypadkiem.
  • Max tokens pozostawione na wartości domyślnej. Ograniczenie liczby tokenów powodowało, że notatki urywały się w połowie zdania, a urwana notatka w pliku klienta sama w sobie stanowi ryzyko regulacyjne.
  • Instrukcja cichego startu na górze promptu, dzięki której agent nie potwierdza reguł analitykowi przy pierwszym uruchomieniu przepływu.

Jedna reguła operacyjna, która ma największe znaczenie

Każda z powyższych poprawek zostaje zniweczona przez jeden zły nawyk: ponowne używanie tego samego czatu. Najważniejszą regułą operacyjną dla zespołu analityków jest rozpoczynanie nowej konwersacji dla każdego pojedynczego przypadku. Nigdy nie kontynuować analizy kolejnych przypadków w tym samym oknie. To reguła, która eliminuje dryf sesji — pierwotną przyczynę większości oryginalnych awarii — i nic nie kosztuje jej przestrzeganie.

Spójność to problem architektury, nie sformułowań

Jeśli Twój zespół walczy z dryfującym promptem w oknie czatu, rozwiązaniem jest utwardzony prompt działający na bezstanowym agencie. FlowHunt pozwala zablokować prompt, przypiąć model i temperaturę oraz uruchamiać czyste wywołanie dla każdego przypadku. Pomożemy Ci to osiągnąć.

Czy to naprawdę działa? 9 modeli, 27 przebiegów

Metoda jest tak dobra, jak dowody, które ją potwierdzają. Przetestowaliśmy dziewięć modeli względem utwardzonego promptu, wykorzystując identyczny rzeczywisty przypadek (wyzwalacz Gambling Intensity z historią wcześniejszej długości sesji) w trzech przebiegach dla każdego modelu — łącznie 27 przebiegów — i oceniliśmy każdy przebieg względem 16 kryteriów zgodności.

Średni wynik zgodności dla dziewięciu modeli. Gotowe produkcyjnie: GPT-5.6 Luna 10, Claude Fable 5 10, Claude Sonnet 5 9,8, Claude Opus 4.8 9,8, GPT-5.4 Default 9,5. Zdyskwalifikowane: Claude Sonnet 4.6 8,7, Claude Haiku 4.5 8,5, najtańszy poziom 8,0, DeepSeek V4 Pro 7,8.

We wszystkich 27 przebiegach żaden z modeli gotowych produkcyjnie nie zhalucynował liczby, nie odwrócił konwencji P/L, nie użył myślnika ani nie uciął wyniku. Utwardzony prompt wyeliminował każdy z pierwotnych trybów awarii w modelach, które się zakwalifikowały. Pozostałe różnice dotyczyły głębi analitycznej i spójności, a nie poprawności.

ModelDostawcaŚr. wynikProdukcyjnyUwagi
GPT-5.6 LunaOpenAI10 / 10TakIdealny we wszystkich trzech przebiegach; najwyższa spójność
Claude Fable 5Anthropic10 / 10TakNajlepiej uzasadnione akapity wyniku; najlepsza pojedyncza notatka
Claude Sonnet 5Anthropic9,8 / 10TakBrak halucynacji w żadnym przebiegu; najlepszy wszechstronny Claude
Claude Opus 4.8Anthropic9,8 / 10TakNajgłębsza analiza; koszt premium
GPT-5.4 DefaultOpenAI9,5 / 10TakJedno potknięcie w nazewnictwie; najlepsza opcja budżetowa
Claude Sonnet 4.6Anthropic8,7 / 10NiePomylił próg wyzwalacza z limitem depozytu w 2/3 przebiegów
Claude Haiku 4.5Anthropic8,5 / 10NieSpójny, ale słabe uzasadnienie wyniku
Najtańszy poziomBudżetowy8,0 / 10NieDokładna nazwa interwencji tylko w 1/3 przebiegów
DeepSeek V4 ProDeepSeek7,8 / 10NieUcięty wynik w przebiegu 1; niespójny

Dyskwalifikacje są pouczające. Claude Sonnet 4.6 tworzył piękną prozę, ale pomylił próg wyzwalacza z limitem depozytu — błędną liczbę w regulowanym pliku, co dyskwalifikuje niezależnie od tego, jak dobrze to brzmi. Wahania DeepSeek między przebiegami (6, 8,5, 9) to prawdziwy problem: w regulowanej pracy jakość zależna od szczęścia to żadna jakość.

Koszt nie jest ograniczeniem

Kuszące jest optymalizowanie pod kątem ceny, ale liczby przemawiają przeciwko temu. Nawet najdroższy model gotowy produkcyjnie, Claude Opus 4.8, kosztuje w przybliżeniu sześć centów za notatkę. Dla zespołu analizującego 50 przypadków dziennie to poniżej 90 dolarów miesięcznie. Koszt pojedynczego ustalenia regulacyjnego wynikającego z błędnej notatki przewyższyłby roczny koszt dowolnego modelu z listy. W regulowanej zgodności wybieraj najbardziej niezawodny model, jaki możesz sobie pozwolić, a nie najtańszy.

Jak wygląda utwardzona notatka

Najlepsza pojedyncza notatka spośród wszystkich 27 przebiegów pochodziła od Claude Fable 5. Zwróć uwagę, co robi: podaje pozycję w prawidłowej konwencji, cytuje liczby dosłownie, używa dokładnej nazwy interwencji i — co kluczowe — wyjaśnia dlaczego eskalacja byłaby nieproporcjonalna, zamiast po prostu stwierdzić wynik.

The customer is currently in a winning position of £1,612.50 with an account balance of £8,962.50, which represents an improvement on the winning position of £1,275.00 recorded at the previous review… Session duration was reviewed under Session Duration Level 1 on 19/07 and again on 20/07… Given that those decisions were made within the last few days, insufficient time has elapsed to assess their effectiveness, and repeating or escalating on the same behaviour at this stage would be disproportionate… In this context, No Further Action Required is the proportionate outcome.

To standard, jakiego wymaga regulowana praca: oparty na dowodach, proporcjonalny i identyczny jakościowo zarówno przy pierwszym przypadku dnia, jak i przy pięćdziesiątym.

Zastosowanie tego do własnego regulowanego workflow

Generator notatek RG to konkretny przypadek, ale metoda uogólnia się na dowolny proces, w którym model językowy musi produkować wiarygodne, powtarzalne wyniki na regulowanych lub wysokostawkowych danych:

  1. Zrezygnuj z okna czatu. Uruchamiaj każdy przypadek jako bezstanowe wywołanie, aby kontekst nie mógł się kumulować i dryfować.
  2. Utwardź prompt pod kątem prymatu i świeżości. Umieść kluczowe reguły na początku i powtórz je na końcu. Dodaj samosprawdzenia.
  3. Nadaj modelowi protokół brakujących danych. Pola wymagane blokują generowanie w przypadku braku; pola opcjonalne są pomijane po cichu. Nigdy nie pozwalaj mu zgadywać.
  4. Zablokuj konfigurację. Niska, niezerowa temperatura, brak zbędnych narzędzi, nieograniczony wynik, prompt w wiadomości systemowej.
  5. Testuj, zanim zaufasz. Uruchom ten sam przypadek wielokrotnie na modelach kandydujących i oceń względem jawnych kryteriów. Spójność między przebiegami to miara, która się liczy.

Zrób tych pięć rzeczy, a przekształcisz model, który halucynuje po południu, w taki, który za każdym razem produkuje wynik gotowy na audyt. Spójność, jakiej wymaga regulowana praca, jest osiągalna — to problem architektury i inżynierii promptów, a oba są rozwiązywalne.

Najczęściej zadawane pytania

Arshia jest Inżynierką Przepływów Pracy AI w FlowHunt. Z wykształceniem informatycznym i pasją do sztucznej inteligencji, specjalizuje się w tworzeniu wydajnych przepływów pracy, które integrują narzędzia AI z codziennymi zadaniami, zwiększając produktywność i kreatywność.

Arshia Kahani
Arshia Kahani
Inżynierka Przepływów Pracy AI

Wprowadź spójność FlowHunt do swojego regulowanego workflow

Zamień dryfujący prompt ChatGPT w zablokowanego, bezstanowego agenta, który za każdym razem produkuje notatki gotowe na audyt. Pomożemy Ci utwardzić prompt i dobrać właściwy model.

Dowiedz się więcej

Zrozumienie i zapobieganie halucynacjom w chatbotach AI
Zrozumienie i zapobieganie halucynacjom w chatbotach AI

Zrozumienie i zapobieganie halucynacjom w chatbotach AI

Czym są halucynacje w AI, dlaczego się pojawiają i jak ich unikać? Dowiedz się, jak utrzymać dokładność odpowiedzi chatbota AI dzięki praktycznym, skoncentrowan...

4 min czytania
Theory Intermediate
Jailbreaking Chatbotów AI: Techniki, Przykłady i Obrona
Jailbreaking Chatbotów AI: Techniki, Przykłady i Obrona

Jailbreaking Chatbotów AI: Techniki, Przykłady i Obrona

Jailbreaking chatbotów AI omija bariery bezpieczeństwa, aby zmusić model do zachowania poza zamierzonymi granicami. Poznaj najczęstsze techniki — DAN, odgrywani...

8 min czytania
AI Security Jailbreaking +3
Dlaczego modele językowe halucynują? Badania OpenAI
Dlaczego modele językowe halucynują? Badania OpenAI

Dlaczego modele językowe halucynują? Badania OpenAI

Dowiedz się, jak najnowsze badania OpenAI wyjaśniają, dlaczego modele językowe halucynują i generują przekonujące nieprawdziwe informacje. Poznaj główne przyczy...

13 min czytania
AI Language Models +3