---
title: "내장 도구"
description: "ThunderPhone 에이전트가 통화를 종료하고, 발신자를 연결하며, 키패드를 조작하고, 대기하며, 지식을 검색하고, 소리를 재생하고, 이메일을 보내도록 프롬프트할 수 있습니다."
---

내장 도구를 사용하면 자체 API를 연결하지 않고도 에이전트가 일반적인 통화 작업을 수행할 수 있습니다. 대부분은 자동으로 제공됩니다. 이메일, 사운드, 지식 검색은 관련 설정이나 소스를 구성한 후에만 표시됩니다. 각 작업을 언제 사용해야 하는지 프롬프트에서 에이전트에게 알려주세요.

| 도구 | 용도 | 활성화 방법 | 지원 통화 |
| --- | --- | --- | --- |
| `end_call` | 완료된 대화 종료 | 항상 사용 가능 | 전화, 브라우저 Talk, 위젯, 시뮬레이션 및 Realtime |
| `transfer_call` | 전화 발신자 연결 | 프롬프트에서 라우팅 구성 | 일반 전화 통화, `call_events`를 사용하는 인라인 Realtime에서는 콜드 트랜스퍼를 사용할 수 있습니다. 저장된 에이전트 Realtime에서는 제공되지 않습니다. |
| `send_keypad_input` | 전화 메뉴에서 키 누르기 | 일반 전화 통화에서 항상 사용 가능 | 전화 통화, `call_events`를 사용하는 인라인 아웃바운드 Realtime입니다. 저장된 에이전트 Realtime에서는 제공되지 않습니다. |
| `no_response` | 자동화된 메뉴가 말하거나 발신자가 생각을 정리하는 동안 계속 듣기; 발신자가 에이전트에게 기다려 달라고 요청하면 "물론입니다."라고만 응답합니다. | 항상 사용 가능 | 모든 통화 유형 |
| `wait_on_hold` | 상대방이 돌아올 때까지 조용히 대기 | 아웃바운드 통화에 포함 | 아웃바운드 전화 및 아웃바운드 인라인 Realtime 세션 |
| `search_knowledge_base` | 연결된 소스를 기반으로 답변 | 에이전트에 지식 연결 | 지식이 연결된 저장된 에이전트 통화 |
| `play_sound` | 구성된 알림음 재생 | **고급 → 도구 사운드** | 저장된 에이전트 통화 |
| `send_email` | 고정된 한 명의 수신자에게 이메일 전송 | **고급 → 이메일 보내기** | 저장된 에이전트 통화 |

## `end_call`

프롬프트에서 모델에 종료하도록 지시하면 현재 통화를 종료합니다. 기본적으로 사용할 수 있으며 에이전트 설정이 필요하지 않습니다.

조건과 필요한 작별 인사를 프롬프트에 작성하세요.

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

모델이 종료한 통화에는 통화 시간 제한 경고 후에 종료된 통화를 포함하여 `end_reason: "ai_hangup"`이 설정됩니다. 시간 제한에 먼저 도달한 경우에만 통화가 `max_duration`으로 종료되며, 선불 잔액이 소진되면 `balance_exhausted`로 종료됩니다.

## `transfer_call`

모델이 제공한 고정 번호로 전화 발신자를 전환합니다. 콜드 전환은 즉시 이루어집니다. 스크리닝된 웜 전환은 당사자를 연결하기 전에 대상 번호로 비공개 통화를 합니다. 웜 전환을 사용하려면 아웃바운드 통화를 발신할 수 있는 확인된 가져온 VoIP 번호가 필요합니다.

대상 번호와 정확한 라우팅 조건을 프롬프트에 입력하세요.

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

성공한 콜드 전환에는 `end_reason: "ai_transfer"`가 지정되며, 완료된 웜 전환에는 `end_reason: "ai_warm_transfer"`가 지정됩니다. 웜 전환 시도가 실패하면 제어가 에이전트에게 돌아가므로, 통화가 이후에 어떻게 종료되는지가 종료 사유를 결정합니다. 전화가 아닌 세션에서는 전환 요청이 대신 세션을 종료합니다.

