ハンドブックは、生成エージェントの基本的な構成要素です。通常、生成エージェントには多数のハンドブックがあり、各ハンドブックは特定のタスクを処理するように定義されています。ハンドブックのデータは LLM に提供されるため、LLM には質問に回答し、タスクを実行するために必要な情報が含まれています。 各ハンドブックは、情報を提供したり、外部サービスにクエリを送信したり、サブタスクを処理するために、会話処理をフローや別のハンドブックに任せることができます。
制限事項
次の制限が適用されます。
- ハンドブックを使用するエージェントは、デフォルトの開始フローの Default Welcome Intent ルートから通話コンパニオン SMS を送信することはできませんが、標準フローで通話コンパニオン SMS オプションを有効にできます。
- ハンドブックは、電話システムからの DTMF 入力をサポートしていません。
言語サポート
言語リファレンスのプレイブック列をご覧ください。プレイブック用にマークされた言語は、gemini-2.0-flash
モデルと gemini-1.5-flash-002
モデルで品質がテストされています。
英語以外の言語を使用する場合:
- ほとんどの場合、プレイブックの手順には英語を使用します。特定の言語やユースケースでは、ターゲット言語で指示を追加すると、レスポンスがわずかに改善されることがあります。
- プレイブックの手順で言語サポートを宣言します。たとえば、「常にフランス語で回答する」などです。
- 例をターゲット言語で定義します。
モデルサポート
プレイブックで使用する 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 |
gemini-1.5-flash-002 | Gemini 1.5 Flash | レガシー |
リージョン サポート
プレイブックは、次のリージョンでサポートされています。
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
ハンドブックの種類
ハンドブックを作成するときに、タスク ハンドブックまたはルーティン ハンドブックのいずれかを選択します。
タスク ハンドブック
タスク ハンドブックは、元のタイプのハンドブックです。これらは、複雑なタスクを再利用可能な小さなサブタスクに分割するために使用されます。これらは、各ステージが入力パラメータと出力パラメータを介して通信する構成会話ステージのモデリングに使用されます。
次の図は、別のタスク プレイブック(呼び出し先)を呼び出すタスク プレイブック(呼び出し元)を示しています。
- 呼び出し元が呼び出し先を開始します。
- 呼び出し元は、呼び出し先に必要な入力パラメータを提供します。
- 呼び出し先はこの情報を処理し、指定された関数を実行して、出力パラメータを返します。
- 呼び出し元は呼び出し先からパラメータを受け取ります。
ルーティン ハンドブックまたはタスク ハンドブックは別のタスク ハンドブックを呼び出すことができますが、タスク ハンドブックは別のルーティン ハンドブックを呼び出すことはできません。
ルーティン ハンドブック
ルーティン プレイブックは、新しいタイプのプレイブックです。これらは、各ステージが完了して独立しているシーケンシャルな会話ステージのモデリングに使用されます。タスク プレイブックを呼び出して、大きなタスクを小さなサブタスクに分解したり、他のルーティン プレイブックやフローに移行したりできます。
次の図は、ルーティン プレイブック(A)から別のルーティン プレイブック(B)に移行し、フロー(C)に移行する様子を示しています。
- ルーティン ハンドブック A は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
- ルーティン ハンドブック A が終了し、ルーティン ハンドブック B に移行します。
- ルーティン ハンドブック B は、開始時にセッション パラメータを読み取り、終了直前にセッション パラメータを書き込むことができます。
- ルーティン ハンドブック B が終了し、フロー C に移行します。
- フロー C はセッション パラメータの読み取りと書き込みを行うことができます。
ルーティン ハンドブックが別のルーティン ハンドブックまたはフローに移行しない場合、セッションは最後にアクティブだったフローに戻るか、アクティブなフローがない場合は終了します。
ルーティン ハンドブックのパラメータ管理の動作は次のとおりです。
- ルーティン ハンドブックが開始されると、その入力パラメータには、同じ名前のセッション パラメータと同等の値が割り当てられます。
- ルーティン ハンドブックが終了すると、出力パラメータの値が生成され、同じ名前のセッション パラメータに割り当てられます。
Playbook のタイプを比較する
カテゴリ | タスク ハンドブック | ルーティン ハンドブック |
---|---|---|
レイテンシ | タスク ハンドブックが別のタスク ハンドブックを呼び出すたびに、LLM 呼び出しが発生します。1 つの会話ターンでタスク プレイブックのチェーンが長い場合、レイテンシが増加する可能性があります。 | 一連の移行における各ルーティン ハンドブックは 1 つの会話ターン内で発生するため、LLM 呼び出しは 1 回のみで、レイテンシが改善されます。 |
パラメータの再生成 | タスク ハンドブックが別のタスク ハンドブックを呼び出す場合、パラメータ値を再生成する必要があります。タスク プレイブックのチェーンが長い場合、この再生成によってコンテキストが失われる可能性があります。 | ルーティン ハンドブックでは、パラメータにセッション ストレージを使用するため、より信頼性の高いコンテキストが作成されます。 |
セッション パラメータの統合 | タスク ハンドブックはセッション パラメータと適切に連携せず、代わりに、入力パラメータと戻りパラメータを定義する必要があります。 | ルーティン ハンドブックはセッション パラメータと適切に連携します。 |
再利用性 | すべてのタスク プレイブックには固定の親子関係があるため、タスクは密結合されています。 | ルーティン ハンドブックは、互いに独立して定義できます。 |
デフォルトの Playbook
Conversational Agents コンソールを使用して生成エージェントを作成すると、デフォルトの生成ハンドブックが自動的に作成されます。
デフォルトのハンドブックは会話の出発点となるため、他のハンドブックとは重要な違いがいくつかあります。
- デフォルトのハンドブックは、先行する会話ターンのサマリーを受け取りません。
- デフォルトのハンドブックでは、入力パラメータを定義することも受信することもできません。
ハンドブックを作成する
ハンドブックを作成するには:
- コンソールの左側のナビゲーションにあるプレイブック アイコンをクリックします。
- [Create new] ボタンをクリックします。
- [ルーティン] または [タスク] のいずれかのハンドブック タイプを選択します。
- ハンドブックのデータを提供します。
AI 生成を使用してプレイブックを作成する
ハンドブックを作成すると、生成 AI パネルが開きます。これを使用して、ハンドブックのデータを生成できます。
プレイブックのインポートとエクスポート
Conversational Agents コンソールを使用してプレイブックを作成したら、別のエージェントで使用するためにこれらのプレイブックをエクスポートできます。ハンドブックをエクスポートするには:
- プレイブックのリストに移動します。
- エクスポートするプレイブックの [エクスポート] ボタンをクリックします。
- エクスポート オプションを選択します。
- [エクスポート] をクリックします。
以前にエクスポートしたハンドブックをインポートするには:
- プレイブックのリストに移動します。
- [インポート] をクリックします。
- インポート オプションを選択します。
- [インポート] をクリックします。