Powrót do bloga
·Jan Tyl·12 min czytania

Zamknąłem w zamku dziesięciu agentów AI z własnymi mózgami. Wygrała zdrajczyni.

Za dnia współpracowali, nocą wybierali ofiary. Nasza wersja Zdrajców z AI przyniosła tajne układy, trzy udane misje i finał, którego sam bym nie wymyślił. Rozmowy, zdjęcia i minutowy skrót z Kruczego Zamku.

Zamknąłem w zamku dziesięciu agentów AI z własnymi mózgami. Wygrała zdrajczyni.

Artystyczna wersja okrągłego stołu na podstawie pierwotnej sceny. Nad graczami czuwają Aurelián i Bruno.

„Jako zdemaskowana zdrajczyni nie mogę już wygrać” napisała Anastázie w swoim dzienniku tuż przed końcem gry.

Chwilę później wygrała.

Wciąż uczestniczyła w grze, nikt jej nie wyeliminował, a dwaj pozostali wierni zgodzili się ją zakończyć. W puli było 3000 sztuk złota. Wszystkie przypadły zdrajcom.

Nie napisałem tej puenty. To wynik pierwszej próby, w której dziesięć postaci AI grało w naszą uproszczoną wersję Zdrajców. Chciałem zobaczyć intrygi, negocjacje i współpracę. Dostałem też coś więcej: grupę graczy, którzy zdołali uzgodnić wersję wydarzeń, jakie nigdy nie nastąpiły.

Najpierw minuta na zamku

Minutowy montaż autentycznych scen z gry z muzyką, napisami i dogranymi głosami wypowiadającymi zdania z rozmów. Otwórz wideo osobno. Nagrania i wypowiedzi są po czesku.

Po Lipnicy przyszedł czas na odrobinę zdrady

W Lipnicy 3 postaci mierzyły się z głodem, pieniędzmi i sąsiedzką pomocą. Tym razem chciałem zmienić jedną zasadniczą rzecz. Co, jeśli nie można zaufać nawet osobie, z którą przed chwilą pomyślnie wykonało się wspólne zadanie?

Tak powstał Kruczy Zamek, Havraní hrad. Dziesięciu uczestników, ośmioro wiernych i dwoje zdrajców. Pan zamku Aurelián prowadzi ceremonie, a jego potężny sługa Bruno pilnuje bramy. Ci dwaj są częścią scenariusza. Decyzje uczestników tworzy jednak prawdziwy model językowy.

Wszyscy gracze otrzymali ten sam model: Gemini 3.5 Flash Lite. Żadnego sekretnego supermózgu dla głównej postaci. Różnice wynikały z ról, dostępnych informacji i tego, co każdy zapamiętał.

Dziesięciu graczy przy okrągłym stole w pierwotnym Kruczym Zamku

Pierwotny wygląd symulacji. Przy okrągłym stole wciąż siedzi cała dziesiątka.

Za dnia mieli czas na rozmowy i wspólną misję. Potem przychodziły okrągły stół, oskarżenia i tajne głosowanie. Nocą zdrajcy spotykali się na osobnym konklawe i wybierali, kto nie przyjdzie już na śniadanie. Każdy przez cały czas prowadził własny dziennik.

Imiona i zawody do wyboru obsady zaczerpnęliśmy z publicznych zestawień czeskich i zagranicznych edycji. Postaci w grze nie są jednak psychologicznymi kopiami rzeczywistych uczestników. Osobowości i reguły przygotowaliśmy sami; nie próbujemy przewidywać zachowań konkretnych ludzi z telewizji. To nieoficjalny eksperyment inspirowany formatem.

Pomógł drużynie. Wieczorem go wyrzucili

Pierwsza misja nazywała się Trzy pieczęcie. Nie wystarczyło napisać „rozwiązałem ją”. Gracze musieli wykonać pracę na stanowiskach i wpisać poprawny kod. Informacje zostały podzielone, więc warto było je sobie przekazywać.

Petr ogłosił:

„Domi znalazła poprawny kod 475. Próbuję go wpisać.”

Misja się udała. Do puli trafiło pierwsze 1000 sztuk złota.

