Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Claude Code
Claude Code wymyśla API i funkcje, które nie istnieją - jak temu zapobiec
Prosisz Claude Code o użycie jakiejś biblioteki, a on pewnym tonem wywołuje metodę, której w niej nie ma, albo dodaje parametr, który nie istnieje. Kod czyta się jak najbardziej poprawny - i dlatego to zdradliwe. Halucynacje API to znany efekt uboczny modeli językowych, ale w Claude Code masz konkretne narzędzia, żeby go niemal wyeliminować: chodzi o to, żeby model opierał się na faktach, a nie na tym, co "wygląda prawdopodobnie".
Najczęściej dotyczy to bibliotek, których model zna słabiej albo które zmieniły się po dacie jego wiedzy. Asystent wywołuje funkcję z sensownie brzmiącą nazwą, której w danej wersji pakietu nie ma. Importuje moduł, który nie istnieje. Podaje opcję konfiguracji zmyśloną na wzór innych, prawdziwych opcji. Bywa, że odwołuje się do funkcji z Waszego własnego kodu - takiej, która "powinna" istnieć według konwencji, ale nikt jej nie napisał. Wspólna cecha: kod jest wewnętrznie spójny i wygląda profesjonalnie, więc łatwo go przyjąć bez sprawdzenia, a błąd wychodzi dopiero przy kompilacji albo uruchomieniu.
Model językowy przewiduje najbardziej prawdopodobny ciąg dalszy tekstu na podstawie wzorców, które widział podczas treningu. To genialnie działa, gdy wzorzec pokrywa się z rzeczywistością - i zawodzi, gdy model nie ma dostępu do faktów. Jeśli nie wie, jak dokładnie wygląda API danej biblioteki (bo jest niszowa, świeżo zmieniona albo to Wasz wewnętrzny kod), uzupełni lukę tym, co najbardziej pasuje do wzorca: nazwą metody, jaka "powinna" istnieć. Dochodzi do tego bariera czasu - wiedza modelu ma datę graniczną, więc o nowszych wersjach bibliotek może po prostu nie wiedzieć i zgadywać na podstawie starszych. Kluczowa obserwacja: halucynacja bierze się z braku dostępu do prawdy w danym momencie. Dlatego lekarstwem nie jest "lepszy model", tylko podanie mu faktów - realnej dokumentacji, prawdziwego kodu, wyniku uruchomienia - żeby nie musiał niczego zgadywać.
Najtwardszy dowód to uruchomienie. Jeśli kod się kompiluje, linter nie zgłasza nieistniejących symboli, a testy przechodzą, to nie ma w nim wywołań widmo - istniejące narzędzia zweryfikowały każdy symbol za Ciebie. Dlatego warto wpleść ten krok na stałe: kazać asystentowi kończyć zadanie uruchomieniem, a nie samym napisaniem kodu. Gdy podłączysz dokumentację przez MCP, sprawdzianem jest zmiana zachowania - model przestaje pewnym tonem podawać nieistniejące metody, bo sięga po ich prawdziwą listę. Przy Waszym własnym kodzie potwierdzeniem jest to, że asystent, poproszony najpierw o odczyt pliku, używa dokładnie tych nazw, które tam są. A jeśli poprosiłeś o oznaczenie niezweryfikowanych fragmentów, po prostu przejrzyj wskazane miejsca - to one, a nie cały kod, wymagają Twojego oka.
Wroc do listy: 100 najczestszych problemow z Claude Code
Szkolenie Claude Code - od zera do zespołu agentów AI -->
Tryb planowania, tryby uprawnień, komendy, MCP, hooki i systemy multi-agent - wszystko na żywym kodzie podczas trzydniowego szkolenia. Prowadzi Łukasz Matuszewski. Szkolenie ma terminy gwarantowane - odbędzie się niezależnie od liczby zgłoszeń.
Sprawdź szkolenie Claude CodeTo szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...