대시보드 및 API 설정, 라우팅, 스크리닝, 실패 처리, 제한 사항 및 테스트에 대해서는 [통화 전환](/ko/guides/call-transfers)을 참조하세요.

## `send_keypad_input`

DTMF(전화 키패드) 숫자 `0`–`9`, `*`, `#`를 전화 회선으로 전송합니다. 모델은 이를 사용하여 발신자에게 키를 누르도록 요청하는 자동 전화 메뉴인 IVR을 탐색합니다. 기본적으로 사용할 수 있으며 에이전트 설정이 필요하지 않습니다.

모델이 탐색할 수 있는 메뉴와 요청된 값의 출처를 알려주세요. 메뉴 옵션을 추측하도록 요청하지 마세요.

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

플랫폼은 지원되지 않는 문자를 제거하고 유효한 숫자를 순서대로 전송합니다. 유효한 숫자가 남아 있지 않거나 통화에서 키패드 입력을 전송할 수 없으면, 에이전트가 복구할 수 있도록 실패 정보가 반환됩니다.

## `no_response`

자동화 시스템이 아직 안내 중이거나 계속 듣도록 요청하는 동안, 그리고 발신자가 생각을 정리하며 말할 때("음, 어디 보자") 또는 다른 사람에게 말을 돌릴 때 에이전트가 침묵을 유지하도록 합니다. 발신자가 무언가를 하는 동안 기다려 달라고 요청하고("잠깐만요", "확인해 볼게요", "잠시만 기다려 주실 수 있나요?") 에이전트가 답할 다른 내용을 제공하지 않으면, 에이전트는 "네."라고만 말하고("천천히 하세요"라고 하지 않음) 발신자가 다시 말할 때까지 기다립니다. 통화가 계속 조용하면 에이전트의 침묵 확인 응답은 계속 실행되며 항상 음성으로 안내됩니다. 이는 실제 사람의 인사, 질문 또는 실제 대기열용이 아닙니다. 기본으로 제공되며 에이전트 설정은 없습니다.

프롬프트에서 발신자가 잠시 시간을 요청할 때 에이전트가 말할 내용을 지정하면 프롬프트가 우선합니다.

일반적으로 내장 설명만으로 충분합니다. IVR 비중이 높은 통화에서는 프롬프트에서 경계를 강화하세요.

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

이 작업은 통화를 종료하지 않습니다.

## `wait_on_hold`

실제 사람이 돌아올 때까지 발신 에이전트를 무음 보류 상태로 전환합니다.
상대방이 에이전트를 보류하겠다고 명시적으로 말한 후에만 모델이 이를 사용합니다.
발신 통화에서는 자동으로 사용할 수 있으며 대시보드 설정은 없습니다.

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

IVR의 "잠시만 기다려 주세요" 메시지에 이 도구를 사용하도록 에이전트에 지시하지 마세요. 기본적으로 보류는
최대 15분 동안 유지됩니다. 일반 발신 통화의 경우 `POST /v1/call`은 양의 정수
`max_hold_seconds`를 허용하며, 인라인 Realtime에서는
`max_hold_seconds`를 10~900초로 제한합니다. 상대방이
돌아오면 에이전트는 통화 종료 사유를 변경하지 않고 다시 대화를 시작합니다. 제한 시간이
만료되면 플랫폼은 `end_reason: "ai_hangup"`으로 통화를 종료합니다.

## `search_knowledge_base`

에이전트에 연결된 문서를 검색하고 관련 구절을 반환합니다. 이를 활성화하려면
지식 베이스 또는 개별 지식 문서를 연결한 다음, 어떤 답변이 해당 소스에서
제공되어야 하는지 모델에 알려주세요.

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

