ハンドブックは、生成エージェントの基本的な構成要素です。 通常、生成エージェントには多数のハンドブックがあり、各ハンドブックは特定のタスクを処理するように定義されています。 ハンドブックのデータは LLM に提供されるため、LLM には質問に回答し、タスクを実行するために必要な情報が含まれています。 各ハンドブックは、情報を提供したり、 外部サービスにクエリを送信したり、 会話処理を フロー や別のハンドブックに任せてサブタスクを処理したりできます。
制限事項
次の制限が適用されます。
- ハンドブックを使用するエージェントは、デフォルトの開始フローの Default Welcome Intent ルートから 通話コンパニオン SMS を送信することはできませんが、標準フローで通話 コンパニオン SMS オプションを有効にできます。
- ハンドブックは、電話システムからの DTMF 入力をサポートしていません。
言語サポート
[Playbooks] 列を
言語リファレンスでご覧ください。
ハンドブック用にマークされた言語は、gemini-2.0-flash モデルで品質がテストされています。
英語以外の言語を使用する場合:
- ほとんどの場合、ハンドブックの手順には英語を使用します。 特定の言語やユースケースでは、ターゲット言語で手順を追加すると、レスポンスがわずかに改善されることがあります。
- ハンドブックの手順で言語サポートを宣言します。 例: 「常にフランス語で回答してください」。
- ターゲット言語で例を定義します。
モデルサポート
ハンドブックで使用される LLM モデルは、次の場所で選択できます。
エージェント レベルで LLM モデルを選択します。
- [会話エージェント コンソール] [エージェント設定] -> [生成 AI] -> [ハンドブック] で、使用可能なすべてのモデルのプルダウンから表示名でモデルを選択します。
- API を使用してエージェント設定を更新する場合は、 GenerativeSettings.llm_model_settings.model フィールドにモデル名を指定します( GenerativeSettings を参照)。
リクエスト レベルでモデルの選択をオーバーライドします。
- 会話エージェント コンソールのシミュレータで、ハンドブックをテストするときにプルダウンから表示名でモデルを選択します。
- API 経由でエージェントをテストする場合は、 DetectIntentRequest.query_params.llm_model_settings.model フィールドにモデル名を指定します( DetectIntentRequest を参照)。
| モデル名 | モデルの仕様 | リリース ステージ |
|---|---|---|
| gemini-2.5-flash | Gemini 2.5 flash | GA |
| gemini-2.5-flash-lite | Gemini 2.5 flash lite | GA |
| gemini-2.0-flash-001 | Gemini 2.0 flash | GA |
| gemini-2.0-flash-lite-001 | Gemini 2.0 flash lite | GA |
リージョン サポート
ハンドブックは次の リージョンでサポートされています。
globalasia-south1asia-southeast1asia-southeast2asia-northeast1australia-southeast1eu(マルチリージョン)europe-west1europe-west2europe-west3europe-west4europe-west6northamerica-northeast1us(マルチリージョン)us-central1us-east1us-west1
ハンドブックのデータ
ハンドブックは次のデータで構成されます。
- ハンドブック名: 自然言語で記述されたわかりやすい名前で、ハンドブックが処理するタスクを開発者や LLM が理解するのに役立つ
- 目標: ハンドブックで達成すべき内容の概要
- 手順: 目標を達成するために行う必要があるプロセスの手順を定義します。
- 例: サンプルの会話。実質的に、LLM の数ショットのプロンプトの例です。
- パラメータ: ユーザー入力、ユーザー システム情報、アクションの結果など、会話に関する情報を保存するために使用されます。
LLM プロンプト
会話のターンごとに、 Dialogflow CX は設計時のハンドブック データ と実行時の会話データを使用して、 トークン上限内で LLM プロンプトを作成します。 このプロンプトの内容は次のとおりです。ヘッダーは説明用であり、必ずしもプロンプトの一部ではありません。
# INTERNAL_SYSTEM_PROMPT
<you cannot see or edit this>
# INTERNAL_SYSTEM_EXAMPLES
<you cannot see or edit this>
# AVAILABLE_TOOLS_TO_CURRENT_PLAYBOOK
<tool names and schemas, for example...>
## Tool: my_datastore
description: blah
input: blah
output: blah
## Tool: some_other_custom_tool
description: blah
input: blah
output: blah
# PLAYBOOK
<verbatim Goal and Instructions that you provide in the console>
# PLAYBOOK_EXAMPLES
<as many Examples for the current Playbook as can fit in the prompt>
## Example 1
## Example 2
..
..
..
## Example N (up to the input token limit)
# CURRENT_CONVERSATION
<the conversation up to this point w/ some caveats...>
* Caveat 1: If there was a transition from Playbook A -> Playbook B, the
Conversation that happened in Playbook A is summarized and provided as context
* Caveat 2: If there was a transition from Flow A -> Playbook A, the
Conversation that happened prior to the entry of Playbook A is summarized and
provided to the Playbook
ハンドブックの種類
ハンドブックを作成するときに、タスク ハンドブックまたはルーティン ハンドブックのいずれかを選択します。
タスク ハンドブック
タスク ハンドブック は、元のハンドブック タイプです。複雑なタスクを再利用可能な小さなサブタスクに分割するために使用されます。 構成的な会話ステージのモデリングに使用されます。各ステージは、入力パラメータと出力パラメータを通じて通信します。
次の図は、タスク ハンドブック(呼び出し元)が別のタスク ハンドブック(呼び出し先)を呼び出す様子を示しています。

