Logo
AI generuje książki dla mojej babci

AI generuje książki dla mojej babci

Zdjęcie dodane przez betül nur akyürek: Pexels

W poprzednim wpisie zakończyłam zdaniem: "Stay tuned, coś czuje, że to jeszcze nie koniec historii..."

Miałam rację.


Po kilku miesiącach okazało się, że skończyły się książki, które Babcia lubi. Kryminały — za ponure. Romanse — za płytkie. Saga rodzinna, polska, kilka pokoleń, epoka historyczna — to jej klimat.

I wtedy przyszła myśl, która dla inżyniera brzmi zupełnie normalnie, ale każdemu innemu wydałaby się absurdalna: skoro pipeline TTS już działa... to może zamiast zamieniać gotowe książki na audiobooki, AI po prostu napisze nowe?

Tak powstał „Ród Dębickich" — saga rodzinna w sześciu tomach. Polska, XIX i XX wiek, kilka pokoleń, ponad sto lat historii. Wygenerowana przez AI, przeczytana moim sklonowanym głosem, dostarczona Babci jako audiobooki.


Dlaczego jeden model nie wystarczy

Możecie pomyśleć, że to było proste. Intuicja podpowiada: daj Claude'owi prompt „napisz sagę rodzinną, 6 tomów", i gotowe.

Tak to nie działa. Fabuła książki to coś więcej niż tekst. Tutaj motywy się przeplatają a bohaterowie nie "zmartchwywstają" nagle bo model zapomniał, że już byli uśmierceni. Dla modelu napisać list czy mini wypracowanie to pestka - ale napisać 6 tomową sagę to już inny kaliber.

Okno kontekstowe ma swoje limity, ale to nie jedyny problem. Nawet gdyby model „widział" całą książkę naraz — jakość tekstu generowanego przez jeden, wielogodzinny prompt jest nierówna. Pierwsze rozdziały są zazwyczaj świetne. Potem model zaczyna gubić wątki, powtarzać frazy, tracić spójność postaci. A przy sześciu tomach — to przepis na chaos.

Dlatego podeszłam do tego po inżyniersku. Rozwiązanie: kilka wyspecjalizowanych agentów, każdy z jednym wyraźnie określonym zadaniem.

Cała praca nad książką zaczyna się od pomysłu. Fabułę i zarys tematu muszę wymyślić ja (teraz to już robi cała rodzina). To jest surowy zarys historii. Kilka akapitów: o co chodzi, kto jest głównym bohaterem, jaka epoka, jaki klimat. Coś, co można by napisać na serwetce podczas lunchu.

Oprócz fabuły (outline.md), w osobnym pliku mam zdefiniowany styl książki (style.md). W przypadku książek dla babci, nie zmieniam tego pliku. Ale jeśli przyjdzie Ciocia, miłośniczka kryminałów - łatwo mogę zmienić styl pisania agenta.

rules.md i style.md — to pliki współdzielone, które piszę raz i używam dla wszystkich sag. Zasady narracyjne i przewodnik po stylu są wspólne, ustalam tu zasady generowania książki (np: zróżnicuj długość zdań, daty pisz słownie). Dzięki temu książka, niezależnie od stylu "brzmi" naturalnie.

AI tworzy fabułę

Następnie uruchamiam /new-series — komendę Claude Code, która bierze ten zarys i generuje komplet plików dla całej sagi. Dla każdego tomu osobno:

  • book.md — pełna specyfikacja: tytuł, autor, gatunek, epoka, miejsca akcji, opisy bohaterów z wiekiem na początku i końcu tomu, szczegółowe streszczenie fabuły, notatki o stylu i tonie. I osobna sekcja: Nawiązania do poprzednich tomów — lista motywów, postaci i symboli, które mają powrócić. To agent planujący, nie piszący, celowo wstawia te mostki między tomami.
  • outline.md — zarys każdego rozdziału: kiedy, gdzie, co się dzieje, jaki jest emocjonalny łuk sceny, jak się łączy z łukiem całego tomu.

Ten agent — nazwijmy go Architektem — myśli o sadze jako całości. Nie pisze prozy, nie recenzuje. Tylko planuje arc narracyjny, rozdziela historię na tomy, projektuje postacie i mosty między nimi.

I zwykły Claude robi to dobrze. Lepiej niż ja bym to ręcznie zrobiła w rozsądnym czasie. Nie trzeba tu drogich modeli ani skomplikowanych rozwiązań. Choć przyznam się szczerze, myślę aby zaprząc do tego Bielika.

