Baza wiedzy
Jak testować agenta AI, żeby testy naprawdę chroniły
Test, którego nigdy nie widziałeś padającego, nie jest dowodem. Przy agentach ta zasada jest ostra: mocki potrafią udawać rzeczywistość tak dobrze, że zielony zestaw testów współistnieje z niedziałającą funkcją.
Opublikowano · Jakub Butryn, Founder · Lead engineer
Test negatywny to warunek konieczny
Po napisaniu testu zepsuj celowo kod, który ma chronić, i sprawdź, że test pada. Bez tego kroku nie wiesz, czy test w ogóle dotyka Twojej ścieżki. Ten jeden nawyk wykrył w ZAZA-CODE i dwadzieścia fikcyjnych testów, i atrapę bazy ignorującą listę kolumn.
Warto to zapisać w opisie testu: co dokładnie ma paść, gdy funkcja zniknie. Test bez takiego zdania po pół roku nikomu nic nie mówi.
Atrapy muszą kłamać tak jak rzeczywistość
Jeśli produkcja dostaje nagłówki małymi literami, atrapa też musi. Jeśli baza zwraca tylko wybrane kolumny i stawia NULL na początku sortowania malejącego — atrapa musi robić to samo. Każda uprzejma nieścisłość mocka to test, który przepuści prawdziwy błąd.
Praktyczny wniosek: atrapę traktuj jak kod produkcyjny i poprawiaj ją, gdy odkryjesz różnicę wobec prawdziwego systemu.
Uruchamiaj tak, jak uruchamia użytkownik
Testy z wnętrza repozytorium maskują błędy pakowania i konfiguracji. Uruchomienie zainstalowanej komendy z obcego katalogu, na czystym profilu i bez zmiennych środowiskowych wykrywa klasę awarii, której nie zobaczy żaden test jednostkowy.
Dla agentów terminalowych dochodzi smoke na prawdziwym pseudoterminalu: start, kilka komend, czyste wyjście z kodem 0. Interaktywna pętla wejścia ma inne błędy niż wywołania funkcji.
Co testować w samym agencie
Nie testuj tekstu odpowiedzi modelu — jest niedeterministyczny. Testuj kontrakty: czy zapytanie poszło do właściwego dostawcy z właściwym kluczem, czy narzędzia zostały przekazane, czy limit kroków obowiązuje, czy błąd narzędzia wraca do modelu, czy sekret nie wycieka do obcej końcówki.
Model podstaw atrapą, żeby testy były szybkie i darmowe. Prawdziwy model uruchamiaj raz, w jednym teście końcowym — po to, by sprawdzić integrację, nie logikę.
Najczęstsze pytania
- Jak testować agenta AI, jeśli odpowiedzi modelu są losowe?
Nie testuj treści odpowiedzi, testuj kontrakty: dokąd poszło zapytanie, z jakim kluczem, czy narzędzia zostały przekazane, czy limit kroków działa, czy błąd narzędzia wraca do modelu. Model podstaw atrapą.
- Co to test negatywny i dlaczego jest konieczny?
To sprawdzenie, że test PADA po celowym zepsuciu chronionego kodu. Bez tego nie wiadomo, czy test dotyka badanej ścieżki — zielony zestaw testów potrafi współistnieć z niedziałającą funkcją.
Omów swój przypadek — konsultacja bezpłatna Telegram @sotius