- 呼び出し元が呼び出し先を開始します。
- 呼び出し元は、必要な入力パラメータを呼び出し先に提供します。
- 呼び出し先はこの情報を処理し、指定された関数を実行して、出力パラメータを返します。
- 呼び出し元は呼び出し先からパラメータを受け取ります。
ルーティン ハンドブックまたはタスク ハンドブックは別のタスク ハンドブックを呼び出すことができますが、タスク ハンドブックは別のルーティン ハンドブックを呼び出すことはできません。
ルーティン ハンドブック
ルーティン ハンドブック は、新しいタイプのハンドブックです。会話の各ステージを順にモデル化するために使用されます。各ステージはそれ自体で完結、独立しています。 タスク ハンドブックを呼び出して、大きなタスクを小さなサブタスクに分解できます。また、他のルーティン ハンドブックやフローに遷移することもできます。
次の図は、ルーティン ハンドブック(A)から別のルーティン ハンドブック(B)に遷移し、フロー(C)に遷移する様子を示しています。

- ルーティン ハンドブック A は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
- ルーティン ハンドブック A が終了し、ルーティン ハンドブック B に遷移します。
- ルーティン ハンドブック B は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
- ルーティン ハンドブック B が終了し、フロー C に遷移します。
- フロー C はセッション パラメータの読み取りと書き込みができます。
ルーティン ハンドブックが別のルーティン ハンドブックやフローに遷移しない場合、セッションは最後にアクティブだったフローに戻るか、フローがない場合は終了します。
ルーティン ハンドブックのパラメータ管理の動作は次のとおりです。
- ルーティン ハンドブックに入ると、入力パラメータには同じ名前のセッション パラメータと同じ値が割り当てられます。
- ルーティン ハンドブックが終了すると、出力パラメータの値が生成され、同じ名前のセッション パラメータに割り当てられます。
ハンドブックの種類の比較
| カテゴリ | タスク ハンドブック | ルーティン ハンドブック |
|---|---|---|
| レイテンシ | タスク ハンドブックが別のタスク ハンドブックを呼び出すたびに、LLM 呼び出しが発生します。1 つの会話ターンでタスク ハンドブックのチェーンが長いと、レイテンシが増加する可能性があります。 | 一連の遷移における各ルーティン ハンドブックは 1 つの会話ターン内で発生するため、LLM 呼び出しは 1 回のみで、レイテンシが改善されます。 |
| パラメータの再生成 | タスク ハンドブックが別のタスク ハンドブックを呼び出す場合は、パラメータ値を再生成する必要があります。タスク ハンドブックのチェーンが長い場合、この再生成によりコンテキストが失われる可能性があります。 | ルーティン ハンドブックはパラメータにセッション ストレージを使用するため、より信頼性の高いコンテキストが作成されます。 |
| セッション パラメータの統合 | タスク ハンドブックはセッション パラメータと適切に連携せず、代わりに定義する入力パラメータと戻りパラメータが必要です。 | ルーティン ハンドブックはセッション パラメータと適切に連携します。 |
| 再利用性 | すべてのタスク ハンドブックには固定の親子関係があるため、タスクは密結合されます。 | ルーティン ハンドブックは互いに独立して定義できます。 |
デフォルトのハンドブック
会話エージェント コンソールで生成エージェントを作成すると、デフォルトの生成ハンドブック が自動的に作成されます。
デフォルトのハンドブックは会話の出発点となるため、他のハンドブックとは重要な違いがいくつかあります。
- デフォルトのハンドブックは、先行する会話ターンのサマリーを受け取りません。
- デフォルトのハンドブックでは、入力パラメータを定義することも受信することもできません。
ハンドブックを作成する
ハンドブックを作成する手順は次のとおりです。
- コンソールの左側のナビゲーションにあるハンドブック アイコンをクリックします。
- [新規作成] ボタンをクリックします。
- [ルーティン] または [タスク] のハンドブック タイプを選択します。
- ハンドブックのデータを入力します。
AI 生成を使用してハンドブックを作成する
ハンドブックを作成すると、生成 AI のパネルが開きます。 これを使用して、ハンドブックのデータを生成できます。
ハンドブックをインポートおよびエクスポートする
会話エージェント コンソールを使用してハンドブックを作成したら、これらのハンドブックをエクスポートして別のエージェントで使用できます。 ハンドブックをエクスポートする手順は次のとおりです。
- ハンドブックのリストに移動します。
- エクスポートするハンドブックのエクスポート ボタンをクリックします。
- エクスポート オプションを選択します。
- [エクスポート] をクリックします。
以前にエクスポートしたハンドブックをインポートする手順は次のとおりです。
- ハンドブックのリストに移動します。
- [インポート] をクリックします。
- インポート オプションを選択します。
- [インポート] をクリックします。