> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telloai.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 에이전트 크루

> 에이전트 여럿이 한 통화를 나눠 맡는 흐름을 캔버스에서 그려요.

## 크루란

에이전트 하나가 통화 전체를 맡는 대신, **여러 담당자가 한 통화를 나눠 맡고 필요할 때
서로 넘기는** 구조예요. 접수 담당이 용건을 듣고, 예약 담당에게 넘기고, 처리가 끝나면
마무리 담당이 통화를 끊는 식이에요.

| | 단일 에이전트 | 크루 |
| - | - | - |
| 담당 | 하나가 전부 | 멤버마다 맡은 일이 다름 |
| 지시문 | 한 덩어리 | 멤버마다 따로 |
| 도구 | 전부 한 에이전트에 | 그 일을 하는 멤버에게만 |
| 흐름 제어 | AI가 프롬프트 안에서 판단 | **전환 조건**으로 명시 |
| 적합한 용도 | 용건이 하나인 통화 | 용건이 갈리고 단계가 있는 통화 |

한 멤버가 들고 있는 지시문과 도구가 적을수록 AI가 덜 헤매요. 프롬프트 하나가 너무
길어져서 AI가 엉뚱한 도구를 부르기 시작하면 크루로 나눌 때예요.

## 시작 전에: 도구부터 등록해요

크루 편집기는 도구를 **고르는** 화면이지 **만드는** 화면이 아니에요. 통화 중에 조회하거나
저장할 일이 있다면 [도구 모음](/agents/tools)에서 먼저 등록하고 **발행**해 두세요.

```mermaid theme={null}
flowchart LR
  A[도구 모음에서 등록] --> B[발행]
  B --> C[크루에서 선택]
  C --> D[멤버에 배정]
  D --> E[Deploy · 운영 반영]
```

발행하지 않은 도구는 목록에 떠도 **통화에서 아예 안 불려요.** 크루를 아무리 잘 그려도
도구가 미발행이면 그 자리에서 흐름이 멎어요.

<Note title="연습은 샘플 도구로">
  계정을 만들 때 `[샘플] 배송 조회`와 `[샘플] 택배사/배송상태 코드 목록`이 발행된 채로
  들어와요. 등록 없이 골라 쓸 수 있어서 처음 흐름을 그려 볼 때 쓰면 돼요. 자세한 건
  [빠른 시작](/start/quickstart)을 보세요.
</Note>

## 흐름 설계하기

멤버를 몇으로 나눌지가 흐름의 골격이에요. **한 멤버가 들고 있는 지시문과 도구가 적을수록
AI가 덜 헤매요.**

### 나누는 기준

| 이럴 때 나눠요 | 이럴 때 나누지 마세요 |
| - | - |
| 용건이 갈려서 쓰는 도구가 달라요 | 용건이 하나예요 |
| 말투나 권한이 달라요 (일반 상담 · 전문 상담) | 단계만 다르고 판단은 같아요 |
| 한 멤버의 지시문이 너무 길어져 도구를 헷갈려요 | 멤버를 나눠도 지시문이 거의 같아요 |

### 자주 쓰는 골격

**갈래형.** 첫 멤버가 용건을 듣고 알맞은 담당에게 넘겨요. 고객센터에서 가장 흔해요.

```mermaid theme={null}
flowchart LR
  A[접수] -->|배송 문의| B[배송 담당]
  A -->|예약 문의| C[예약 담당]
  B -->|처리 불가| D[전문 상담]
  C -->|처리 불가| D
```

**단계형.** 본인 확인을 마쳐야 다음으로 갑니다. 조회 전에 꼭 거쳐야 할 관문이 있을 때 써요.

```mermaid theme={null}
flowchart LR
  A[본인 확인] --> B[조회·안내]
  B --> C[변경 접수]
```

<Tip>
  멤버가 넷을 넘어가면 전환 조건이 서로 겹치기 시작해요. 그때는 담당을 더 쪼개는 대신
  **한 멤버가 도구를 여러 개 들게** 두는 편이 나아요.
