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

# 会話フロー

## 概要

会話フロー設定では、ユーザーが沈黙している間の処理、発話中の割り込み、ターンテイキングの動作をアシスタントがどのように処理するかを決定します。これらの設定により、より自然な会話を実現でき、ユースケースに応じてカスタマイズできます。

#### [会話の最大時間](#maximum-conversation-duration)

各会話の合計時間を制限します

#### [沈黙後にターンを取る](#turn-timeout)

沈黙中にアシスタントが待機する時間を設定します

#### [ソフトタイムアウト](#soft-timeout)

エージェントが考える時間を必要とする際に、自然な音声フィードバックを提供します

#### [割り込み](#interruptions)

アシスタントの発話中にユーザーが割り込めるかどうかを制御します

#### [ターンの積極性](#turn-eagerness)

アシスタントがユーザー入力に応答する速さを調整します

## 会話の最大時間

**会話の最大時間**設定では、会話をアクティブに維持できる合計時間を制限します。
このグローバルな制限は会話開始時に始まり、ターンレベルの
タイムアウトとは独立して適用されます。デフォルトは600秒（10分）です。60～7,200秒の値を設定できます。

### 設定

CLIとAPIでは、
`conversation_config.conversation.max_duration_seconds`フィールドでこの設定を構成します。

#### ダッシュボードから更新

ダッシュボードでエージェントを開き、**Advanced**タブに移動して、**Call limits**の**会話の最大時間**を調整します。変更を保存してください。

#### CLIから更新

#### エージェント設定を取得

```bash
elevenlabs agents pull --agent agent_7101k5zvyjhmfg983brhmhkd98n6
```

#### エージェント設定を編集

`conversation_config.conversation.max_duration_seconds`を設定します：

```json
{
  "conversation_config": {
    "conversation": {
      "max_duration_seconds": 1200
    }
  }
}
```

#### エージェント設定をプッシュ

```bash
elevenlabs agents push --agent agent_7101k5zvyjhmfg983brhmhkd98n6
```

#### APIから更新

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "conversation": {"max_duration_seconds": 1200},
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    conversation: { maxDurationSeconds: 1200 },
  },
});
```

> **Warning**
>
> WhatsAppメッセージ会話には、エージェントの直近の応答から計測される、デフォルトで15分間の非アクティブタイムアウトがあります。このタイムアウトにより、設定した最大時間より前にメッセージ会話が終了する場合があります。異なるタイムアウトが必要なユースケースをお持ちのエンタープライズのお客様は、[support@elevenlabs.io](mailto:support@elevenlabs.io)までお問い合わせください。

## 沈黙後にターンを取る

**沈黙後にターンを取る**設定では、ユーザーが沈黙してから、アシスタントが次のターンを取り応答を促すまでの待機時間を決定します。

### 設定

値は秒単位で指定し、1～30秒である必要があります。CLIとAPIでは、`conversation_config.turn.turn_timeout`フィールドでこの設定を構成します。

#### ダッシュボードから更新

ダッシュボードでエージェントを開き、**Advanced**タブに移動して、**沈黙後にターンを取る**の値を調整します。変更を保存してください。

![沈黙後にターンを取る設定](/docs/_fern-img/9de7653a0940ae3441b3470c2af53f4a72294ad3680946d4c3fa3b91df69c566.webp)

#### CLIから更新

#### エージェント設定を取得

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### \`agent_configs/\<agent-name>.json\`を編集

`conversation_config.turn.turn_timeout`を設定します：

```json
{
  "conversation_config": {
    "turn": {
      "turn_timeout": 7
    }
  }
}
```

#### 変更をプッシュ

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### APIから更新

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {"turn_timeout": 7},
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: { turnTimeout: 7 },
  },
});
```

> **Note**
>
> ユースケースに応じて適切なタイムアウト時間を選択してください。タイムアウトを短くすると会話の応答性は高まりますが、応答により多くの時間を必要とするユーザーを中断し、会話が不自然になる可能性があります。

### ベストプラクティス

* 迅速なやり取りが期待されるカジュアルな会話では、短いタイムアウト（5～10秒）を設定します
* ユーザーが考えたり複雑な回答をまとめたりするために時間が必要な場合は、長いタイムアウト（10～30秒）を使用します
* ユーザーの状況を考慮してください。カスタマーサービスでは短いタイムアウトが有効な場合がある一方、テクニカルサポートでは長いタイムアウトが必要になることがあります

## ソフトタイムアウト

ソフトタイムアウトは、LLMが応答生成に想定より時間がかかる場合に、即座に音声フィードバックを提供します。待機中に不自然な沈黙が生じる代わりに、エージェントが「うーん…」や「少し考えます…」のような短いフィラー音声を発し、自然な会話の流れを維持します。