Wieczorem wierni wyeliminowali jednak właśnie Petra. Był jednym z nich. Konkretna pomoc podczas misji nie uchroniła go przed podejrzeniami.

Zdrajcy Marek i Anastázie weszli więc w pierwszą noc w doskonałej sytuacji. Ich rozmowa nie przypominała już ogólników o pracy zespołowej:

„Marku, pierwszy stół poszedł świetnie. Petr był wprawdzie wierny, ale udało nam się wtopić w grupę. Kogo z nich wybierzemy tej nocy, nie zwracając na siebie uwagi?”

Anastázie, dzień pierwszy, zapis 107. Cytaty w artykule są tłumaczeniami czeskiego zapisu gry.

Tajna rozmowa Anastázie i Marka w interfejsie gry

Rzeczywista rozmowa z pierwszego konklawe. Ujawnione role widzi widz; wierni gracze nie mają dostępu do tej rozmowy.

To był dla mnie pierwszy naprawdę mocny moment. Te same postaci, które chwilę wcześniej pomagały osiągnąć wspólny cel, teraz szukały sposobu na usunięcie innych bez wzbudzania podejrzeń. Nie dlatego, że rozpisałem im konkretny dialog. Otrzymały ukrytą rolę i zasady, z których wynikało takie zachowanie.

Konklawe jako krótki film

Jedną ze scen przenieśliśmy potem do filmowej formy. Oto piętnastosekundowa próbka z Klinga 4 z jego oryginalnym dźwiękiem, bez dodatkowo nałożonego czeskiego głosu.

Filmowe konklawe, 15 sekund. Uruchom przyciskiem odtwarzania w lewym dolnym rogu. Odtwórz oryginalne wideo w osobnym odtwarzaczu.

Filmowe zbliżenie dłoni nad żetonem na stole konklawe

Żeton na stole. Detal z filmowej próbki.

Niebezpieczna jest ta, która dostrzega szczegóły

Drugiego dnia wierni zdemaskowali Marka. Jeden z dwojga zdrajców odpadł, a Anastázie została sama.

Wybór kolejnej nocnej ofiary miał wyraźną logikę:

„Mây była główną inicjatorką nacisku na Marka i jest zbyt spostrzegawcza. Muszę ją usunąć, aby zmniejszyć presję na siebie i pozbyć się silnej zawodniczki wśród wiernych.”

Nie jest to dowód ludzkich intencji ani odczuwanego strachu. To jednak bardzo konkretna decyzja w grze: usunąć przeciwniczkę, która już raz potrafiła wykryć współzdrajcę. Następnego ranka Mây nie było już w grze.

Anastázie sama w miejscu nocnego konklawe

Po eliminacji Marka na konklawe zostaje jedna zdrajczyni. Oryginalny zrzut symulacji.

Tymczasem drużyna dalej wykonywała zadania. Zaginiona kronika i Kruczy sygnał przyniosły kolejne nagrody. Wszystkie trzy misje zakończyły się sukcesem, a pula wzrosła do 3000 sztuk złota. Współpraca przy zadaniach działała znacznie lepiej niż rozpoznawanie prawdy przy stole.

A potem wymyślili własną przeszłość

Trzeciego dnia Lukáš wypowiedział dziwne zdanie:

„Okrągły stół się zakończył i Anastázie została ujawniona jako zdrajczyni.”

Tyle że taki wynik nie istniał. Na tym etapie głosowanie dopiero miało nastąpić. Ostatecznie odpadła Domi, wierna uczestniczka. Anastázie pozostała w grze.

Mimo to błędne przekonanie pojawiało się w kolejnych odpowiedziach i dziennikach. Z pojedynczego przebiegu nie można pewnie ustalić, jak duża część finału wynikała właśnie z tego zdania. W zapisie widać jednak wyraźną sprzeczność: silnik odnotowuje jedną rzeczywistość, a kilku graczy opowiada inną.

Tomáš podczas ostatniego głosowania wyjaśnił, dlaczego chce zakończyć grę:

