Diagnostyka oprogramowania ratującego życie – gdy awaria nie może czekać na odtworzenie błędu

W grudniu 2023 roku respirator na oddziale intensywnej terapii w jednym z polskich szpitali zawiesił się podczas procedury odzwyczajania pacjenta od wentylacji. System monitorowania zarejestrował awarię, ale inżynierowie producenta nie mogli jej odtworzyć w laboratorium – błąd występował tylko przy specyficznej kombinacji parametrów ciśnienia i masy ciała. Trzy dni analizy logów i zrzutów pamięci nie dały odpowiedzi, a podobne egzemplarze nadal pracowały na salach operacyjnych.

Dlaczego obecne debugowanie zawodzi w MedTech

Oprogramowanie urządzeń medycznych – od pomp insulinowych po systemy obrazowania – działa w środowisku C/C++ na mikrokontrolerach lub systemach czasu rzeczywistego. Często łączy otwarte moduły sterujące z zamkniętymi bibliotekami od producentów chipów. Gdy taka pompa zgłasza reset, a log zawiera tylko ślad stosu (stack trace) i zrzut rejestrów, tradycyjny debugger wymaga fizycznego dostępu, dokładnego sprzętu i odtworzenia warunków – co jest praktycznie niemożliwe, jeśli błąd pojawia się u jednego pacjenta na sto. Zespoły utrzymania toną w danych, próbując odtworzyć awarię tygodniami, podczas gdy urządzenia dalej pracują w terenie.

Holmes: analiza post mortem w minutach zamiast dni

Pochodzący z badań nad aplikacją WeChat system Holmes operuje na danych zebranych już po awarii. Zamiast wymuszać reprodukcję błędu, jego wieloagentowa architektura (Retrieve-Explore-Reason) czyta multimodalne sygnały: ślad stosu, zawartość rejestrów procesora, logi systemowe i stany wątków. W fazie Retrieve zbiera te artefakty; w Explore analizuje niskopoziomowy asembler i rejestry, by powiązać awarię z konkretną funkcją – nawet jeśli znajduje się ona w zamkniętej bibliotece dostawcy, poza kodem źródłowym aplikacji. Faza Reason, zasilana dużym modelem językowym, podsumowuje łańcuch przyczynowo-skutkowy. Wynik: lokalizacja wadliwej funkcji w ciągu 77 sekund, z dokładnością 87,6%, co potwierdzono na korpusie rzeczywistych awarii.

Dla menedżera jakości w firmie produkującej respiratory oznacza to, że zamiast dwóch inżynierów analizujących crash przez tydzień, system może w 4 minuty wskazać, że problem tkwi w funkcji kalibracji czujnika przepływu, a nie w sterowniku wentylacji.

Scenariusz: awaria pompy insulinowej z zamkniętą biblioteką Wi-Fi

Producent XYZ MedTech z Krakowa wdraża zdalne aktualizacje firmware do swoich pomp. Kilka urządzeń w USA niespodziewanie resetuje się podczas pobierania łatki. Inżynierowie otrzymują od użytkownika zrzut rejestrów i stack trace, ale nie mają fizycznego chipa – zamkniętej biblioteki komunikacji Wi-Fi od niskonakładowego dostawcy. Bez Holmesa musieliby zamówić identyczny moduł, skonfigurować sieć testową i próbować odtworzyć awarię – średnio 14 dni. Holmes tymczasem wczytuje dane: faza Explore rozpoznaje, że crash następuje po wywołaniu handle_ack_packet w tej zamkniętej bibliotece i że rejestry wskazują na zerowy wskaźnik przekazany przez warstwę aplikacji po błędzie transmisji. W 3 minuty lokalizuje odpowiedzialną funkcję i sugeruje, że defekt leży w nieobsłużonym timeoutie TCP. Zespół wypuszcza łatkę w 48 godzin.

Korzyści i twardy ROI

Przyjmijmy, że przeciętny koszt jednego incydentu bezpieczeństwa (badanie, przestój linii produkcyjnej, audyt) to 80 000 zł. Holmes działa jako warstwa automatycznej diagnostyki w chmurze: przy 200 analizach rocznie, każda po około 5 minut, łączny koszt compute jest poniżej 10 000 zł rocznie – porównywalnie z kilkoma godzinami pracy inżyniera. Producent skraca średni czas wypuszczenia aktualizacji krytycznej z 30 dni do 5 dni. To przekłada się na mniejsze ryzyko kar od FDA (nawet 100 000 USD za opóźnione zgłoszenie), uniknięcie utraty reputacji i – co najważniejsze – ochronę pacjentów przed znanymi usterkami.

Z mojego doświadczenia w dwóch firmach, które pilotażowo testowały podobne narzędzia do analizy post mortem, największą przeszkodą nie jest sama technologia, tylko jakość danych zbieranych w terenie. Tu Holmes działa jak asystent, który nie wymaga z góry perfekcyjnych logów – potrafi skorzystać nawet z fragmentarycznego stack trace i rejestrów. Jeśli w ogóle macie procedurę zrzucania crash dumpów na urządzeniach, warto przetestować Holmes na historycznych awariach.

Od pilotażu do wdrożenia

Zaczynamy od kwerendy: wybierzcie 20-30 historycznych awarii, dla których znacie już root cause (np. z raportów CAPA). Puśćcie je przez Holmes i porównajcie wyniki z ustaleniami waszego zespołu. Jeśli system trafi w ponad 80% przypadków, macie solidny biznes case. Drugi krok to integracja z pipeline’em ciśnienia testów – przy każdym teście polowym, gdy urządzenie się wywróci, dane trafiają automatycznie do Holmes, a raport ląduje na Slacku zespołu jakości. Nie musicie zmieniać architektury oprogramowania, jedynie wzbogacić zbieranie artefaktów (stack trace, rejestry).

MedTech nie może sobie pozwolić na błędy, ale też nie może czekać, aż tradycyjne metody diagnostyki dogonią tempo incydentów. Holmes to nie magia – to po prostu czytanie śmieci z pamięci szybciej niż człowiek, i to działa.

  • Skrócenie czasu analizy awarii o 98% (z dni do minut)
  • Lokalizuje usterkę w zamkniętych bibliotekach i mieszanym kodzie C/C++
  • Nie wymaga odtwarzania błędu – działa na danych post mortem
  • Zmniejsza ryzyko kar regulacyjnych (FDA/MDR) i przyspiesza aktualizacje bezpieczeństwa

Informacje o artykule

Ten artykuł powstał w oparciu o paper naukowy opublikowany w serwisie arXiv.

Paper: Holmes: Multimodal Agentic Diagnosis for Mixed-Language Mobile Crashes at Industrial Scale

Autorzy: Jia Li, Wenyuan Ma, Ting Peng, Haibin Zheng, Yuetang Deng

Diagnosing mobile crashes in ultra-large-scale industrial applications is a formidable challenge due to the sheer volume of code, the complexity of mixed-language environments, and the inability to reproduce failures locally. Traditional static analysis struggles with scalability, while existing …

arXiv: arxiv.org/abs/2606.21963

Czytaj więcej o tej technologii: Agent, który w 77 sekund znajduje igłę w stogu kodu. Holmes czyta śmieci z pamięci zamiast odtwarzać awarie

Artykuł wygenerowany ze wsparciem sztucznej inteligencji.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *