ハンドブック

ハンドブックは、生成エージェントの基本的な構成要素です。 通常、生成エージェントには多数のハンドブックがあり、各ハンドブックは特定のタスクを処理するように定義されています。 ハンドブックのデータは 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

リージョン サポート

ハンドブックは次の リージョンでサポートされています。

  • global
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • asia-northeast1
  • australia-southeast1
  • eu(マルチリージョン)
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • northamerica-northeast1
  • us(マルチリージョン)
  • us-central1
  • us-east1
  • us-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

ハンドブックの種類

ハンドブックを作成するときに、タスク ハンドブックまたはルーティン ハンドブックのいずれかを選択します。

タスク ハンドブック

タスク ハンドブック は、元のタイプのハンドブックです。複雑なタスクを再利用可能な小さなサブタスクに分割するために使用されます。 各ステージが入力パラメータと出力パラメータを介して通信する、構成可能な会話ステージ のモデリングに使用されます。

次の図は、別のタスク ハンドブック(呼び出し先)を呼び出すタスク ハンドブック(呼び出し元)を示しています。

1 つのタスク ハンドブックが別のタスク ハンドブックを呼び出す

  1. 呼び出し元が呼び出し先を開始します。
  2. 呼び出し元は、必要な入力パラメータを呼び出し先に提供します。
  3. 呼び出し先はこの情報を処理し、指定された関数を実行して、出力パラメータを返します。
  4. 呼び出し元は呼び出し先からパラメータを受け取ります。

ルーティン ハンドブックまたはタスク ハンドブックは別のタスク ハンドブックを呼び出すことができますが、タスク ハンドブックは別のルーティン ハンドブックを呼び出すことはできません。

ルーティン ハンドブック

ルーティン ハンドブック は、新しいタイプのハンドブックです。各ステージが完全で独立している、順次会話ステージ のモデリングに使用されます。 タスク ハンドブックを呼び出して、大きなタスクを小さなサブタスクに分解したり、他のルーティン ハンドブックやフローに移行したりできます。

次の図は、ルーティン ハンドブック(A)から別のルーティン ハンドブック(B)に移行し、フロー(C)に移行する様子を示しています。

1 つのルーティン ハンドブックが別のルーティン ハンドブックを呼び出す

  1. ルーティン ハンドブック A は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
  2. ルーティン ハンドブック A が終了し、ルーティン ハンドブック B に移行します。
  3. ルーティン ハンドブック B は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
  4. ルーティン ハンドブック B が終了し、フロー C に移行します。
  5. フロー C は、セッション パラメータの読み取りと書き込みを行うことができます。

ルーティン ハンドブックが別のルーティン ハンドブックまたはフローに移行しない場合、セッションは最後にアクティブだったフローに戻ります。アクティブなフローがない場合は終了します。

ルーティン ハンドブックには、次のパラメータ管理動作があります。

  • ルーティン ハンドブックに入ると、その入力パラメータには、同じ名前のセッション パラメータと同等の値が割り当てられます。
  • ルーティン ハンドブックが終了すると、出力パラメータの値が生成され、同じ名前のセッション パラメータに割り当てられます。

ハンドブックの種類の比較

カテゴリ タスク ハンドブック ルーティン ハンドブック
レイテンシ タスク ハンドブックが別のタスク ハンドブックを呼び出すたびに、LLM 呼び出しが発生します。1 つの会話ターンでタスク ハンドブックのチェーンが長い場合、レイテンシが増加する可能性があります。 一連の遷移における各ルーティン ハンドブックは 1 回の会話ターン内で発生するため、LLM 呼び出しは 1 回のみで、レイテンシが改善されます。
パラメータの再生成 タスク ハンドブックが別のタスク ハンドブックを呼び出す場合は、パラメータ値を再生成する必要があります。タスク ハンドブックのチェーンが長い場合、この再生成によってコンテキストが失われる可能性があります。 ルーティン ハンドブックはパラメータにセッション ストレージを使用するため、より信頼性の高いコンテキストが作成されます。
セッション パラメータの統合 タスク ハンドブックはセッション パラメータと適切に連携せず、入力パラメータと戻りパラメータを定義する必要があります。 ルーティン ハンドブックはセッション パラメータと適切に連携します。
再利用性 すべてのタスク ハンドブックには固定の親子関係があるため、タスクは密結合されます。 ルーティン ハンドブックは相互に独立して定義できます。

デフォルトのハンドブック

会話エージェント コンソールで生成エージェントを作成すると、デフォルトの生成ハンドブック が自動的に作成されます。

デフォルトのハンドブックは会話の出発点となるため、他のハンドブックとは重要な違いがいくつかあります。

  • デフォルトのハンドブックは、先行する会話ターンのサマリーを受け取りません。
  • デフォルトのハンドブックでは、入力パラメータを定義することも受信することもできません。

ハンドブックを作成する

ハンドブックを作成するには:

  1. コンソールの左側のナビゲーションにあるハンドブック アイコンをクリックします。
  2. [新規作成] ボタンをクリックします。
  3. [ルーティン] または [タスク] のハンドブック タイプを選択します。
  4. ハンドブックのデータを入力します。

AI 生成を使用してハンドブックを作成する

ハンドブックを作成すると、生成 AI のパネルが開きます。 これを使用して、ハンドブックのデータを生成できます。

ハンドブックをインポートおよびエクスポートする

会話エージェント コンソールを使用してハンドブックを作成したら、別のエージェントで使用するためにこれらのハンドブックをエクスポートできます。 ハンドブックをエクスポートするには:

  1. ハンドブックのリストに移動します。
  2. エクスポートするハンドブックのエクスポート ボタンをクリックします。
  3. エクスポート オプションを選択します。
  4. [エクスポート] をクリックします。

以前にエクスポートしたハンドブックをインポートするには:

  1. ハンドブックのリストに移動します。
  2. [インポート] をクリックします。
  3. インポート オプションを選択します。
  4. [インポート] をクリックします。