</Tip>

## 크루 만들기

두 가지 방법이 있어요.

### 말로 만들기 (권장)

목록 화면 위쪽 **어떤 통화 흐름을 만들어 드릴까요?** 칸에 하고 싶은 일을 적으면 흐름을
통째로 만들어 줘요. 화면을 따라가며 한 번 만들어 보려면 [빠른 시작](/start/quickstart)이
짧아요.

<Tip title="멤버가 몇이고 언제 넘기는지가 드러나게 적으세요">
  「배송 문의 받아줘」처럼 한 줄만 적으면 담당을 어떻게 나눌지가 안 나와요. **어떤 일들을
  하는지**와 **어떨 때 다른 담당에게 넘기는지**를 함께 적으면 그만큼 골격이 서요.
</Tip>

적기 전에 칸 아래에서 두 가지를 함께 골라요.

* **기본 실행 모델**: 만들어질 **멤버들이 통화에서 쓸** 모델이에요. 초안을 쓰는 모델이
  아니에요.
* **도구 선택**: [도구 모음](/agents/tools)에서 만들어 둔 도구 중 이 크루가 쓸 것을 미리
  골라요. 이름, 함수명, 설명으로 검색하고 종류로 거를 수 있어요.

고른 도구 안에서만 담당별로 배정돼요. **고르지 않으면 계정의 도구 전체에서 알아서 고르고**,
통화 종료 도구는 고르든 안 고르든 항상 모든 담당에 붙어요.

보내면 **초안을 쓰는 중** 다음에 **크루를 만드는 중**으로 진행 상태가 보여요. 중간에
멈출 수도 있어요. 다 되면 멤버와 전환이 놓인 채로 편집기가 바로 열려요.

### 빈 크루로 시작하기

`+ 새로 만들기`로 이름과 설명(선택)만 정하고 캔버스에서 직접 그려도 돼요.

## 캔버스

### 두 가지 모드

캔버스 가운데 위 머리글에서 모드를 바꿔요.

| 모드 | 하는 일 |
| - | - |
| **이동 모드** | 화면을 끌어 옮기고 멤버 위치를 바꿔요 |
| **연결 모드** | 멤버에서 멤버로 끌어 **전환을 이어요** |

### 도구 모음

캔버스 왼쪽 아래 도구 모음이에요.

| 버튼 | 하는 일 |
| - | - |
| **에이전트 추가** | 새 멤버를 캔버스에 놓아요 |
| **화면 맞춤** | 흐름 전체가 보이도록 확대율을 맞춰요 |
| **테스트** | 오른쪽에 테스트 드로어를 열어요 |
| **배포 관리** | 지금까지 배포한 판을 봐요. 운영에 반영할 판이 남아 있으면 표시가 붙어요 |
| **전체 설정** | 크루 전체의 설정이에요. 지금은 [메모리 활성화](/agents/memory)가 있어요 |
| **실행 취소 / 다시 실행** | `Ctrl+Z` / `Ctrl+Shift+Z` |

## 멤버 설정

멤버를 클릭하면 오른쪽에 패널이 열리고, 탭이 **셋**으로 나뉘어 있어요.

