Awaria w elektrowni po 10 latach: agent na lokalnym modelu, na obiekcie bez sieci
System, który dziesięć lat temu wdrażałem w elektrowni, padł. Napięcie gdzieś przysiadło, a baza danych przyblokowała się podczas zapisu. Na obiekcie nie miałem dostępu do sieci. Naprawę poprowadził agent na lokalnym modelu, który działał na moim Macu. Zanim rozwiązanie trafiło na serwer, agent odtworzył całe oprogramowanie na kopii i tam sprawdził poprawkę.
W podcaście „I to się liczy” Adrian Andrzejczyk powiedział, że jedną rzeczą go zaskoczyłem. Od dwóch lat nie napisałem ani linijki kodu, a da się tak pracować. Odpowiedziałem historią sprzed tygodnia. Pojechałem wtedy naprawiać system w elektrowni.
Całą rozmowę znajdziesz na YouTube. Ten fragment zaczyna się w 33:21.
To piąty tekst z tej rozmowy. Tutaj rozpisuję naprawę krok po kroku, z tym, co powiedziałem w studiu, i z tym, co dopowiedziałem już po nagraniu.
Co się zepsuło po dziesięciu latach
System stoi w elektrowni od dziesięciu lat. Kiedy go wdrażałem, cały kod powstawał ręcznie. Przez te lata rozbudowało go kilka innych firm. Dokumentacja jest, ale w środku coś się pozmieniało.
To system typu SCADA do zarządzania rozdzielnią elektryczną. Pokazuje, które przełączniki są włączone, gdzie płynie prąd, jakie ma natężenie i jaki jest jego przepływ. Amerykański NIST opisuje SCADA jako system, który zbiera i przetwarza dane oraz steruje procesami na duże odległości. Jako typowe zastosowanie podaje przesył i dystrybucję energii oraz rurociągi.
Nazwy obiektu ani systemu nie podaję. W szczegóły usterki też nie wchodzę. W skrócie: system miał zasilanie gwarantowane, a mimo to napięcie gdzieś przysiadło. Zapisów leci tam bardzo dużo i baza danych przyblokowała się podczas zapisu. Trzeba było ją odtworzyć, zabezpieczyć i przygotować na przyszłość.
Naprawa awarii w takim systemie to jedna sprawa. Budowanie na nim nowych funkcji AI to druga. Trzy sposoby podłączenia AI do systemu sprzed lat, od warstwy pośredniej po RPA, opisałem osobno.
Na obiekcie: komputer, kabel i żadnej sieci
To była nagła interwencja. Przyjechałem, wpiąłem komputer kablem Ethernet do serwera i pracowałem bez dostępu do sieci, na lokalnym modelu.
Agent działał na moim Macu, w harnessie Pi, z najnowszym wtedy modelem Qwen. Pi to otwarty harness na licencji MIT. Autorzy opisują go jako „a minimal, extensible agent harness”. Jego biblioteka do modeli obsługuje każde API zgodne z OpenAI, w tym Ollamę, vLLM i LM Studio. Dokumentacja Qwena ma osobny rozdział o uruchamianiu modeli lokalnie, między innymi przez llama.cpp, Ollamę i LM Studio.
Pi nie wiąże się z jednym dostawcą modeli, więc mógł pracować z modelem z mojego komputera. Dlaczego wybór harnessa i wybór modelu to dwie osobne decyzje, pisałem przy okazji agentowych CLI.
To robię na co dzień: doradzam przy strategii AI i buduję agentów, którzy przeżywają demo.
Najpierw kopia, potem serwer
Agent szybko znalazł błąd i przygotował rozwiązanie. Nie sprawdzał go jednak na serwerze produkcyjnym w elektrowni. Postawił sobie środowisko, w którym odtworzył całe to oprogramowanie.
Po nagraniu dopowiedziałem, jak agent odtworzył środowisko. Zaczął od Dockera: postawił na nim wszystko i sprawdził. Potem zrobił coś podobnego na AWS, na prawdziwej maszynie z Windows Server, żeby odtworzenie było dokładne. Postawił MySQL, wgrał uszkodzone dane i odtworzył nowe.
Na tej kopii agent robił empiryczne testy, czyli po prostu sprawdzał, co się zepsuło i jak to naprawić. Uruchomił prawdziwą naprawę. Potem sprawdził, że wszystko jest naprawione i że nic innego się przy tym nie zepsuło. Dopiero wtedy na serwer trafił skrypt z gotowym rozwiązaniem. Cała naprawa zajęła mi około dwóch godzin w domu, a potem trzy godziny na obiekcie.
Naprawa krok po kroku
Cztery kroki na kopii, jeden na serwerze w elektrowni
Kopia środowiska
- 1Docker: całe oprogramowanie odtworzone i sprawdzone
- 2AWS: prawdziwa maszyna z Windows Server, MySQL i wgrane uszkodzone dane
- 3Testy: co się zepsuło i jak to naprawić
- 4Naprawa na kopii i sprawdzenie, że nic innego się nie zepsuło
Serwer w elektrowni
Agent: harness Pi, lokalny model Qwen, Mac.
The Agentic Architect
Praktyczne wzorce, case studies, rozbiory projektów agentowych i nowinki o AI. Zero spamu, raz w tygodniu.
Dostaniesz jednego maila z prośbą o potwierdzenie. Wypiszesz się jednym kliknięciem. Polityka prywatności
Pewność zamiast grzebania na serwerze
Taka kolejność daje walidację na naprawdę bardzo wysokim poziomie pewności. Na serwer produkcyjny nie idą próby, tylko skrypt, który przeszedł już na kopii.
To wraca do tego, od czego zaczęła się ta część rozmowy. Od dwóch lat nie programuję, a tworzę naprawdę dużo kodu. Jak to wygląda na co dzień, z zadaniami zostawianymi agentom na noc, opisałem w osobnym wpisie.
Myślę, że człowiek, który przyszedłby i zaczął grzebać na serwerze w elektrowni, mógłby mieć problemy, żeby rozwiązać to tak sprawnie i szybko. Szczególnie jeśli nie zna programowania albo dawno z nim nie pracował.