この機能は、以下の用途に役立ちます：

* より長いLLM処理が必要な複雑なクエリ
* LLMプロバイダーの可変レイテンシーへの対応
* 自然な思考の間を取り入れた、より人間らしい会話の作成

### 仕組み

1. ユーザーが話し終えると、システムはLLM応答の生成を開始します
2. 設定されたタイムアウト時間に基づいてタイマーが開始します
3. LLM応答がタイムアウト**前**に到着した場合、フィラーは発話されません
4. LLMが応答する**前**にタイムアウトに達した場合：
   * 設定したフィラーメッセージがすぐに発話されます
   * エージェントは実際の応答を引き続き待機します
   * 準備が完了すると、エージェントは完全なLLM応答を発話します

ソフトタイムアウトは、フィラーが連続して複数回発話されるのを防ぐため、ターンごとに1回だけ作動します。

### 設定

#### ダッシュボードから更新

ダッシュボードでエージェントを開き、**Advanced**タブに移動して、**ソフトタイムアウト**設定を調整します。変更を保存してください。

![ソフトタイムアウト設定](/docs/_fern-img/7fdaca49ad50e6bc1f09f5eac46e36f0f4b071c5477e061a62791df9e100be75.webp)

#### CLIから更新

#### エージェント設定を取得

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### \`agent_configs/\<agent-name>.json\`を編集

`conversation_config.turn.soft_timeout_config`を設定します：

```json
{
  "conversation_config": {
    "turn": {
      "soft_timeout_config": {
        "timeout_seconds": 3.0,
        "message": "Hhmmmm...yeah.",
        "use_llm_generated_message": false
      }
    }
  }
}
```