| 탭 | 다루는 것 |
| - | - |
| **속성** | 이름, 첫 인사, 모델, 프롬프트 |
| **도구** | 이 멤버가 부를 도구를 붙이고 인자를 채워요. 아래 [도구 붙이기](#도구-붙이기) |
| **고급** | Temperature, Max Tokens, 추론 강도. 아래 [고급](#고급) |

<img src="https://mintcdn.com/tello-cc85f660/_cRl_jxTlhipqtvU/images/crew/10-member-panel.webp?fit=max&auto=format&n=_cRl_jxTlhipqtvU&q=85&s=0fa180b58bcc52527504c1b708ade211" alt="속성 도구 고급 탭이 있는 멤버 패널에 이름, 첫 인사, 모델, 프롬프트 칸이 세로로 놓여 있다" width="820" height="1624" data-path="images/crew/10-member-panel.webp" />

**속성** 탭의 칸이에요.

| 칸 | 설명 |
| - | - |
| **이름** | 캔버스와 전환 조건에서 이 멤버를 부르는 이름이에요. 예) 접수 |
| **첫 인사** | 이 멤버가 통화를 시작할 때 하는 말이에요. `Ctrl+Space`로 변수를 넣어요 |
| **모델** | 이 멤버가 쓸 LLM이에요. 멤버마다 다르게 둘 수 있어요 |
| **프롬프트** | 이 멤버가 무엇을 어떻게 하는지 적어요. 아래 골격 참고 |

<Note title="첫 인사는 진입 멤버 것만 나가요">
  통화를 처음 받는 멤버에는 캔버스에서 `시작` 표시가 붙어요. 이 **진입 멤버**의 첫 인사가
  통화 시작 인사예요. 중간 멤버의 첫 인사는 그 멤버가 통화를 넘겨받는 순간에 나가요.
</Note>

### 지시문 골격

새 멤버에는 구획이 잡힌 골격이 들어 있어요. 대괄호 자리를 채워 쓰세요.

| 구획 | 적는 것 |
| - | - |
| `# Identity & Purpose` | 이 멤버가 누구이고 무엇을 하는지 |
| `# Personality` | 말투와 톤 |
| `# Response Guidelines` | 어떻게 답하는지 |
| `# Guardrails` | 하지 말아야 할 것 |
| `# Context` | 통화 중에 주어지는 값 |
| `# Workflow` | 할 일의 순서 |
| `# Examples` | 잘 풀린 경우, 예외, 오류 복구, 통화 종료 예시 |

<Warning title="예시에 도구 결과를 지어 쓰지 마세요">
  `Examples`에서 도구를 부르는 줄은 `Tool Call: 함수이름(인자: 값)` 하나예요. 그 아래에
  「도구가 이런 값을 돌려줬다」는 줄을 적으면, AI가 실제로 도구를 부르지 않고 **그 예시
  값을 그대로 고객에게 말해요.** 골격에 그 줄이 없는 이유예요.
</Warning>

칸이 좁으면 확대 버튼으로 큰 창에서 편집할 수 있어요.

### 고급

**고급** 탭에서 이 멤버의 응답 방식을 조절해요. **생성 설정**과 **추론**이 접힌 채로 있어요.

| 항목 | 설명 |
| - | - |
| **Temperature** | 모델이 다음 말을 고를 때 얼마나 폭을 두는지예요 |
| **Max Tokens** | 이 멤버가 한 번에 말할 수 있는 길이예요. 비우면 모델이 정한 길이를 써요 |
| **추론 강도** | 끄기 / 낮음 / 중간 / 높음. 추론을 지원하는 모델에만 나와요 |

## 전환

멤버와 멤버를 잇는 선이 **전환**이에요. 선 위의 라벨을 클릭하면 오른쪽에 패널이 열려요.
**전환**과 **안내 메시지** 두 탭이에요.

<img src="https://mintcdn.com/tello-cc85f660/_cRl_jxTlhipqtvU/images/crew/12-transition-panel.webp?fit=max&auto=format&n=_cRl_jxTlhipqtvU&q=85&s=464640a848f679ff5c3c9a874f3c2d51" alt="전환 패널에 라벨, 전환 조건, 전환 시 수집할 값 표, 넘길 대화 선택이 세로로 놓여 있다" width="820" height="1624" data-path="images/crew/12-transition-panel.webp" />

| 칸 | 설명 |
| - | - |
| **라벨** | 선 위에 그릴 이름이에요. 비우면 조건을 그려요. 예) 예약 문의 |
| **전환 조건** | 언제 넘길지를 문장으로 적어요 |

전환 조건은 이렇게 적어요.

```
환자가 예약 변경, 취소, 신규 접수를 요청하고, 환자 진료 내역 조회 결과가 있는 경우
```

### 전환 시 수집할 값

