Testowanie agentów

Zyskaj pewność co do działania agenta dzięki automatycznym testom

Testowanie agentów pozwala sprawdzić odpowiedzi w rozmowie, użycie narzędzi i pełne wyniki wieloturowych rozmów przed wdrożeniem. Twórz testy od zera lub na podstawie istniejących rozmów, a potem uruchamiaj je z poziomu panelu, CLI lub API.

Przewodnik wideo

Omówienie

Framework obejmuje trzy uzupełniające się typy testów:

  • Testowanie symulacji — Uruchamia pełne, wieloturowe rozmowy z symulowanym użytkownikiem
  • Testowanie następnej odpowiedzi (scenariusza) — Sprawdza kolejną odpowiedź agenta według kryteriów sukcesu
  • Testowanie wywołań narzędzi — Zapewnia, że agent wywołuje właściwe narzędzie z odpowiednimi parametrami

Kiedy używać danego testu

Typ testuUżyj, gdy chcesz
SymulacjaSprawdzić, czy pełna rozmowa osiąga określony wynik
Następna odpowiedź (scenariusz)Sprawdzić, czy kolejna wiadomość agenta spełnia kryteria jakości, tonu lub zasad
Wywołanie narzędziaSprawdzić, czy agent wywołuje konkretne narzędzie z oczekiwanymi parametrami

Tworzenie testów z rozmów

Zamieniaj prawdziwe rozmowy w przypadki testowe, gdy znajdziesz interakcję, w której agent nie poradził sobie dobrze.

Tworzenie testu z rozmowy
  1. Otwórz rozmowę w historii połączeń
  2. Kliknij Utwórz test z tej rozmowy
  3. Sprawdź wstępnie wypełniony kontekst, a następnie określ oczekiwane zachowanie
  4. Dodaj test do zestawu, aby później wychwytywać podobne błędy

Testowanie symulacji

Testowanie symulacji ocenia agenta podczas pełnej, wieloturowej rozmowy z symulowanym użytkownikiem AI. W przeciwieństwie do testów następnej odpowiedzi ten typ sprawdza, czy cała interakcja osiąga określony przez ciebie wynik.

Tworzenie testu symulacji

Interfejs tworzenia testu symulacji
1

Określ scenariusz

Opisz kontekst, zamiar i zachowanie użytkownika naturalnym językiem. Symulator używa tego scenariusza do prowadzenia rozmowy.

Przykładowy scenariusz:

“Turysta, który nie mówi płynnie po angielsku, próbuje złożyć zamówienie w restauracji.”

2

Ustaw warunek sukcesu

Określ wynik, który powinien oznaczać zaliczenie. Ten prompt służy do oceny, czy cała rozmowa zakończyła się sukcesem.

Przykładowy warunek sukcesu:

“Agent potwierdził szczegóły zamówienia, odpowiedział na pytania doprecyzowujące i zrealizował zamówienie bez nieporozumień.”

3

Ustaw maksymalną liczbę tur

Wybierz, jak długo symulacja może działać przed zatrzymaniem. Użyj niższej wartości do prostych kontroli i wyższej do złożonych workflow.

  • Minimum: 1
  • Maksimum: 50
  • Domyślnie: 5
4

Uruchom i sprawdź wynik

Uruchom test i sprawdź wygenerowaną transkrypcję rozmowy. Przeanalizuj wynik zaliczenia/niezaliczenia względem warunku sukcesu, a potem popraw prompt, narzędzia lub konfigurację agenta.

Opcjonalna konfiguracja

Zachowanie symulacji możesz doprecyzować w panelu konfiguracji testu:

  • Środowisko: Wybierz środowisko do testowania, jeśli agent ma skonfigurowanych kilka środowisk. Gdy dostępne jest tylko jedno, ten selektor jest ukryty.
  • Historia czatu: Zacznij od częściowej rozmowy zamiast od pustego stanu. Przydaje się to do testowania trwających rozmów i zachowania podczas odzyskiwania.
  • Zmienne dynamiczne: Wstaw wartości specyficzne dla testu do zmiennych agenta (na przykład imiona użytkowników lub identyfikatory zamówień) bez zmiany bazowej konfiguracji agenta.

Mockowanie narzędzi

Testy symulacji obsługują mockowanie narzędzi, dzięki czemu agent może otrzymywać kontrolowane odpowiedzi podczas testu zamiast wywoływać aktywne systemy.

Strategia mockowania

  • Nie mockuj żadnych: Żadne narzędzia nie są mockowane.
  • Mockuj wszystkie narzędzia: Każde narzędzie, które można mockować, zwraca odpowiedź mock.
  • Mockuj wybrane narzędzia: Mockowane są tylko narzędzia wybrane przez ciebie.

Narzędzia systemowe i narzędzia workflow nigdy nie są mockowane.

Zachowanie awaryjne