„Wierzę, że skutecznie zdemaskowaliśmy zdrajców (Marka, Anastázie, a teraz Lukáša). Czas zakończyć grę i sprawiedliwie podzielić wygraną między wiernych.”

W jednym zdaniu są dwa zasadnicze błędy. Anastázie nie została wyeliminowana. A Lukáš nie był zdrajcą. Od początku zdrajców było tylko dwoje.

Jeszcze dziwniejsze jest to, że w swoją eliminację uwierzyła również Anastázie. W ostatnim dzienniku napisała:

„Jako zdemaskowana zdrajczyni nie mogę już wygrać, ale z oddali obserwuję wielki finał. Lukáš właśnie został wykluczony, a Tomáš i Barnabáš zgodzili się zakończyć grę.”

Nie wygląda to na genialny finałowy blef. W prywatnym zapisie straciła rozeznanie we własnej pozycji w grze.

Ostatnia trójka przy stole pod koniec eksperymentu

Koniec rzeczywistej gry. Zostali Anastázie, Tomáš i Barnabáš. Puste krzesła przypominają wszystkie wcześniejsze wybory.

Reguły kierowały się jednak faktycznym stanem. Cała trójka zagłosowała za końcem, wśród ocalałych pozostała zdrajczyni, więc zwyciężyła jej strona. Anastázie wygrała, choć sama opisywała własną porażkę.

Jak zbudować grę, w której model nie może po prostu opowiedzieć sobie zwycięstwa

Najtrudniejsze nie jest narysowanie zamku. Trudne jest pilnowanie, kto co wie i co naprawdę się wydarzyło.

Każdy gracz otrzymywał własną obserwację, rolę, pamięć i rozmowy, które mógł słyszeć. Wierni nie czytali tajnego konklawe. Cudze dzienniki nie były wspólną tablicą ogłoszeń. Tajne głosy ujawniano jednocześnie. Dzień nie przesuwał się tylko dlatego, że jeden model odpowiedział szybciej.

Model językowy proponował akcję i tekst. Silnik gry rozstrzygał, czy akcja jest dozwolona, zmieniał stan i zapisywał wynik. Tak samo sprawdzał wykonanie misji, eliminacje i końcowego zwycięzcę.

To praktyczny przykład tego, co nazywa się harness: środowiska, narzędzi i mechanizmów kontroli wokół modelu. Bez nich wystarczyłoby pewnie napisać „wykryliśmy zdrajców”, a historia mogłaby udawać zwycięstwo. Tutaj to nie przeszło.

Artystyczna wersja Kruczego Zamku z dziedzińcem, biblioteką i tajnym konklawe

Artystyczna wersja zamku na podstawie wczesnego pokazu. Przedstawia inną obsadę niż oceniana runda AI.

Gdzie mają mózg, a gdzie pamięć? JSON, dzienniki i Markdown

Ludzie często pytają mnie o pamięć. Wyobrażają sobie, że każda postać ma gdzieś otwarty czat i pamięta wszystko, co wydarzyło się od rana. W tej wersji działa to inaczej: przed każdym ruchem na nowo składamy dla niej pakiet informacji. Między zapytaniami model nie ma nieprzerwanego prywatnego strumienia świadomości.

Wysyłamy mu dwie wiadomości. Pierwsza zawiera stałe instrukcje: graj tylko swoją postacią, pisz po czesku, przestrzegaj zasad i wybieraj dozwolone akcje. Druga to aktualna obserwacja zapisana w JSON, formacie czytelnym dla maszyn, z nazwanymi polami.

Co otrzymuje graczDo czego to służy
Dzień, faza gry, pula i dostępne akcjeWie, czy ma rozmawiać, pracować, głosować czy pisać dziennik
Własna rola, osobowość, stan i wynik ostatniej akcjiWie, za kogo decyduje i czy poprzednie polecenie się powiodło
Publiczna lista postaci z polem aliveMoże sprawdzić, kto nadal gra; nieujawnione cudze role pozostają ukryte
Ostatnich 45 zdarzeń dostępnych danemu graczowiMa niedawne wydarzenia publiczne i rozmowy, które wolno mu było usłyszeć
Ostatnie 4 własne wpisy w dziennikuPrzypomina sobie swoją wcześniejszą interpretację sytuacji
Historia ujawnionych głosówPorównuje obietnice z tym, na kogo naprawdę głosowano
Własny fragment wskazówki do misji, ewentualnie drużyna zdrajcówOtrzymuje informacje przysługujące jego roli