넘길 때 **함께 들려 보낼 값**을 정해요. 넘겨받은 멤버가 같은 걸 다시 묻지 않게 하는
장치예요. 목록에 이름과 타입, 필수 여부가 보이고 `+ 추가`로 늘려요.

| 칸 | 설명 |
| - | - |
| **이름** | 값의 이름이에요 |
| **타입** | 값 형식이에요 |
| **설명** | 무엇을 담는 값인지. 예) 고객이 환불하려는 이유 |
| **필수** | 켜면 이 값이 없으면 넘기지 않아요 |
| **선택지** | 쉼표로 나눠 적으면 그중에서만 골라요 |

**안내 메시지** 탭에서는 넘어가는 순간 고객에게 할 말을 정해요.

### 넘길 대화

넘겨받은 멤버가 **그때까지 오간 대화를 얼마나 물려받을지**를 전환마다 정해요. 같은
멤버라도 어디서 넘어왔느냐에 따라 필요한 이력이 다르기 때문에 멤버가 아니라 **전환에**
붙어요.

| 고르기 | 넘기는 것 |
| - | - |
| **전체 대화** | 지금까지 오간 대화를 전부 넘겨요 |
| **최근 대화만** | 최근 몇 개만 넘겨요. 통화가 길어질 때 비용이 줄어요 |
| **주고받은 말만** | 고객과 주고받은 말만 넘기고, 도구를 부른 기록은 빼요 |

「최근 대화만」을 고르면 **넘길 대화 개수**를 함께 정해요. 비워 두면 10개예요.

