Cyfrowy bliźniak to określenie, które najczęściej jest źle rozumiane – i im więcej go używam, tym bardziej. Wiele osób słyszy „cyfrowy bliźniak” i wyobraża sobie czatbota, który zna mnie lepiej niż ja sam, doradza mi przy kawie i sam podejmuje decyzje. Tymczasem to, co zbudowałem, wygląda zupełnie inaczej i – co ważniejsze – działa lepiej właśnie dlatego, że to nie jest agent AI. Jest raczej zautomatyzowanym organizmem: rozdzielonym na części, z jasnymi przepływami danych, zdecydowanie bez agentów w środku. Poniżej wyjaśniam, dlaczego świadomie wybrałem taką architekturę i co ona realnie daje.
Najpierw definicja, bo to klucz
Agent sam decyduje, bliźniak tylko wykonuje
Agent AI to model, który sam decyduje, co zrobić: dostaje cel, sam planuje kroki, sam dobiera narzędzia i sam wykonuje. Jest w tym element nieprzewidywalności – robi coś sensownego, ale nie wiem, którą drogą doszedł do wniosku.
Cyfrowy bliźniak (Digital Twin) w mojej wersji to coś zupełnie innego. Nie jeden mózg, tylko rozłożony system, która zbiera fakty o moim życiu, przechowuje je w pamięci i wykonuje z góry zaprogramowane reguły, które podpowiadają, co zrobić. Decyzje podejmują deterministyczne reguły i progi, nie model językowy. Ja wchodzę w pętlę tylko wtedy, gdy reguła nie potrafi rozstrzygnąć sprawy albo gdy działanie jest nieodwracalne.
To fundamentalna różnica. Agent AI podejmuje decyzję, bo „wygląda sensownie”. Mój system podejmuje decyzję, bo został przekroczony konkretny próg, który sam ustaliłem. Jeśli system mówi, że wydatki na życie przekroczyły mój limit, to znaczy, że limit został przekroczony – a nie że model uznał, że tak mi się podoba.
Architektura: cztery warstwy, jedna zasada
LLM w jednym miejscu, nigdy w wielu
Cały system stoi na jednej zasadzie: LLM jest zawsze w jednym miejscu, nigdy w wielu. Cyfrowy bliźniak działa właśnie dlatego, że tej zasady nie łamie. Zbudowałem to po tym, jak ten sam problem logiki i kluczy API pojawił się w kilku miejscach naraz. Pełny opis układu i jego ograniczeń jest w repozytorium architektury – w katalogu ilku skryptach naraz. Reguła jest dziś twarda:
- n8n to mózg. Wszystkie wywołania do modeli językowych, wszystkie orkiestracje, wszystkie decyzje o tym, który model użyć i jaki prompt zastosować. n8n jest strategicznym centrum dowodzenia.
- Skrypty Pythona to ciało. Wykonują zadania: zbierają dane, zapisują do bazy, liczą wskaźniki, sterują urządzeniami. Nie wolno im wywoływać modelu językowego bezpośrednio. Jeśli potrzebują AI, idą przez most do n8n.
- PostgreSQL to pamięć. 8 osobnych baz danych, każda dla innego obszaru życia: finanse, trening, dom, zdrowie, kariera, nauka, logistyka życia i stan rdzenia systemu. Nie jedna wielka baza, w której wszystko się miesza, tylko osiem oddzielnych pamięci. Dlaczego osiem, a nie jedna, i co ten podział kosztuje, rozpisałem osobno: osiem baz danych, jedna droga dostępu.
- Most (wrapper) to jedyne połączenie między ciałem a mózgiem. Skrypt nie wie, jaki model odpowie, ani jak wygląda prompt. Wie tylko, że poprosi o analizę i dostanie odpowiedź.
Ta ostatnia zasada jest najważniejsza i najbardziej żałuję, że nie wymyśliłem jej od razu. Kiedy logika AI była rozproszona po skryptach, nie było miejsca, w którym widziałbym, ile kosztują moje decyzje, gdzie są logi, który prompt właściwie zadziałał i co się psuło, kiedy zmieniłem model. Skoro cała AI jest w jednym miejscu, to awarie też są w jednym miejscu – i mogę je diagnozować.
Skąd biorę dane i dlaczego to nie jest scraping mojego życia
Bliźniak nie zgaduje, on zbiera
Bliźniak nie zgaduje. On zbiera. Każdy obszar ma swoje, ustalone źródło:
- Zdrowie i sen z mojej opaski i z wagi, przez API producenta.
- Finanse z mojego rachunku, automatycznie, kategoryzowane w tle.
- Termostat, oświetlenie i kamery z Home Assistant, przez jego API.
- Zadania i kalendarz z mojej głowy, przeniesione do aplikacji.
- Sen, kofeina, nawodnienie – jedyny obszar, który wpisuję ręcznie, bo są mało dokładne i tylko ja wiem, ile naprawdę wypiłem.
Ten ostatni punkt jest celowy. Automatyzacja musi wiedzieć, kiedy nie ma prawa działać sama. Dane, których nie umiem wiarygodnie odczytać z czujnika, wpisuję ręcznie – i system nie udaje, że wie lepiej. To okazało się najzdrowszą granicą w całym projekcie.
Co ten układ realnie robi i czego nie robi
Cyfrowy bliźniak wie, co się dzieje, a nie co jest dla mnie najlepsze
Nie będę obiecywał, że cyfrowy bliźniak „wie, co jest dla mnie najlepsze”. On wie, co faktycznie się dzieje – i to wystarcza, żeby oszczędzić mi mnóstwo decyzji, które wcześniej podejmowałem na autopilocie, a które kumulowały się w tygodnie zmęczenia decyzyjnego.
Czego ten system świadomie nie robi:
- Nie podejmuje decyzji w moim imieniu, gdy nie mam pewności co do danych. Jeśli klasyfikacja jest wątpliwa, prosi mnie o rozstrzygnięcie.
- Nie pozwala LLM dotykać pieniędzy, zdrowia ani prywatnych rzeczy w sposób nieodwracalny. Model językowy sugeruje, ale wykonawca działa na wcześniej zdefiniowanych granicach.
- Nie zgaduje, kiedy brakuje danych. Brak danych to nie zero – to brak decyzji.
- Nie jest połączony z internetem, który by mnie obserwował bez mojej wiedzy. Cała wiedza o mnie zostaje w moim homelabie i w moich bazach.
Bliźniak czy agent – co wybrałem i dlaczego
Gdybym budował to jako jednego agenta, który „zarządza moim życiem”, dostałbym coś, co brzmi imponująco, a w praktyce jest kruche. Agent:
- trudno go zdebugować, bo jego ścieżka decyzji jest nieczytelna,
- trudno go ograniczyć do bezpiecznych działań, bo dopuszczalność jego odpowiedzi jest płynna,
- przy pierwszym poważnym błędzie nie da się ustalić, dlaczego sięgnął po daną akcję, więc nie da się tego obejść,
- kosztownie i nieprzewidywalnie zużywa zasoby, bo myśli za każdym razem od zera.
Mój system jest mniej efektowny i znacznie bardziej przewidywalny. Widać w nim każdą regułę, każdy próg i każde wykonane działanie. Mogę wskazać palcem, dlaczego przestawił mi trening na regenerację albo dlaczego zablokował kalendarz. To jest różnica między narzędziem, które kontroluję, a narzędziem, które posłusznie mi wychodzi, dopóki jest dobrze.
Nie znaczy to, że rezygnuję z AI. Znaczy, że wkładam je w wąskie, dobrze zdefiniowane miejsca – analiza, klasyfikacja, propozycja rozwiązania – zamiast dawać mu ster w całym systemie. Rozróżnienie między „cofnij mi rozkład dnia” a „sugeruj, jak go poprawić” jest dla mnie fundamentalne.
Zasada, którą wynoszę
Zacznij od danych, nie od modelu
Jeśli budujesz system, który ma działać za Ciebie, to nie zaczynaj od modelu językowego. Cyfrowy bliźniak jest tego najlepszym przykładem. Zacznij od danych i od prostych reguł, które działają, i dokładaj AI tam, gdzie reguła przestaje wystarczać. Jeśli Twój system nie potrafi wyjaśnić, dlaczego podjął daną decyzję, to nie masz systemu autonomicznego – masz czarną skrzynkę, która obecnie akurat działa.
Cyfrowy bliźniak w mojej wersji nie jest inteligentniejszy ode mnie. Jest mniej zapominalski niż ja: pamięta, pilnuje, sumuje, porównuje i dopiero wtedy, gdy naprawdę nie ma innego wyjścia, zagaduje mnie. I to dla mnie jest właściwa definicja autonomii.
Materiały powiązane: eBook Automation-First Living · Projekt w wersji publicznej (MIT) · wcześniej na tym blogu: Od automatyzacji do autonomii · AI a RODO: czy mogę wrzucić dane klienta do ChatGPT · Siedem lat z Home Assistant