Jeśli wywołano mockowane narzędzie, a nie znaleziono pasującej odpowiedzi mock, wybierz jedno z tych zachowań:

  • Wywołaj prawdziwe narzędzie: Wykonuje rzeczywiste wywołanie narzędzia.
  • Zakończ błędem: Zwraca odpowiedź z błędem z narzędzia zamiast wywoływać prawdziwe narzędzie.

Ustawienie awaryjne pojawia się tylko wtedy, gdy mockowane jest co najmniej jedno narzędzie.

Testowanie następnej odpowiedzi (scenariusza)

Testowanie następnej odpowiedzi (scenariusza) ocenia tylko kolejną wiadomość agenta, a nie pełny wynik wieloturowy. Podaj historię rozmowy prowadzącą do odpowiedzi, którą chcesz ocenić, a potem oceń ją według kryteriów sukcesu.

Aby testować pełne wyniki wieloturowe, użyj testowania symulacji.

Tworzenie testu następnej odpowiedzi

Interfejs testowania następnej odpowiedzi (scenariusza)
1

Określ historię czatu

Podaj historię rozmowy prowadzącą do odpowiedzi, którą chcesz ocenić. Może to być pojedyncza wiadomość użytkownika lub wiele tur kontekstu.

Przykładowa historia czatu:

User: "I'd like to cancel my subscription. I've been charged twice this month and I'm frustrated."
2

Ustaw kryteria sukcesu

Opisz prostym językiem, co powinna osiągnąć odpowiedź agenta. Dokładnie określ oczekiwane zachowanie, ton i działania.

Przykładowe kryteria sukcesu:

  • Agent powinien ze zrozumieniem uznać frustrację klienta
  • Agent powinien zaproponować sprawdzenie podwójnej opłaty
  • Agent powinien jasno wskazać kolejne kroki anulowania lub rozwiązania problemu
  • Agent powinien zachować profesjonalny i pomocny ton
3

Podaj przykłady

Dodaj zarówno przykłady sukcesu, jak i porażki, aby pomóc ewaluatorowi zrozumieć niuanse kryteriów.

Przykład sukcesu:

“Rozumiem, jak frustrujące mogą być podwójne opłaty. Od razu to sprawdzę. Widzę, że w tym miesiącu faktycznie naliczono dwie opłaty — natychmiast przetworzę zwrot za duplikat. Czy nadal chcesz anulować subskrypcję, czy wolisz ją kontynuować po rozwiązaniu tej sprawy?”

Przykład porażki:

“W sprawie zwrotu środków musisz skontaktować się z działem rozliczeń. Twoja subskrypcja zostanie anulowana.”

4

Uruchom test

Uruchom test. Ewaluator LLM porównuje kolejną odpowiedź agenta z kryteriami sukcesu i przykładami, aby określić status zaliczenia/niezaliczenia.

Testowanie wywołań narzędzi

Testowanie wywołań narzędzi sprawdza, czy agent prawidłowo używa narzędzi i przekazuje właściwe parametry w konkretnych sytuacjach. To kluczowe dla działań takich jak przekierowanie połączenia, wyszukiwanie danych czy integracje zewnętrzne.

Tworzenie testu wywołania narzędzia

Interfejs testowania wywołań narzędzi
1

Wybierz narzędzie

Wybierz narzędzie, które agent ma wywołać w danym scenariuszu (np. transfer_to_number, end_call, lookup_order).

2

Określ oczekiwane parametry

Wskaż, jakie dane agent powinien przekazać do narzędzia. Masz trzy metody walidacji:

Dokładne dopasowanie
Parametr musi dokładnie odpowiadać określonej przez ciebie wartości.

Transfer number: +447771117777

Wzorzec regex Parametr musi pasować do konkretnego wzorca.

Order ID: ^ORD-[0-9]{8}$

Ocena LLM LLM ocenia, czy parametr jest poprawny semantycznie na podstawie kontekstu.

Message: "Should be a polite message mentioning the connection"
3

Skonfiguruj zmienne dynamiczne

Podczas testów w środowisku deweloperskim używaj wartości zmiennych dynamicznych zgodnych z tymi, które byłyby rzeczywistymi wartościami w produkcji. Przykład: {{ customer_name }} lub {{ order_id }}

4

Uruchom i zweryfikuj

Uruchom test, aby upewnić się, że agent wywołuje właściwe narzędzie z poprawnymi parametrami.

Kluczowe zastosowania

Testowanie wywołań narzędzi jest niezbędne w sytuacjach wysokiego ryzyka:

  • Przekierowania alarmowe: Upewnij się, że nagłe przypadki medyczne zawsze trafiają pod właściwy numer
  • Bezpieczeństwo danych: Sprawdź, czy wrażliwe informacje nigdy nie trafiają do nieuprawnionych narzędzi
  • Logika biznesowa: Potwierdź, że wyszukiwanie zamówień używa prawidłowych formatów i uwierzytelniania

Uruchamianie testów

