> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Testowanie agentów

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 testu                           | Użyj, gdy chcesz                                                                 |
| ----------------------------------- | -------------------------------------------------------------------------------- |
| **Symulacja**                       | Sprawdzić, 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ędzia**             | Sprawdzić, 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](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/7b0762965b7edb46ed6b693c126c00e9aa3e7c98dae7aa89a981b5465b949750/assets/images/conversational-ai/agent-test-from-conv.gif)

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](/docs/_fern-img/ec2b27db7da62af2d82be756b2f830f0d0257a304d7c5ccb674c0a02ee8854ae.webp)

#### 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."

#### 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ń."

#### 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`

#### 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](#simulation-testing).

### Tworzenie testu następnej odpowiedzi

![Interfejs testowania następnej odpowiedzi (scenariusza)](/docs/_fern-img/62de63965584fd1b2368edfb204bd90495d03ba87fe137889a5f396859dc4dbc.webp)

#### 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."
```

#### 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

#### 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."

#### 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](/docs/_fern-img/291c48ac70376efa1991014f7b3ff90eb9910c9adffe250f2bf521c707c5c755.webp)

#### Wybierz narzędzie

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

#### Określ oczekiwane parametry

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

#### 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"
```

#### 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 }}`

#### 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.

#### Uruchom z panelu

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](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/b1becf589a1373a780dad1109fd25e0e910d7aa821b09b047133553b1895914b/assets/images/conversational-ai/testrun.gif)

#### Uruchom przez CLI

Dodaj testowanie do pipeline'u deweloperskiego:

```bash
elevenlabs agents test agent_7101k5zvyjhmfg983brhmhkd98n6
```

Dzięki temu możesz:

* Automatycznie testować przy każdej zmianie kodu
* Zapobiegać regresjom przed wdrożeniem
* Zachować spójne zachowanie agenta w różnych środowiskach

#### Uruchom przez API

Twórz testy przez [Utwórz test](/docs/pl/api-reference/tests/create) i uruchamiaj je przez [Uruchom testy agenta](/docs/pl/api-reference/tests/run-tests).

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

invocation = elevenlabs.conversational_ai.agents.run_tests(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    tests=[{"test_id": "<test-id>"}],
)

print(invocation)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

const invocation = await elevenlabs.conversationalAi.agents.runTests("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  tests: [{ testId: "<test-id>" }],
});

console.log(invocation);
```

### 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ń](/docs/_fern-img/15d5a18c384bc193de794bf8cd7bd5803b9543c8a98acac6ecb2f518b9fd1679.webp)

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ń](/docs/_fern-img/17b73e8c8170162270519adad3c9d732dfabdafc820e47b4ab274ca5066fd7fc.webp)

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](/docs/pl/api-reference/tests/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.

```python
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,
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

const invocation = await elevenlabs.conversationalAi.agents.runTests(
  "<agent-id>",
  {
    tests: [{ testId: "<test-id>" }],
    repeatCount: 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

* Zobacz [dokumentację CLI](/docs/pl/eleven-agents/operate/cli), aby skonfigurować automatyczne testowanie
* Poznaj [konfigurację narzędzi](/docs/pl/eleven-agents/customization/tools), aby zrozumieć dostępne narzędzia
* Przeczytaj [przewodnik po promptach](/docs/pl/eleven-agents/best-practices/prompting-guide), aby pisać testowalne prompty