---
title: "Wbudowane narzędzia"
description: "Polecaj agentom ThunderPhone kończyć połączenia, przekazywać rozmówców, obsługiwać klawiatury telefoniczne, czekać na linii, przeszukiwać bazę wiedzy, odtwarzać dźwięki, wysyłać e-maile i obliczać sumy."
---

Wbudowane narzędzia pozwalają agentowi wykonywać typowe działania podczas połączeń bez podłączania własnego API. Większość jest dostępna automatycznie; e-mail, dźwięki, kalkulator i wyszukiwanie wiedzy pojawiają się dopiero po skonfigurowaniu powiązanego ustawienia lub źródła. W prompcie wskaż agentowi, kiedy ma używać każdego działania.

| Narzędzie | Użyj do | Jak włączyć | Obsługiwane połączenia |
| --- | --- | --- | --- |
| `end_call` | Zakończenie ukończonej rozmowy | Zawsze dostępne | Telefon, Talk w przeglądarce, widżet, symulacja i Realtime |
| `transfer_call` | Przekierowanie rozmówcy telefonicznego | Skonfiguruj przekierowanie w prompcie | Zwykłe połączenia telefoniczne; wbudowany Realtime z `call_events` może używać transferu bez zapowiedzi. Realtime zapisanego agenta go nie obsługuje. |
| `send_keypad_input` | Naciskanie klawiszy w menu telefonicznym | Zawsze dostępne w zwykłych połączeniach telefonicznych | Połączenia telefoniczne; wbudowany wychodzący Realtime z `call_events`. Realtime zapisanego agenta go nie obsługuje. |
| `no_response` | Kontynuowanie nasłuchiwania, gdy automatyczne menu mówi lub rozmówca myśli na głos; rozmówca, który prosi agenta o zaczekanie, usłyszy tylko „Jasne.” | Zawsze dostępne | Wszystkie typy połączeń |
| `wait_on_hold` | Ciche oczekiwanie na powrót osoby | Dostępne w połączeniach wychodzących | Wychodzące połączenia telefoniczne i wychodzące wbudowane sesje Realtime |
| `search_knowledge_base` | Odpowiadanie na podstawie dołączonych źródeł | Dołącz wiedzę do agenta | Połączenia zapisanego agenta z dołączoną wiedzą |
| `play_sound` | Odtwarzanie skonfigurowanego dźwięku powiadomienia | **Zaawansowane → Dźwięk narzędzia** | Połączenia zapisanego agenta |
| `send_email` | Wysyłanie e-maila do jednego stałego odbiorcy | **Zaawansowane → Wyślij e-mail** | Połączenia zapisanego agenta |
| `calculate` | Dokładne obliczanie sum, opłat i reszty | **Zaawansowane → Kalkulator** | Połączenia zapisanego agenta |

## `end_call`

Kończy bieżące połączenie, gdy prompt instruuje model, aby to zrobił. Jest dostępne domyślnie i nie wymaga ustawienia agenta.

Wpisz w prompcie warunek i wymagane pożegnanie:

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

Połączenie zakończone przez model ma `end_reason: "ai_hangup"`, także wtedy, gdy kończy się po ostrzeżeniu o limicie czasu połączenia. Połączenie kończy się z `max_duration` tylko wtedy, gdy limit czasu zostanie osiągnięty jako pierwszy, a z `balance_exhausted`, gdy wyczerpie się saldo przedpłacone.

## `transfer_call`

Przekierowuje rozmówcę telefonicznego na stały numer podany przez model. Transfer bez zapowiedzi jest natychmiastowy. Transfer z zapowiedzią prywatnie dzwoni do miejsca docelowego przed połączeniem stron. Transfer z zapowiedzią wymaga zweryfikowanego zaimportowanego numeru VoIP, który może wykonywać połączenia wychodzące.

Umieść numer docelowy i dokładny warunek przekierowania w prompcie:

```text
If the caller asks for billing, transfer them to +15551234567.
```

Udany transfer bez zapowiedzi ma wartość `end_reason: "ai_transfer"`; ukończone przekazanie z zapowiedzią ma wartość `end_reason: "ai_warm_transfer"`. Nieudana próba transferu z zapowiedzią zwraca kontrolę agentowi, więc późniejsze zakończenie połączenia określa jego powód zakończenia. W sesjach innych niż telefoniczne żądanie transferu kończy sesję.

Zobacz [Przekierowywanie połączeń](/pl/guides/call-transfers), aby poznać konfigurację w panelu i API, przekierowywanie, zapowiedzi, obsługę błędów, limity i testowanie.