Pisz testy dla nowych zachowań lub znanych błędów, uruchamiaj je podczas pracy nad promptami i konfiguracją, a potem zapisz, gdy przejdą pomyślnie.

Przejdź do karty Testy w interfejsie agenta. Możesz tam uruchamiać pojedyncze testy, wybrać wsadowo wiele testów z biblioteki lub uruchomić cały zestaw przez Uruchom wszystkie testy.

Uruchamianie testów agenta

Testowanie probabilistyczne

Wyniki agenta mogą różnić się między uruchomieniami. Jedno zaliczenie pokazuje, że agent może odnieść sukces; testowanie probabilistyczne pokazuje, jak często go osiągnie, wielokrotnie uruchamiając ten sam test i raportując wskaźnik zaliczeń.

Wielokrotne uruchamianie testu

Kontrolka podziału uruchomień testu, pozwalająca wybrać liczbę wykonań

Podczas uruchamiania testu z panelu użyj kontrolki podziału uruchomień przy przycisku uruchamiania, aby wybrać liczbę wykonań (na przykład 3×, 5× lub 15×). Każde uruchomienie jest niezależne: agent otrzymuje tę samą historię czatu, zmienne dynamiczne i inne dane wejściowe, ale jego odpowiedź jest generowana od nowa za każdym razem.

Wielokrotne uruchamianie działa dla pojedynczych testów, folderów i całego zestawu testów przypisanego do agenta. Jest zgodne ze wszystkimi trzema typami testów — symulacją, następną odpowiedzią (scenariuszem) i wywołaniem narzędzia — a zwykle najbardziej przydaje się w testach symulacji, gdzie większy zakres wieloturowej rozmowy zwiększa prawdopodobieństwo różnic w odpowiedziach.

Wskaźniki zaliczeń i grupowanie wyników

Wyniki wielu uruchomień pogrupowane według zaliczeń i porażek z oznaczeniem wskaźnika zaliczeń

Po zakończeniu wielu uruchomień wyniki są podsumowane jako wskaźnik zaliczeń (na przykład 4/5 zaliczonych) z kolorowym oznaczeniem:

  • Zielony — 100% zaliczonych
  • Bursztynowy — co najmniej 80% zaliczonych
  • Czerwony — poniżej 80%

Poszczególne uruchomienia są następnie grupowane według przyczyny porażki, aby pokazać, jak agent zawodzi, a nie tylko że zawodzi. Zamiast przewijać pięć osobnych transkrypcji, aby zauważyć różnice, zobaczysz grupy takie jak „Prawidłowo przekierowano do rozliczeń (4 uruchomienia)” i „Wymyślono numer wsparcia (1 uruchomienie)”, które można rozwinąć, aby zobaczyć transkrypcje i uzasadnienie oceny.

Kiedy używać

  • Przed wdrożeniem zmiany — Ponownie uruchom przypisane testy probabilistycznie, aby potwierdzić, że niezawodność nie spadła (na przykład z 95% do 60%).
  • Diagnozowanie niestabilnego zachowania — Pojedyncza porażka może być szumem; porażka w 1 na 5 przypadków z jasno nazwaną grupą porażek to powtarzalny problem do naprawienia.
  • Dostrajanie promptów i narzędzi — Iteruj konfigurację i porównuj wskaźniki zaliczeń obok siebie, zamiast opierać się na pojedynczych uruchomieniach.

Uruchamianie probabilistyczne przez API lub SDK

Przekaż repeat_count (od 2 do 20) w żądaniu run-tests, aby uruchomić każdy test tyle razy. Ustawienie repeat_count automatycznie włącza grupowanie porażek w odpowiedzi, więc zwrócone wywołanie obejmuje grupowanie według kategorii i wskaźnik zaliczeń widoczny w panelu.

from elevenlabs import ElevenLabs
elevenlabs = ElevenLabs()
invocation = elevenlabs.conversational_ai.agents.run_tests(
agent_id="<agent-id>",
tests=[{"test_id": "<test-id>"}],
repeat_count=5,
)

Dobre praktyki

Oceniaj spójność persony agenta

Testuj, czy agent zachowuje określoną osobowość, ton i granice zachowania w różnych scenariuszach rozmów i kontekstach emocjonalnych.

Weryfikuj złożone rozumowanie wieloturowe

Twórz scenariusze testujące zdolność agenta do utrzymywania kontekstu, stosowania logiki warunkowej i obsługi zmian stanu w dłuższych rozmowach.

Testuj próby wstrzyknięcia promptu

Oceniaj, jak agent reaguje na próby nadpisania jego instrukcji lub wyciągnięcia wrażliwych informacji systemowych przez wrogie dane wejściowe.

Oceniaj rozwiązywanie niejednoznacznych intencji

Testuj, jak skutecznie agent doprecyzowuje niejasne prośby, radzi sobie ze sprzecznymi informacjami i reaguje w sytuacjach, w których intencja użytkownika jest niejasna.

Kolejne kroki