ハンドブックでは、明示的に定義されたパラメータを使用して、コンテキスト情報を受け入れ、出力できます。パラメーターは、ユーザーの選択やアクションの結果など、会話に関する情報を保存するために使用されます。これらのパラメータの値は、ハンドブックとフロー間で渡すことができます。
パラメータ宣言
Agent Builder コンソールを使用する場合は、エージェント エディタ ページでパラメータを定義できます。
Dialogflow CX コンソールを使用する場合、パラメータは、ハンドブックを作成すると、[Parameters] タブを使用してハンドブックごとに定義されます。
パラメータには、名前、説明、および次のいずれかのタイプがあります。
- 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
に渡します。ハンドブックは、パラメータがどのように使用されるかべきを推測するために、明確なパラメータ値を持つ例に依存しています。