## `send_keypad_input`

Wysyła cyfry DTMF (klawiatury telefonicznej) `0`–`9`, `*` i `#` na linię telefoniczną. Model używa go do poruszania się po IVR, automatycznym menu, które prosi rozmówców o naciśnięcie klawiszy. Jest dostępne domyślnie i nie wymaga ustawienia agenta.

Powiedz modelowi, po których menu może się poruszać i skąd pochodzą wymagane wartości. Nie proś go o zgadywanie opcji menu:

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

Platforma usuwa nieobsługiwane znaki i wysyła prawidłowe cyfry w kolejności. Jeśli nie pozostaną żadne prawidłowe cyfry lub połączenie nie może wysłać danych z klawiatury, błąd zostanie zwrócony agentowi, aby mógł go obsłużyć.

## `no_response`

Utrzymuje agenta w ciszy, gdy zautomatyzowany system nadal mówi lub prosi go o dalsze nasłuchiwanie, a także gdy rozmówca zastanawia się na głos („yyy, już patrzę”) lub zwraca się do kogoś innego. Gdy rozmówca prosi agenta o zaczekanie, podczas gdy coś robi („chwileczkę”, „sprawdzę”, „możesz poczekać sekundę?”), i nie daje mu nic więcej, na co mógłby odpowiedzieć, agent mówi tylko „Jasne.” (nie „Nie spiesz się.”) i czeka, aż rozmówca ponownie się odezwie. Kontrole ciszy agenta nadal działają i są zawsze wypowiadane, jeśli na linii panuje cisza. Nie służy do powitania przez żywą osobę, pytania ani rzeczywistej kolejki oczekiwania. Jest dostępna domyślnie i nie ma ustawienia agenta.

Jeśli prompt określa, co agent ma powiedzieć, gdy rozmówca prosi o chwilę, prompt ma pierwszeństwo.

Zwykle wystarcza wbudowany opis. W przypadku połączeń intensywnie korzystających z IVR wzmocnij tę granicę w prompcie:

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

To działanie nie kończy połączenia.

## `wait_on_hold`

Przełącza agenta wykonującego połączenie wychodzące w stan cichego oczekiwania, aż rozmówca wróci.
Model używa go tylko wtedy, gdy druga strona wyraźnie poinformuje, że agent zostaje
przełączony na oczekiwanie. Jest automatycznie dostępny w połączeniach wychodzących i nie ma
ustawienia w panelu.

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

Nie nakazuj agentowi używać go w przypadku komunikatu IVR „proszę czekać”. Domyślnie oczekiwanie trwa
do 15 minut. W przypadku zwykłych połączeń wychodzących `POST /v1/call`
akceptuje dodatnią liczbę całkowitą `max_hold_seconds`; wbudowany Realtime ogranicza
`max_hold_seconds` do 10–900 sekund. Jeśli rozmówca
wróci, agent wznawia rozmowę bez zmiany przyczyny zakończenia połączenia. Jeśli limit
wygaśnie, platforma kończy połączenie z `end_reason: "ai_hangup"`.

## `search_knowledge_base`

Przeszukuje dokumenty dołączone do agenta i zwraca odpowiednie fragmenty. Dołącz
bazę wiedzy lub pojedyncze dokumenty wiedzy, aby ją włączyć, a następnie powiedz
modelowi, które odpowiedzi muszą pochodzić z tych źródeł:

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

Jeśli wyszukiwanie się nie powiedzie, wynik zostaje zwrócony agentowi. Zobacz [Baza
wiedzy](/pl/guides/knowledge-base), aby skonfigurować ją w panelu i przez API.

## `play_sound`

Odtwarza skonfigurowany dźwięk powiadomienia agenta po dowolnej wypowiedzi w tej samej
turze. W panelu ustaw **Zaawansowane → Dźwięk narzędzia** na **Kurant**, **Ding**
lub **Sygnał dźwiękowy**, a następnie wdróż agenta. Opcja **Brak** usuwa narzędzie.

Za pomocą [Agents API](/api-reference/agents) skonfiguruj `play_sound_asset` jako
`"chime"`, `"ding"` lub `"beep"`, a następnie wdróż agenta. Ustaw wartość `""`, aby wyłączyć
narzędzie.

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

Błąd odtwarzania jest zwracany agentowi i nie kończy połączenia.

## `send_email`

Wysyła wiadomość e-mail w formacie zwykłego tekstu do jednego odbiorcy skonfigurowanego przez właściciela
agenta. Model podaje temat i treść. Nigdy nie widzi parametru odbiorcy
i nie może wybrać ani zmienić adresu.

