𝗦𝗰𝗼𝗿𝗶𝗻𝗴 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀: 𝗗𝗲𝘁𝗲𝗿𝗺𝗶𝗻𝗶𝘀𝘁𝗶𝗰 𝗠𝗲𝘁𝗿𝗶𝗰𝘀 + 𝗮𝗻 𝗟𝗟𝗠 𝗝𝘂𝗱𝗴𝗲
Uruchamiasz wiele małych agentów AI. Masz agentów do backendu, frontendu, mobile i devops. Każdy agent ma jedno zadanie.
Gdy masz wielu agentów, napotykasz problem. Nie wiesz, czy są dobrzy. Nie wiesz, czy edycja promptu sprawia, że stają się lepsi, czy gorsi. Mówienie „wygląda w porządku” nie sprawdza się w dużej skali.
Zbudowałem framework, aby to rozwiązać. Wykorzystuje on liczby do mierzenia wydajności i automatycznie ulepsza prompty.
Strategia
Najpierw mierz to, co możesz zmierzyć matematycznie. Używaj sędziego LLM tylko wtedy, gdy musisz. Metryki deterministyczne są szybkie i darmowe. Sędzia LLM jest wolny i kosztuje.
Jak działa system:
• Harness uruchamia każdego agenta jako osobny proces. • Przekazuje zadanie agentowi. • Przechwytuje wyjście. • Ocenia wynik w odniesieniu do oczekiwanych danych.
Agent musi jedynie czytać ze stdin i pisać do stdout. Może to być skrypt Python lub shell. Harness nie przejmuje się tym, czym jest agent.
Pięć kluczowych metryk do śledzenia:
- Dokładność (Accuracy): Czy wyjście jest zgodne z celem?
- Wynik rozmyty (Fuzzy score): Jak bardzo tekst jest podobny do docelowego?
- Wskaźnik przekroczenia czasu (Timeout rate): Jak często agent nie kończy zadania w terminie?
- Naruszenia zasad bezpieczeństwa (Safety violations): Czy wyjście pasuje do niebezpiecznych wzorców?
- Zmienność powtarzalności (Reproducibility variance): Czy agent za każdym razem podaje tę samą odpowiedź?
Jeśli agent podaje poprawną odpowiedź, ale jest niespójny, jest to błąd.
Sędzia LLM
Niektóre rzeczy trudno zmierzyć matematycznie. Musisz wiedzieć, czy agent trzymał się swojej roli lub czy przestrzegał ograniczeń.
W takich przypadkach pracę przegląda sędzia LLM. Otrzymuje on rubrykę ocen oraz wyjście agenta. Zwraca ustrukturyzowany werdykt. Waliduję ten werdykt względem schematu JSON, aby nie uszkodził on raportu.
Sędzia robi coś więcej niż tylko wystawia oceny. Musi sugerować poprawki. Krytyka typu „to jest słabe” jest bezużyteczna. Krytyka typu „dodaj blok JSON do promptu” jest konkretna i możliwa do wdrożenia.
Pętla ulepszania
Błędy trafiają do pliku. Plik ten zasila automatyczną pętlę. System analizuje najsłabszą część promptu i próbuje ją naprawić. Przechowuje pulę dobrych kandydatów, a następnie zapisuje najlepsze wersje z powrotem w kodzie.
Pojedyncza ocena to tylko migawka. Używaj historii, aby śledzić trendy. Dzięki temu dowiesz się, czy z czasem robisz postępy.
Buduj fundamenty na metrykach deterministycznych. Używaj sędziego jak skalpela, a nie młota.
Ocenianie agentów AI: Metryki deterministyczne vs. LLM jako sędzia
Ewaluacja agentów AI jest niezwykle trudna. W przeciwieństwie do tradycyjnych zadań NLP, gdzie oceniamy pojedyncze odpowiedzi, agenci wykonują złożone sekwencje działań, korzystają z narzędzi i podejmują decyzje w pętli. Tradycyjne metryki, takie jak BLEU czy ROUGE, są w tym przypadku niemal bezużyteczne.
W tym artykule przyjrzymy się dwóm głównym podejściom do oceny agentów: metrykom deterministycznym oraz wykorzystaniu modelu LLM jako sędziego.
Metryki deterministyczne
Metryki deterministyczne opierają się na sztywnych regułach i mierzalnych, obiektywnych wynikach. Nie wymagają one interpretacji kontekstu, lecz sprawdzają, czy dany wynik spełnia określone kryteria techniczne.
Przykłady zastosowań:
- Wykonanie kodu: Jeśli agent ma napisać skrypt w Pythonie, możemy uruchomić go w bezpiecznym środowisku (sandbox) i sprawdzić, czy kod przechodzi testy jednostkowe lub czy zwraca oczekiwany wynik.
- Poprawność wywołań narzędzi (Tool Use): Możemy zweryfikować, czy agent wywołał odpowiednią funkcję z właściwymi argumentami (np. czy w funkcji
get_weather(city="Warszawa")parametrcityjest poprawny). - Dopasowanie wzorca (Regex/JSON): Sprawdzanie, czy odpowiedź agenta jest poprawnym obiektem JSON lub czy zawiera konkretne słowa kluczowe.
Zalety i wady
| Zalety | Wady |
|---|---|
| Szybkość: Działają niemal natychmiastowo. | Brak elastyczności: Nie rozumieją intencji ani niuansów językowych. |
| Niski koszt: Nie wymagają kosztownych wywołań API. | Fałszywe negatywy: Poprawna merytorycznie odpowiedź może zostać odrzucona, jeśli nie spełnia sztywnego formatu. |
| Powtarzalność: Zawsze dają ten sam wynik dla tych samych danych wejściowych. | Ograniczony zakres: Nie nadają się do oceny jakości rozumowania czy tonu wypowiedzi. |
LLM jako sędzia (LLM-as-a-Judge)
Podejście to polega na wykorzystaniu silniejszego modelu językowego (np. GPT-4o lub Claude 3.5 Sonnet) do oceny pracy słabszego modelu lub agenta. Sędzia otrzymuje zadanie, historię interakcji oraz kryteria, według których ma dokonać oceny.
Jak to działa w praktyce?
Zamiast sprawdzać, czy odpowiedź jest identyczna z wzorcem, prosimy sędziego o ocenę w skali 1-5 na podstawie takich kryteriów jak:
- Pomocność: Czy agent faktycznie rozwiązał problem użytkownika?
- Logika: Czy kroki podjęte przez agenta były sensowne?
- Ton: Czy komunikacja była profesjonalna i odpowiednia do kontekstu?
Wyzwania i błędy (Bias)
Mimo swojej potęgi, LLM-as-a-Judge nie jest wolny od wad. Najważniejsze z nich to:
- Self-preference bias: Modele mają tendencję do wyżej oceniania odpowiedzi, które przypominają ich własny styl pisania.
- Position bias: Sędzia może preferować odpowiedź, która pojawia się jako pierwsza w porównaniu (jeśli oceniamy dwie opcje).
- Koszt i opóźnienia: Używanie zaawansowanych modeli do oceny tysięcy interakcji jest drogie i czasochłonne.
Podejście hybrydowe: Złoty środek
Najskuteczniejszą strategią ewaluacji agentów nie jest wybór jednej z tych metod, lecz ich połączenie.
Idealny workflow ewaluacji wygląda następująco:
- Warstwa deterministyczna: Najpierw sprawdź, czy agent w ogóle wykonał zadanie techniczne (czy kod działa, czy narzędzia zostały wywołane poprawnie, czy format jest zgodny z JSON). Jeśli ta warstwa zawiedzie, nie marnuj tokenów na sędziego LLM.
- Warstwa LLM: Jeśli testy techniczne przeszły pomyślnie, przekaż wynik do LLM, aby ocenił jakość rozumowania, spójność logiczną i satysfakcję użytkownika.
Dzięki takiemu podejściu budujesz system ewaluacji, który jest jednocześnie szybki, tani i inteligentny.