검색에 실패하면 결과가 에이전트에 반환됩니다. 대시보드 및 API 설정은 [지식
베이스](/ko/guides/knowledge-base)를 참조하세요.

## `play_sound`

같은 턴의 발화가 끝난 후 에이전트에 구성된 알림음을 재생합니다.
대시보드에서 **고급 → 도구 소리**를 **차임**, **딩** 또는 **비프**로 설정한
다음 에이전트를 배포하세요. **없음**을 선택하면 도구가 제거됩니다.

[Agents API](/api-reference/agents)에서는 `play_sound_asset`를
`"chime"`, `"ding"` 또는 `"beep"`으로 스테이징한 다음 배포하세요.
도구를 비활성화하려면 `""`로 설정하세요.

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

재생 실패는 에이전트에 반환되며 통화가 종료되지는 않습니다.

## `send_email`

에이전트 소유자가 구성한 한 명의 수신자에게 일반 텍스트 이메일을 전송합니다.
모델은 제목과 본문을 제공합니다. 수신자 매개변수는 절대 확인할 수 없으며
주소를 선택하거나 변경할 수도 없습니다.

대시보드에서 **고급 → 이메일 보내기**를 활성화하고 수신자 주소를 저장한
다음 에이전트를 배포하세요. [Agents API](/api-reference/agents)에서는
`send_email_enabled: true`와 비어 있지 않은 `send_email_recipient`를 모두
스테이징한 다음 배포하세요. 프롬프트에서 트리거와 필수 내용을 정의하세요.

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

통화당 이메일은 최대 세 번까지 시도할 수 있습니다. 각 제목은 최대 300자로,
각 본문은 최대 20,000자로 제한됩니다. 구성 누락, 잘못된 내용, 통화당 제한 초과 및
전송 실패는 에이전트에 반환됩니다.
전송에 실패해도 세 번의 시도 중 한 번이 사용됩니다.

광범위하게 배포하기 전에 관리되는 수신자로 테스트하세요. 브라우저 Talk와
시뮬레이션은 실제 이메일을 전송하며, 드라이 런 모드는 없습니다.

## 호환성 참고

**고급 → 중단 불가 고지** 설정과 레거시
`speak_uninterruptible_enabled` 필드는 호환성을 위해 유지되지만, 활성화해도
효과가 없습니다. 설정을 끈 상태로 두세요. 어떤 프롬프트로도 이 도구를 활성화할 수 없습니다.

필수 통화 시작 고지에는 **동의 안내**를 사용하세요. 일반 대화 전에
원문 그대로 재생되며 중단할 수 없습니다. [통화 녹음 동의 법률](/ko/guides/recording-consent-laws)을 참조하세요.

## 기본 제공 도구 테스트 및 모니터링

브라우저 Talk 또는 시뮬레이션을 사용하여 프롬프트, 지식 검색, 소리 및
이메일을 확인하세요. 이러한 환경에서는 전화 네트워크 동작을 재현할 수 없습니다. 발신 전화 통화에서
키패드 탐색과 보류를 테스트하고, 사용 가능한 가져온 VoIP 번호를 사용하여 실제 통화에서
완전한 웜 핸드오프를 테스트하세요. Realtime 지원은 위 표에 표시된 대로
제한됩니다.

## 통화, 가격 및 웹훅

내장 작업에는 사용당 도구 요금이 없습니다. 일반 통화 및 제공업체 요금은
계속 적용됩니다. [가격](/ko/guides/pricing)을 참조하세요. 해당 호출과 결과는
완료된 트랜스크립트에 표시될 수 있지만 `telephony.tool` 또는 `web.tool` 이벤트를
발생시키지는 않습니다. 이러한 이벤트는 [사용자 정의 함수](/ko/tools/overview)를 위한 것입니다. 완료된
통화 종료 또는 전환만 통화의 `end_reason`을 변경하며, 그 밖의 실패는 에이전트에 반환됩니다.
통화 기록은 [완료 웹훅](/ko/webhooks/call-complete)을 참조하세요.