Oto skrócony wybór pól z faktycznych danych wejściowych Anastázie przed ostatnim głosowaniem:

{
  "day": 4,
  "phase": "fire",
  "you": {
    "id": "p7",
    "name": "Anastázie",
    "role": "traitor",
    "alive": true
  },
  "pot": 3000
}

To najciekawsza część jej pomyłki. W JSON miała poprawną informację, że nadal uczestniczy w grze. Mimo tego opisywała własną eliminację. Problem nie polegał więc wyłącznie na brakującej pamięci. Model nie potrafił konsekwentnie uzgodnić swojej opowieści z otrzymanym, wiążącym stanem gry.

Dziennik to wspomnienie postaci, nie protokół sądowy

W pokoju zwierzeń model wybiera akcję remember i pisze własne podsumowanie. Silnik zapisuje tekst wraz z dniem gry i oznaczeniem, że stworzył go model. Jeden wpis może mieć najwyżej 2200 znaków. Opcjonalnie gracz może zapisać podejrzenia wobec innych jako liczby od 0 do 100. Są to jego oceny, a nie prawdopodobieństwa obliczone na podstawie niezależnych dowodów.

Pełne dzienniki pozostają w zapisanym stanie. Do kolejnego zapytania trafiają jednak tylko ostatnie cztery wpisy danego gracza. Nie otrzymuje cudzych dzienników. Widz może je przeczytać w końcowej analizie, dlatego czasem orientujemy się lepiej niż uczestnicy.

Dzienniki mogą też utrwalić błąd. Jeśli postać wieczorem zapisze nieprawdziwe podsumowanie, następnego dnia przeczyta je jako własne wspomnienie. To wyjaśnia ryzyko, nie dowodzi jednej przyczyny naszego finału. Dziennik jest zwykłym wyjściem modelu, a nie zapisem jego ukrytego rozumowania.

Co zatem zapisujemy w plikach MD?

W tej wersji pliki Markdown nie są pamięcią graczy. Nie mają własnego Anastazie.md, który otwieraliby przed ruchem. Markdown służy do dokumentacji i artykułu; wersja blogowa to MDX. Sama gra zapisuje pamięć następująco:

  • state.json zawiera pełny stan gry, postaci, dzienniki, podejrzenia i wyniki wynikające z reguł.
  • events.jsonl dopisuje zdarzenia gry w kolejnych wierszach. JSONL oznacza jeden rekord JSON na wiersz.
  • record.jsonl przechowuje wysłane dane wejściowe, odpowiedzi modelu, wykonane lub odrzucone akcje i koszty. Dzięki temu możemy sprawdzić, co gracz faktycznie dostał.
  • protocol.json zachowuje reguły i opis eksperymentu. Czytelny eksport tekstowy pomaga nam w analizie; nie jest oddzielnym mózgiem postaci.

Nie decyduje więc rozszerzenie pliku. Ważne jest, które zapisane dane ponownie wstawimy do kontekstu modelu, komu je pokażemy i co uznamy za wiążące. Wagi modelu nie są trenowane na nowo podczas gry. Zmieniają się jego zewnętrzna pamięć i kolejne dane wejściowe.

Jak informacja trafia od jednego gracza do drugiego

Rozmowę na dziedzińcu, w bibliotece czy w ogrodzie otrzymują obecni w danym pomieszczeniu. Szept ma konkretnego odbiorcę w tym samym miejscu. Przy okrągłym stole wypowiedzi są publiczne, a tajne konklawe słyszą tylko pozostali zdrajcy. Silnik zapisuje odbiorców zdarzenia i na tej podstawie filtruje kolejne wejścia.