To jest faza planowania.

Trzy agenty w pętli, rozdział po rozdziale

Cały pipeline od pomysłu do audiobooka wygląda tak:

📝 FAZA 1: Planowanie

Zarys historii (plik z pomysłem)

[Architekt] — generuje book.md + outline.md dla każdego tomu

🔄 FAZA 2: Pętla pisania (per tom, rozdział po rozdziale)

Kontekst: rules.md + book.md + style.md + outline.md + streszczenie poprzedniego rozdziału + ciągłość z poprzedniego tomu

1️⃣ [Pisarz] — generuje rozdział N

2️⃣ [Recenzent] — weryfikuje: PASS ✓ lub FAIL ✗

→ jeśli FAIL: Pisarz pisze ponownie (max 2 próby)

3️⃣ [Podsumowujący] — streszcza rozdział w ~200 słowach

→ streszczenie = kontekst dla rozdziału N+1

⏰ Pętla powtarza się dla każdego rozdziału

Po zakończeniu tomu:

[Archiwista] — tworzy tome_summary_tN.md (pełne podsumowanie tomu dla kontekstu w tomie N+1)

⚙️ FAZA 3: Produkcja

Markdown → EPUB → TTS (Text-to-Speech) → Audiobook

💡 Kluczowa idea: Każdy agent ma jedno zadanie. Rekurentne streszczenia łączą rozdziały. Pipeline nigdy się nie zawiesza — jeśli coś się nie powiedzie, logujemy warning i idziemy dalej.

Agent-Archiwista to strażnik ciągłości między tomami. Po wygenerowaniu wszystkich rozdziałów w tomie, czyta całą treść i tworzy dokument tome_summary_tN.md. W tym pliku zapisuje: kto żyje, kto umarł, stan relacji między postaciami, kluczowe zwroty akcji, otwarte wątki fabularne, ważne przedmioty i miejsca. To nie streszczenie dla czytelnika — to dokument techniczny dla AI. Precyzyjny, bez ozdobników. Gdy Pisarz rozpoczyna tom N+1, dostaje ten plik jako część kontekstu. Dzięki temu postacie nie "zmartwychwstają", imiona pozostają spójne, a wątki się domykają.

Agent-Pisarz dostaje kompletny kontekst: zasady narracyjne, specyfikację książki, przewodnik po stylu, zarys danego rozdziału z outline'u i streszczenie poprzedniego rozdziału. Jego jedyne zadanie: napisać jeden rozdział. Nic więcej.

Agent-Recenzent nie widzi promptów ani zasad. Widzi tylko gotowy tekst i jedno pytanie: czy rozdział ma halucynacje, problemy z ciągłością narracji, placeholdery, nieakceptowalną jakość? Odpowiada PASS lub FAIL z krótkim uzasadnieniem.

Jeśli FAIL — tekst wraca do Pisarza razem z feedbackiem. Maksymalnie dwie próby. Jeśli po trzech podejściach nadal FAIL — zapisujemy ostatnią wersję z ostrzeżeniem i idziemy dalej. Pipeline nie blokuje się w nieskończoność.

Agent-Podsumowujący streszcza właśnie wygenerowany rozdział. To streszczenie trafia jako kontekst do kolejnego wywołania Pisarza. Dzięki temu każdy rozdział „wie", co się wcześniej wydarzyło — bez ładowania całej treści do okna kontekstowego.


Czemu recenzent to osobny agent?

Bo Pisarz i Recenzent mają różne zadania — i różne tendencje.

Model, który właśnie wygenerował tekst, będzie miał naturalną skłonność do oceniania go pozytywnie. Osobny agent z innym promptem, nastawionym wyłącznie na weryfikację, wyłapuje rzeczy, które Pisarz przemilcza: brakujące nagłówki, za krótkie rozdziały, placeholdery w stylu [wstaw imię], meta-komentarze w treści (Rozdział napisany — 1247 słów).

Poza tym — oddzielenie tych ról to klasyczna inżynierska zasada: jeden komponent, jeden zakres odpowiedzialności. Łatwiej debugować, łatwiej ulepszać.


Ciągłość między tomami