#### 変更をプッシュ

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### APIから更新

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {
            "soft_timeout_config": {
                "timeout_seconds": 3.0,
                "message": "Hhmmmm...yeah.",
                "use_llm_generated_message": False,
            },
        },
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: {
      softTimeoutConfig: {
        timeoutSeconds: 3.0,
        message: "Hhmmmm...yeah.",
        useLlmGeneratedMessage: false,
      },
    },
  },
});
```

#### タイムアウト時間

LLM応答を待機している間にフィラーメッセージが発話されるまでの時間（秒）です。

| 設定        | 説明           |
| --------- | ------------ |
| **デフォルト** | `-1`（無効）     |
| **範囲**    | `0.5`～`8.0`秒 |
| **推奨**    | `3.0`秒       |

> **Tip**
>
> まずは3.0秒から始めてください。高速な応答で不要なフィラーが入るのを避けつつ、不自然な沈黙を防げる時間です。

#### 静的メッセージ

ソフトタイムアウトの作動時に発話する、あらかじめ定義されたフィラー文です。

| 設定        | 説明                 |
| --------- | ------------------ |
| **デフォルト** | `"Hhmmmm...yeah."` |
| **長さ**    | 1～200文字            |

このメッセージでは、以下をサポートします：

* **言語オーバーライド**：エージェントに設定された追加言語へ自動翻訳します
* **クライアントオーバーライド**：SDKを介して通話ごとにカスタマイズできます

#### LLM生成メッセージ

有効にすると、静的メッセージの代わりに軽量なLLMを使用して、文脈に応じた適切なフィラー文を動的に生成します。

| 設定          | 説明                   |
| ----------- | -------------------- |
| **デフォルト**   | `false`              |
| **フォールバック** | 生成に失敗した場合は静的メッセージを使用 |

システムは最近の会話コンテキスト（最大4メッセージ、1,000文字）を使用して、「うーん…」「なるほど…」「承知しました…」「わかりました…」「そうですね…」のような関連性の高いフィラーを生成します。

> **Note**
>
> LLM生成メッセージを使用する場合も、静的フォールバックメッセージが必要です。

### ベストプラクティス

* 実際の応答時間は予測できないため、フィラーメッセージに時間を示す表現（例：「少々お待ちください…」）を入れないでください
* 応答が一貫して速いFAQボットでは、ソフトタイムアウトを無効にしてください

## 割り込み

割り込み処理では、アシスタントの発話中にユーザーが割り込めるかどうかを決定します。

### 設定

割り込み設定は、エージェントの**Advanced**タブ内の**Client Events**で構成できます。

割り込みを有効にするには、割り込みが選択されたクライアントイベントであることを確認してください。

#### 割り込みが有効

![割り込みを許可](/docs/_fern-img/1da794be8ea3bfed45d06241ce5db390480cd45d27c0f886943518bd52d76157.webp)

#### 割り込みが無効

![割り込みを無視](/docs/_fern-img/847a2ebcdfff9498501502ab4b568fc498b6995f860a5552177a7883942197ff.webp)

> **Note**
>
> 法的免責事項や安全に関する指示など、情報を最後まで完全に伝えることが重要な場合は、割り込みを無効にしてください。

### 割り込みのベストプラクティス

* 双方向の対話が想定される自然な会話フローでは、割り込みを有効にします
* メッセージを最後まで伝えることが重要な場合（例：利用規約、安全情報）は、割り込みを無効にします
* ユースケースの文脈を考慮してください。カスタマーサービスでは割り込みが有効な場合がある一方、情報提供には適さないことがあります

## ターンの積極性

ターンの積極性は、会話中にアシスタントがユーザー入力へ応答する速さを制御します。この設定により、検出された発話パターンに基づいて、アシスタントがどの程度積極的にターンを取り発話を開始するかを決定します。

### 仕組み

アシスタントには、より自然なターンテイキングを実現する次の2つの主な改善が含まれています：

1. **より高速な応答生成** - アシスタントは、言語モデルから十分な単語とカンマを受け取ると、文の完了を待たずに発話を開始します。これによりレイテンシーが減少し、特にアシスタントの応答が長い場合に、より応答性の高い会話を実現します。

2. **設定可能なターンの積極性** - アシスタントが応答の機会として、間や発話パターンをどの程度速く解釈するかを制御します。

### 設定

次の3つのモードを利用できます：

* **積極的** - アシスタントはユーザー入力にすばやく応答し、最も早いタイミングで会話に入ります。即時の応答が重視される、テンポの速い会話に最適です。
* **通常** - ほとんどの会話シナリオで適切に機能する、バランスの取れたターンテイキングです。アシスタントは自然な会話の切れ目を待ってから応答します。
* **待機** - アシスタントはターンを取るまでより長く待機し、ユーザーが考えをまとめるための時間を多く取ります。詳細な情報を収集する場合や、ユーザーが応答を考える時間を必要とする場合に最適です。

#### ダッシュボードから更新

ダッシュボードでエージェントを開き、**Agent**設定に移動して、希望するターンの積極性モードを選択します。変更を保存してください。

#### CLIから更新

#### エージェント設定を取得

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### \`agent_configs/\<agent-name>.json\`を編集

`conversation_config.turn.turn_eagerness`を`"patient"`、`"normal"`、`"eager"`のいずれかに設定します：

```json
{
  "conversation_config": {
    "turn": {
      "turn_eagerness": "normal"
    }
  }
}
```

#### 変更をプッシュ

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### APIから更新

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {"turn_eagerness": "normal"},
    },
)
```

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

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: { turnEagerness: "normal" },
  },
});
```

> **Note**
>
> ターンの積極性は、ワークフローと組み合わせると特に強力です。文脈に応じてアシスタントの応答性を動的に調整できます。たとえば、カジュアルな会話ではより早く会話に入り、電話番号やメールアドレスなどの機密情報を収集するときはより長く待機させることができます。

### ターンの積極性に関するベストプラクティス

* 迅速な応答がユーザー体験を向上させるカスタマーサービスのシナリオでは、**積極的**モードを使用します
* 電話番号、住所、メールアドレスなどの構造化された情報を収集する場合は、**待機**モードを使用します
* 一般的な会話フローのデフォルトには、**通常**モードを使用します
* ワークフローと組み合わせて、会話の文脈に基づきターンの積極性を動的に調整します
* 特定のユースケースでさまざまな設定をテストし、最適なバランスを見つけてください

## 推奨設定

#### カスタマーサービス

* 応答性の高い対話には短いタイムアウト（5～10秒） - 顧客が質問を挟めるように割り込みを有効化 - 迅速で応答性の高い会話には**積極的**なターンの積極性

#### 情報収集

* ユーザーが情報を集める時間を確保するための中程度のタイムアウト（10～15秒） - 自然な会話フローのために割り込みを有効化 - 電話番号、住所、メールアドレスの収集時には**待機**のターンの積極性

#### 法的免責事項

* 複雑な応答に対応するための長いタイムアウト（15～30秒） - 法的情報を完全に伝えるために割り込みを無効化 - 安定したペースを維持するための**通常**のターンの積極性

#### 会話型EdTech

* 考えたり回答をまとめたりする時間を確保するための長いタイムアウト（10～30秒） - 生徒が質問を挟めるように割り込みを有効化 - 生徒に十分な応答時間を与えるための**待機**のターンの積極性