W panelu włącz **Zaawansowane → Wyślij e-mail**, zapisz adres odbiorcy,
a następnie wdróż agenta. Za pomocą [Agents API](/api-reference/agents) skonfiguruj zarówno
`send_email_enabled: true`, jak i niepuste `send_email_recipient`, a następnie wdróż.
Zdefiniuj w prompcie wyzwalacz i wymagane treści:

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

Jedno połączenie może podjąć maksymalnie trzy próby wysłania e-maila. Każdy temat jest ograniczony do 300
znaków, a każda treść do 20 000 znaków. Brak konfiguracji, nieprawidłowa
treść, limit na połączenie i błędy dostarczenia są zwracane agentowi.
Nieudane dostarczenie nadal wykorzystuje jedną z trzech prób.

Przetestuj z kontrolowanym odbiorcą przed szerokim wdrożeniem. Talk w przeglądarce i
symulacje wysyłają prawdziwe wiadomości e-mail; nie ma trybu testowego.

## `calculate`

Dokładnie oblicza wyrażenie arytmetyczne i zwraca wynik, dzięki czemu agent nie
sumuje cen w pamięci. Domyślnie jest wyłączone. W panelu włącz **Zaawansowane → Kalkulator**, a następnie wdroż agenta. Za pomocą [API
agentów](/api-reference/agents) ustaw `calculator_enabled: true`, a następnie wdroż.

Model zapisuje wyrażenie, na przykład `2*23.5 + 16.5 + 4`, i odczytuje
wynik rozmówcy. Wyrażenia mogą używać liczb, `+`, `-`, `*`, `/` oraz
nawiasów. Jedno wywołanie może zawierać maksymalnie 10 wyrażeń oddzielonych znakiem `;`, na przykład
sumę częściową oraz sumę całkowitą z opłatą za dostawę, łącznie do 500 znaków.
Wyniki są zaokrąglane do 10 miejsc po przecinku. Obliczenia są wykonywane dokładnie w arytmetyce dziesiętnej, więc
`0.1 + 0.2` zwraca `0.3`. Dzielenie przez zero oraz wszystko inne w wyrażeniu
wraca do agenta jako błąd do poprawienia. Działa w ThunderPhone i
odpowiada natychmiast, bez tekstu wypełniającego ani dźwięku pisania.

Włącz tę funkcję dla agentów, którzy podają sumy zamówień, opłaty lub resztę. Nie
trzeba zmieniać promptu.

## Uwaga dotycząca zgodności

Ustawienie **Zaawansowane → Oświadczenia, których nie można przerwać** oraz starsze
pole `speak_uninterruptible_enabled` pozostają ze względów zgodności, ale ich włączenie
nie ma żadnego efektu. Pozostaw ustawienie wyłączone; żaden prompt nie może aktywować tego narzędzia.

W przypadku wymaganego komunikatu na początku połączenia użyj **Komunikat zgody**. Jest odtwarzany
dosłownie przed zwykłą rozmową i nie można go przerwać. Zobacz [Przepisy dotyczące zgody na nagrywanie połączeń](/pl/guides/recording-consent-laws).

## Testowanie i monitorowanie wbudowanych narzędzi

Użyj Talk w przeglądarce lub symulacji, aby sprawdzić prompty, wyszukiwanie wiedzy, dźwięki
i e-mail. Te środowiska nie mogą odtworzyć zachowania sieci telefonicznej. Przetestuj
nawigację klawiaturą i oczekiwanie w wychodzącym połączeniu telefonicznym oraz przetestuj pełne
ciepłe przekazanie w rzeczywistym połączeniu przy użyciu kwalifikującego się zaimportowanego numeru VoIP. Obsługa Realtime
jest ograniczona zgodnie z tabelą powyżej.

## Połączenia, ceny i webhooki

Wbudowane działania nie wiążą się z opłatą za użycie narzędzia. Nadal obowiązują standardowe opłaty za połączenia i dostawcę; zobacz [Cennik](/pl/guides/pricing). Ich wywołania i wyniki mogą pojawić się w ukończonej transkrypcji, ale nie emitują zdarzeń `telephony.tool` ani `web.tool`. Te zdarzenia dotyczą [funkcji zdefiniowanych przez użytkownika](/pl/tools/overview). Tylko ukończone rozłączenie lub przekazanie zmienia `end_reason` połączenia; inne błędy są zwracane agentowi. Zobacz [Webhooki ukończenia](/pl/webhooks/call-complete), aby poznać rekord połączenia.
