PABLO.ENGINEERING
// WRÓĆ DO WSZYSTKICH WPISÓW
// 3 min

Weryfikacja cytowań i liczb w odpowiedziach agenta na bazie PubMed

Modele językowe potrafią brzmieć niezwykle przekonująco, gdy powołują się na rzekome badania naukowe. W medycynie i sporcie to śmiertelnie niebezpieczna cecha: bot potrafi zmyślić nazwisko autora, rok publikacji, a nawet numer PMID.

Problem: przekonujący tekst bez pokrycia w faktach

W pytaniach badawczych kierowanych do botów trenerskich pojawiał się stały problem: model generował płynne, logicznie brzmiące wyjaśnienie, ale przypisywał mu zmyślone źródła lub podawał liczby niezgodne z przywoływanym badaniem. Co gorsza, użytkownik nie miał szybkiej metody sprawdzenia, czy cytowana praca naukowa w ogóle istnieje, ani czy nie została oficjalnie wycofana (retraction).

Równolegle w testach automatycznych (evals) pojawił się szum: testy były zbyt mocno powiązane z watchdogiem, a handshake MCP potrafił przekroczyć domyślny timeout, powodując fałszywe alarmy o regresji.

Co zrobiłem: silnik PubMed z kontrolą liczb i dowodów

  1. Zbudowałem od zera moduł PubMed w pięciu etapach (P0-P4): czytnik surowego XML z oznaczaniem wycofanych prac, klienta E-utilities z wyszukiwarką CLI, system oceny siły dowodów oraz kontroler weryfikujący zgodność cytowań.
  2. Zaimplementowałem automatyczny walidator odpowiedzi: porównuje identyfikatory PMID oraz liczby podane w odpowiedzi bota z rzeczywistą treścią pobranego abstraktu z bazy NCBI. Jeśli bot twierdzi, że suplement zwiększa siłę o 15%, a w pracy jest 5%, kontroler odrzuca odpowiedź.
  3. Wdrożyłem moduł w botach gym i coaching z zabezpieczeniem prywatności zapytań: treść zapytania użytkownika jest anonimizowana przed wysłaniem do zewnętrznego API PubMed.
  4. Odizolowałem potok testów eval od watchdoga systemowego, dodałem flagi --gateway oraz --cases i zlikwidowałem tworzenie nadmiarowych kopii bazy danych podczas testowania.
  5. Zaktualizowałem bibliotekę dane-sportowe (0.1.0 -> 0.3.0), ujednolicając wzory matematyczne logów treningowych i wskaźnik sRPE między botem a portalem webowym.

Dlaczego to ważne (Use Case)

Opieranie się na niesprawdzonych odpowiedziach modelu w tematach zdrowotnych przypomina zatrudnienie asystenta, który przepisuje etykiety leków z pamięci, zamiast sięgnąć po oficjalną ulotkę z apteki. Pomyłka o jedno zero w dawce lub powołanie się na wycofaną publikację może mieć realne konsekwencje.

Dzięki nowemu silnikowi każda odpowiedź bota ma sprawdzalny ślad: identyfikator PMID jest weryfikowany w bazie NCBI, a liczby muszą w 100% zgadzać się ze źródłem. Jeśli publikacja została wycofana przez wydawcę, bot natychmiast oznacza ją czerwoną flagą zamiast polecać jej wnioski.

Czego się nauczyłem

  • Modele językowe nie powinny same cytować badań z pamięci wag. Pobranie surowego XML przez zaufane API i mechaniczne porównanie liczb przed wyświetleniem odpowiedzi całkowicie eliminuje halucynacje bibliograficzne.
  • Prywatność zapytań badawczych wymaga izolacji: zapytania wysyłane do publicznych baz wiedzy muszą być oczyszczane z kontekstu użytkownika, aby historia wyszukiwań nie łączyła się z tożsamością pytającego.
  • Testy regresyjne agentów (evals) muszą działać w odizolowanym środowisku. Powiązanie testów z produkcyjnym watchdogiem wprowadzało niestabilność, maskując prawdziwe błędy w kodzie.
#daily#ai-agents#reliability#python