ハンドブックでは、明示的に定義されたパラメータを使用して、コンテキスト情報を受け入れ、出力できます。 パラメータは、ユーザーの選択やアクションの結果など、会話に関する情報を保存するために使用されます。これらのパラメータの値は、 ハンドブックと フロー間で渡すことができます。
パラメータ宣言
入力(読み取り)パラメータ と出力(書き込み)パラメータを定義できます。
パラメータには、名前、説明、および次のいずれかのタイプがあります。
- String
- 数値
- ブール値
- ツール固有のパラメータ タイプ
パラメータがリストかどうかを指定することもできます。
入力(読み取り)パラメータ
プレイブックごとに、 入力パラメータ(読み取りパラメータとも呼ばれます) を定義できます。これにより、プレイブックでフローや他のプレイブックから渡された値を使用できます。たとえば、ハンドブックがユーザーの希望する名前をパラメータとして受け取り、それを使用してユーザーに個人的に感謝を伝えることができます。また、ハンドブックが注文 ID をパラメータとして受け取り、ツールでそれを使用して注文の詳細を取得することもできます。
入力パラメータは、ハンドブックごとに定義されます。デフォルトでは、ハンドブックに 他の Dialogflow CX コンソール パラメータ タイプ は表示されません。 フローがハンドブックに遷移するとき、ターゲットのハンドブックに同じ名前の入力パラメータがあると、ページ パラメータとセッション パラメータはハンドブックに伝播されます。 遷移中にフローからハンドブックに情報を伝えるには、遷移前に存在するセッション パラメータかページ パラメータと同じ名前のハンドブック入力パラメータを定義します。
入力パラメータ値が、アクションに与える影響を制御するサンプルを作成します。たとえば、入力パラメータがエージェントによるユーザーの参照方法に影響を与える必要がある場合は、パラメータの値を定義するサンプルを作成し、サンプル内の発話アクションで同じ値を使用します。詳しくは、 パラメータを渡すをご覧ください。
出力(書き込み、戻り)パラメータ
ハンドブックごとに、 出力パラメータ(書き込みパラメータ 、戻りパラメータとも呼ばれます)を定義できます。 これにより、ハンドブックから 他のフローとハンドブックが使用する情報を出力できます。 たとえば、ハンドブックがユーザーから 注文番号を収集し、それを出力パラメータを通じて出力する場合や、ハンドブックで ツール を使用してフライトを予約し、その確認番号を出力パラメータを通じて出力する場合があります。
ハンドブックが、どのように各出力パラメータの値を決定するかを制御するサンプルを作成します。たとえば、確認番号を表す出力パラメータが、ツールを使用した出力から値を取得する必要がある場合は、ツールを使用した出力がハンドブックの出力パラメータの値と一致するサンプルを作成します。
パラメータを送る
ハンドブックは、フローとは異なり、特定の構文によるパラメータ値の挿入はサポートしていません。その代わりに、ハンドブックでは、手順と 数ショットのプロンプトの例 を使用して、パラメータ値の使用方法と、パラメータ値を指定するときに値を 決定する方法を定めます。
ルーティン ハンドブックからフローへ
ルーティン ハンドブックからフローにパラメータを渡すには:
- ルーティン ハンドブックの書き込みパラメータを定義します。 これらのパラメータはセッション パラメータになります。
- フローでセッション パラメータを使用できます。
- 手順と例にパラメータの使用方法を含めます。
フローからルーティン ハンドブックへ
フローからルーティン ハンドブックにパラメータを渡すには:
- フローでセッション パラメータを書き込みます。
- 同じ名前のルーティン ハンドブックの読み取りパラメータを定義します。
- 手順と例にパラメータの使用方法を含めます。
タスク ハンドブックからフローへ
タスク ハンドブックからフローにパラメータを渡すには:
- フローの設定で、同じ名前の入力パラメータ を定義します。
- 手順と例にパラメータの使用方法を含めます。
フローからタスク ハンドブックへ
フローから親タスク ハンドブックにパラメータを渡すには:
- フローの設定で、戻りパラメータ を定義します。
- 手順と例にパラメータの使用方法を含めます。
フローから子タスク ハンドブックにパラメータを渡すには:
- フロー内のセッション パラメータと同じ名前のタスク入力パラメータを定義します。
- 手順と例にパラメータの使用方法を含めます。
ルーティン ハンドブックからタスク ハンドブックへ
ルーティン ハンドブックからタスク ハンドブックにパラメータを渡すには:
- 同じ名前のタスク ハンドブックの入力パラメータを定義します。
- 手順と例にパラメータの使用方法を含めます。
ツールを含むサンプル
次のタスク ハンドブックを使用して、イベント チケットの販売用に設計されたエージェントを検討します。
Ticket sales APIという名前のツールを使用して注文を行うTicket orderingという名前のハンドブック。- このハンドブックは、型が
numberで名前がevent_idの入力パラメータを受け入れます。 Ticket sales APIツールは、event_idを含むリクエストを想定しています。
- このハンドブックは、型が
Event selectionという名前のハンドブック。ユーザーは、イベントを選択し、event_idをパラメータとしてTicket orderingに転送しチケットを購入します。
この例では、Event selection から Ticket ordering、Ticket ordering から Ticket sales API に event_id が確実に渡されるようにするために、いくつかのサンプルが必要です。
Ticket ordering ハンドブックには、次のような複数のサンプルを含める必要があります。
- 入力パラメータ
event_idには、それぞれのサンプルで異なる現実的な値を指定します。 - リクエストの本文に、入力パラメータで指定されたものと同じ現実的な
event_id値を含むツール使用アクションを含めます。
Event selection ハンドブックには、次のような複数のサンプルを含める必要があります。
- ユーザーが各サンプルで異なる現実的な
event_idを持つイベントを選択するユーザーの発話を含めます。 - ユーザーの選択によって決定されたものと同じ現実的な
event_idをevent_idパラメータに設定するTicket orderingのハンドブック呼び出しを含めます。
サンプルを追加するだけでなく、手順、目標、ツールの詳細に、パラメータをどのように使用すべきかを説明する具体的な指示を追加してみてください。たとえば、ハンドブック Ticket ordering には次の手順があります。
- Use parameter event_id to send a buy_tickets request with ${TOOL: Ticket sales API}
説明されているサンプルと指示が存在すると、Event selection ハンドブックがユーザーの選択に基づいて event_id を正しく決定し、それを event_id という名前の入力パラメータとして Ticket ordering playbook に渡します。次に、Ticket ordering は、リクエストの本文内の同じ event_id を Ticket sales API に渡します。ハンドブックは、パラメータがどのように使用されるかべきを推測するために、明確なパラメータ値を持つ例に依存しています。