Sześć tomów to sześć oddzielnych procesów generowania. Bez dodatkowego mechanizmu — tom II nie wiedziałby nic o wydarzeniach z tomu I. Postacie, które zginęły, mogłyby nagle zmartwychwstać. Imiona zmieniałyby się między tomami. Otwarte wątki nigdy nie wracałyby.

Rozwiązanie: streszczenie tomu.

Po wygenerowaniu każdego tomu, osobny agent czyta całą treść i tworzy plik tome_summary_tN.md — szczegółowe podsumowanie: kto żyje, kto umarł, stan relacji głównych postaci, kluczowe zwroty akcji, otwarte wątki, ważne przedmioty i miejsca. Ten plik trafia do Pisarza jako kontekst podczas generowania kolejnego tomu.

Prompt do tworzenia tego streszczenia jest bardzo konkretny: „to jest dokument roboczy dla AI generującej kolejny tom, nie streszczenie dla czytelnika". Różnica jest istotna. Agent ma pisać precyzyjnie i technicznie — nie literacko.


Prompt engineering, który naprawdę robi różnicę

Nie wystarczy powiedzieć modelowi „napisz rozdział". Jakość drastycznie wzrasta, gdy Pisarz dostaje cztery pliki kontekstowe:

rules.md — meta-zasady narracyjne. Co może, czego nie może, jak pisać dialogi, jak długie mają być akapity, czego unikać — klisze, anachronizmy, anglicyzmy. Dla każdej sagi ten plik jest inny.

book.md — specyfikacja konkretnej książki: tytuł, autor, główne postacie, epoka historyczna, ton, liczba rozdziałów, kluczowe wątki fabularne.

style.md — przewodnik po stylu: tempo narracji, stosunek dialogu do opisu, charakterystyczne cechy języka poszczególnych postaci.

outline.md — zarys każdego rozdziału: co ma się wydarzyć, jakie postacie pojawiają się, jaki jest emocjonalny łuk sceny.

Bez rules.md model pisał dialogi w stylu współczesnym dla XIX-wiecznych postaci. Bez outline.md rozdziały miały losową strukturę i ginęły ważne wątki. Każdy plik eliminuje inną klasę błędów.


Od tekstu do audiobooka i... ebooka

Kiedy wszystkie rozdziały przejdą walidację — reszta dzieje się automatycznie:

  1. Rozdziały Markdown → chapters.json
  2. chapters.json → EPUB z okładką generowaną programowo dla każdego tomu
  3. EPUB → pipeline TTS z poprzednich wpisów

Każdy tom ma unikalną kolorystykę okładki dopasowaną do nastroju danej części sagi. Tom I „Wicher od Wschodu" — głęboki granat ze złotem. Tom VI „Świt" — błękit z jasną akcentacją. Szczegół, który Babcia prawdopodobnie nigdy nie zobaczy w formie ebooka — ale zrobiłam to porządnie.

Pipeline działa bez nadzoru. Odpalam wieczorem, rano mam kolejny tom. A że ma wbudowane checkpointy — mogę przerwać w dowolnym momencie i wznowić dokładnie od miejsca, w którym skończyłam.

Dodatkowo, dostaję i ebooka i audiobooka - 2w1.


Co mówi Babcia

Słucha.

Tom I był testem, nie przyznałam się, że cała książka jest napisana przez kilku agentów, wyłącznie dla niej. Zadzwoniła i zapytała, czy jest już Tom II.

Był.

Powiedziałam jej, prawdę kto pisze jej książki. Nie widziała róznicy między Sienkiewiczem a Henrykiem ModrzAIjewskim. To był dowód, że algorytm działa.

Teraz wgrywam jej całe serie, a rodzina i przyjaciele mają zabawę w wymyślanie nowych fabuł.


Wnioski

  • Jeden agent nie wystarczy. Pisarz, recenzent, podsumowujący — każdy z wyraźnie oddzielonym zadaniem robi robotę lepiej niż jeden agent próbujący robić wszystko.
  • Ciągłość narracyjna wymaga inżynierii. Streszczenia rozdziałów i tomów to nie miły dodatek — to konieczność przy każdej wieloczęściowej historii.
  • Walidacja przed recenzją. Pusty plik, brak nagłówka, placeholder — wyłap je strukturalnie, zanim uruchomisz droższego agenta.
  • Prompt engineering to połowa sukcesu. rules.md + book.md + style.md + outline.md robią ogromną różnicę w jakości tekstu.

I to otworzyło mi drogę do zbudowania własnego systemu pisania i czytania audiobooków dla Babci.