<Note title="값과 지시문은 어느 쪽을 골라도 넘어가요">
  이 설정이 자르는 것은 **대화 이력뿐**이에요. 위에서 정한 [전환 시 수집할
  값](#전환-시-수집할-값)과 멤버 지시문은 어느 쪽을 골라도 그대로 넘어가요. 값까지 끊기면
  넘겨받은 멤버가 고객에게 같은 것을 다시 묻게 되거든요.
</Note>

<Tip>
  통화가 길어져 비용이 걱정되면 **주고받은 말만**부터 보세요. 도구 호출 기록은 대개
  넘겨받은 멤버가 다시 읽을 일이 없는데 분량은 많아요.
</Tip>

<Tip>
  반대 방향 전환도 따로 만들 수 있어요. 두 멤버가 서로 주고받으면 선이 겹치지 않게
  차선으로 나뉘어 그려져요.
</Tip>

## 도구 붙이기

멤버 패널의 **도구** 탭이에요. 위쪽 목록에서 쓸 도구를 체크하면 아래 **할당된 도구**로
내려와요. 통화 종료 도구는 고르든 안 고르든 모든 멤버에 붙어요.

### 버전 고르기

할당된 도구마다 **버전**을 정해요. 기본은 `최신`이고, 그 도구를 새로 발행하면 이 멤버도
자동으로 새 판을 따라가요. 특정 판을 골라 두면 도구를 고쳐 발행해도 이 멤버는 **그 판에
머물러요.**

<Note>
  잘 도는 흐름을 건드리고 싶지 않을 때 판을 고정해요. 다만 고정해 둔 것을 잊으면 「도구를
  고쳤는데 이 멤버만 옛날처럼 동작한다」가 돼요.
</Note>

### 인자 채우기

할당된 도구 줄의 **인자 매핑** 버튼을 누르면 그 도구가 받는 인자마다 값 출처를 고를 수
있어요.

<img src="https://mintcdn.com/tello-cc85f660/_cRl_jxTlhipqtvU/images/crew/11-tool-binding.webp?fit=max&auto=format&n=_cRl_jxTlhipqtvU&q=85&s=c37d99945b0af68feae2b144ad78e0c3" alt="샘플 배송 조회 인자 매핑 창에 phone, status, order_no, tracking_no, orderer_name 인자가 모델이 채움으로 지정돼 있다" width="1024" height="996" data-path="images/crew/11-tool-binding.webp" />

| 값 출처 | 설명 |
| - | - |
| **모델이 채움** | AI가 대화에서 알아내 채워요. 기본값이에요 |
| **통화 시작 값** | 통화를 걸 때 넘긴 값으로 채워요 |
| **앞 도구 응답** | 앞서 부른 도구가 돌려준 값으로 채워요 |
| **전환 값** | 앞 멤버가 넘겨준 값으로 채워요 |
| **서버 변수 참조** | `{{고객번호}}` 같은 시스템 값으로 채워요 |
| **직접 참조** | 적어 둔 값을 그대로 보내요 |

<Warning title="고를 것이 없다고 나올 때">
  창 위에 「들어오는 전환도 앞서 부른 도구도 아직 값을 안 넘겨요」가 뜨면, **전환 값**이나
  **앞 도구 응답**으로 채울 재료가 아직 없다는 뜻이에요. 먼저 그 멤버로 들어오는 전환에서
  [수집할 값](#전환-시-수집할-값)을 선언하거나, 값을 내주는 도구를 앞에 두세요.
</Warning>

도구 이름 옆에 **도구 발행 필요**가 뜨면 그 도구를 아직 발행하지 않은 거예요.
[도구 모음](/agents/tools)에서 발행해야 통화에서 불려요.

## 테스트

`테스트`를 누르면 **텍스트로 테스트**와 **음성으로 테스트** 중에 고르고, 캔버스 오른쪽에
드로어가 열려요. 번호 없이 브라우저에서 통화해 봐요.

<Steps>
  <Step title="테스트 변수 넣기">
    첫 인사나 지시문에 `{{고객이름}}` 같은 변수를 썼다면 **테스트 변수** 창이 값을 먼저
    물어요. `테스트 시작`을 누르면 그 값으로 통화가 시작돼요. 비워 두면 그 자리는
    채워지지 않아요.

    <img src="https://mintcdn.com/tello-cc85f660/LbhyzpSwQ8QsL4DQ/images/crew/08-test-variables.webp?fit=max&auto=format&n=LbhyzpSwQ8QsL4DQ&q=85&s=c689feaaa1dd66f3c8bade48619ec1d7" alt="테스트 변수 창에 고객이름 항목과 값 입력칸, 취소와 테스트 시작 버튼이 있다" width="984" height="538" data-path="images/crew/08-test-variables.webp" />
  </Step>

  <Step title="말하거나 적기">
    마이크로 말해도 되고 글자로 적어도 돼요. 마이크 권한이 없으면 글자로 계속할 수 있어요.
  </Step>

  <Step title="흐름 따라가기">
    지금 어느 멤버가 응대 중인지 **캔버스에 칠해져요.** 방금 탄 전환은 선이 흐르는 모양으로
    보여요.
  </Step>

  <Step title="넘겨받은 값 확인">
    드로어의 **지나온 멤버** 칩에 마우스를 올리면 그 전환에서 **넘겨받은 값**이 보여요.
    비어 있으면 「함께 넘어온 값이 없어요」로 나와요.
  </Step>
</Steps>

`다시 걸기`로 처음부터 다시 하거나, 테스트 변수를 바꿔서 다시 걸 수 있어요.

## 배포

캔버스를 저장하는 것과 고객 통화가 바뀌는 것은 **다른 일**이에요. 세 겹으로 나뉘어 있어요.

| 단계 | 무엇이 바뀌나 | 고객 통화 |
| - | - | - |
| 편집 | 캔버스 초안 | 그대로 |
| `Deploy` | 지금 캔버스가 `v1`, `v2` 같은 **판으로 굳어요** | 그대로 |
| **운영 반영** | 그 판이 **운영 판**이 돼요 | 여기서 바뀌어요 |

<Steps>
  <Step title="Deploy">
    캔버스를 고치면 가운데 위에 배포 바가 뜨고 고친 건수를 알려줘요. `Deploy`를 누르면
    지금 캔버스가 판으로 굳어요. 아직 고객에게는 안 나가요.
  </Step>

  <Step title="운영 반영">
    캔버스 아래 도구 모음의 `배포 관리`를 열어 그 판의 **운영 반영**을 눌러야 실제 통화가
    바뀌어요. 반영할 판이 남아 있으면 버튼에 **적용 대기 중** 표시가 붙어요.

    <img src="https://mintcdn.com/tello-cc85f660/_cRl_jxTlhipqtvU/images/crew/13-deploy-manage.webp?fit=max&auto=format&n=_cRl_jxTlhipqtvU&q=85&s=4d57f870e9db30783821b758bb9850f3" alt="배포 이력 창에 v1 최신 판과 발행 시각이 있고 오른쪽에 운영 반영과 가져오기 버튼이 있다" width="1536" height="320" data-path="images/crew/13-deploy-manage.webp" />
  </Step>
</Steps>

<Warning>
  `Deploy`만 누르고 끝내면 **고객에게 나가는 판은 그대로예요.** 「고쳤는데 통화가 안 바뀐다」
  싶으면 여기부터 확인하세요. 채널의 대상 목록에도 **운영에 반영된 크루만** 나와요.
</Warning>

### 판 되돌리기

| 하고 싶은 것 | 누를 것 |
| - | - |
| 캔버스에서 고친 것을 버리고 마지막 배포 상태로 | 배포 바의 `⋮` › **되돌리기** |
| 과거 판을 편집 화면으로 되살리기 | 배포 이력의 **가져오기** |
| 두 판을 비교하기 | 배포 이력에서 개정판을 클릭 |

**가져오기**는 과거 판을 캔버스로 불러올 뿐이에요. 고객에게 나가는 판은 그대로라, 되살린
내용을 내보내려면 다시 `Deploy`하고 **운영 반영**까지 눌러야 해요. 예외로 전체 설정의 메모리도
그 판 값으로 돌아오는데, 꺼지는 쪽이면 새로 기억하는 것은 바로 멈춰요.

### 배포 전 확인 창

배포를 누를 때 뜻이 갈릴 수 있는 자리가 있으면 한 번 물어요. 의도한 게 맞으면 그대로
배포해도 돼요.

* **주소에 채울 값이 비었어요**: 도구 주소의 변수 자리를 못 채우면 그 도구는 통화에서
  아예 안 불려요. 발신 통화에서 값을 넣는 경우라면 괜찮아요.
* **어느 도구 값인지 모호해진 연결이 있어요**: 여러 도구가 같은 이름의 값을 내서
  **나중에 부른 도구의 값**이 들어가요. 짚어 준 멤버의 도구 연결을 열어 값을 다시
  골라 주세요.

<Warning title="배포가 막힐 때">
  `Deploy`가 안 눌리면 캔버스에서 **붉은 테두리가 씌워진 멤버**로 화면이 옮겨가요.
  거기가 막은 자리예요.
</Warning>

## 삭제와 복원

목록 화면의 **삭제된 흐름** 탭에서 지운 크루를 되살려요.

<Note>
  되살린 크루는 **초안**으로 돌아와요. 전화를 다시 받게 하려면 복원한 뒤 배포하고 운영에
  반영해야 해요. 지웠을 때 폐기된 발행본과 채널 연결은 돌아오지 않아요.
</Note>

## 주의사항

* **도구는 발행해야 통화에 나가요.** 붙이기만 해서는 안 불려요.
* 크루의 **목소리는 채널이 정해요.** 크루 자체에는 음성 프로필이 없어서, 전화번호나
  웹채팅 채널을 만들 때 고른 [음성 프로필](/channels/voice-profile)로 돌아요.
* **지식 검색 도구는 크루에서만 동작해요.** 단일 에이전트에는 붙지 않아요.
* 캔버스를 저장해도 통화는 안 바뀌어요. `Deploy`와 **운영 반영**까지 눌러야 해요.

## 관련 문서

* [에이전트 관리](/agents/manage)
* [도구 모음](/agents/tools)
* [프롬프트 변수](/agents/variables)
* [채널 관리](/channels/overview)
* [라이브 관제](/agents/live)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.