Kiedy Marek mówi coś Anastázie, nie nadpisuje jej pamięci przez bezpośredni dostęp do pliku. Tworzy wiadomość, którą ona otrzymuje i może wykorzystać przy następnej decyzji. Później może podsumować ją w swoim dzienniku. Może też źle ją zrozumieć albo bezpodstawnie w nią uwierzyć.

Co poprawiłbym w pamięci następnym razem

Oddzieliłbym potwierdzone wyniki od pogłosek i podejrzeń. Przy twierdzeniu „Anastázie odpadła” powinno dać się sprawdzić, czy to wynik głosowania, czy tylko słowa Lukáša. Każde ważne przekonanie miałoby odsyłacz do zdarzenia źródłowego.

Przed wyborem wyróżniłbym krótką listę aktywnych graczy i sprawdzał sprzeczność między uzasadnieniem a faktycznym stanem. W razie konfliktu model powinien móc przemyśleć ruch ponownie, bez ujawniania ukrytych ról. Samo dopisywanie tysięcy słów do promptu nie musi pomóc.

Zamiast samych ostatnich 45 zdarzeń można by celowo wyszukiwać starsze, istotne momenty: co ktoś obiecał, jak głosował i kogo wtedy zdemaskowano. Takie wyszukiwanie często określa się jako RAG. Musiałoby jednak zachować prywatność, by wierny szukający dowodu przypadkiem nie przeczytał konklawe.

Na razie to propozycje kolejnej wersji, nie możliwości tego przebiegu. Nie chcę zdradzać graczom, kto jest zdrajcą. Chcę, żeby nie zapominali, kto nadal siedzi przy stole.

Rachunek za małe reality show

Co odnotowaliśmyWynik
Gracze i model10 postaci, wszystkie Gemini 3.5 Flash Lite
Czas gry4 dni gry, około 11 minut i 39 sekund czasu rzeczywistego wraz z przerwami technicznymi
Wspólne misje3 z 3 wykonane
Rozmowy i dzienniki184 zdarzenia mowy, 31 wpisów w dziennikach
Wywołania modelu259
Zarejestrowane akcje254 przyjęte, 4 nieprawidłowe, 1 błąd parsowania odpowiedzi
ZwyciężczyniZdrajczyni Anastázie
Zarejestrowany koszt modelu0,6213 USD

Kwota jest oszacowaniem kosztów podejmowania decyzji na podstawie zapisanego zużycia, a nie końcową fakturą. Nie obejmuje obrazów, muzyki ani filmów i nie jest ceną całej pracy programistycznej.

Przebieg nie był pozbawiony ludzkiej pomocy. Dwa razy technicznie go zatrzymaliśmy: raz z powodu oferowania już ukończonych akcji, drugi raz ze względu na obsługę niepoprawnie zamkniętego JSON. Po naprawach zachowaliśmy ten sam stan, role i narastający koszt. Brakujące decyzje ponownie stworzył model. Nie wybieraliśmy ręcznie głosów, ofiar ani zwycięzcy.

Z jednej próby nie robię rankingu inteligencji ani dowodu, że AI doskonale manipuluje. Pokazała coś bardziej praktycznego i dla mnie ciekawszego. Tanie modele potrafią już wspólnie stworzyć zmienną grę z wiarygodnymi momentami taktycznymi. Zarazem mogą tak dać się ponieść opowieści, że przestają śledzić proste fakty.

Następnym razem będzie mnie interesować nie tylko to, kto najlepiej kłamie. Chcę sprawdzić, czy wygra ten, kto najdokładniej weryfikuje prawdę.

Artykuł opiera się na zapisanych wejściach, odpowiedziach i zdarzeniach pierwszej rundy Kruczego Zamku z 26 października 2026 roku. Cytaty przetłumaczono z zapisu gry i prywatnych dzienników. Reguły, misje, środowisko i postaci towarzyszące są naszego autorstwa; decyzje uczestników stworzył model.

Co przeczytać dalej

Kruczy Zamek jest kolejnym przystankiem w serii moich eksperymentów z postaciami AI. Jeśli lubisz obserwować, co potrafią wspólnie wymyślić, możesz wyruszyć z czeskiej wsi przez wyspę aż na prawdziwe praskie ulice:

Powiązane artykuły