各ハンドブックには 1 つ以上の例が必要です。これらの例は、エンドユーザーとハンドブック間のサンプル会話で、エージェントによって実行される会話やアクションが含まれます。これらは実質的に、LLM の数ショットのプロンプトの例です。
コンソールには、アクションを入力するためのインターフェースがあります。
多言語エージェント
エージェントで複数の言語を処理する場合は、例で各言語を使用する必要があります。
入力サマリーと出力サマリーの例
ハンドブックでは、入力パラメータと出力パラメータに加えて、他のハンドブックと情報を交換するために、入力サマリーを受け取り、出力サマリーを出力できます。サマリーは、ハンドブック間で抽象的なコンテキスト情報を渡すことに役立ちますが、パラメータは、ハンドブック間で構造化され明確に定義されたフィールドを渡す場合に役立ちます。パラメータは、フローとハンドブック間でデータを交換する唯一の方法です。
関連する入力サマリーを例に追加して、実行時に入力サマリーに基づいてアクションを調整するようにハンドブックの条件を設定します。会話の例についての関連する正確な詳細を含む出力サマリーを追加して、何の詳細が要約するために重要であるかをハンドブックに示します。
例の状態
会話の特定の時点で、プレイブックは次のいずれかの状態になります。
OK
: ハンドブックは目標を達成し、コントロールが親ハンドブックに移管されます。CANCELLED
: ユーザーが、ハンドブックに割り当てられた目標で続行させないことを決定しました。これで、コントロールが親ハンドブックに移管されます。親プレイブックが CX フローの場合、ユーザー入力のインテントは、フローの実行前に検出されます。FAILED
: なんらかのエラー(ツールから 500 エラーが返されるなど)のため、ハンドブックは目標で続行できません。セッションは、失敗のステータスで終了します。EndInteraction というメッセージがレスポンスに追加されます。ESCALATED
: ハンドブックは目標を達成できないと判断し、状況を人間にエスカレーションする必要があると判断しました。セッションは、エスカレーションのステータスで終了します。 EndInteraction というメッセージがレスポンスに追加されます。PENDING
: ハンドブック内で会話が継続中です。
最上位の例とそのハンドブックの呼び出しは、参照しているハンドブックに対応する状態で示される必要があります。
選択戦略
選択戦略の設定では、LLM に送信されるハンドブックのプロンプトに例を含めるかどうかを制御します。次のオプションが用意されています。
動的に選択: 現在の会話のコンテキストとの関連性に基づいて、例が条件付きで含まれます。プロンプトがトークンの上限に近い場合は、例を省略できます。
常に選択: 会話のコンテキストに関係なく、例が常に含まれます。プロンプトがトークンの上限に近い場合は、例を省略できます。
選択しない: 例がプロンプトに含まれることはありません。この例は、ハンドブックのパフォーマンスに何の影響も与えません。この設定は、テストのために一時的に例を除外する場合に便利です。
アクションを追加
ハンドブック内で提供される例は、一連のアクションで構成されます。これらのアクションの組み合わせはさまざまですが、主にユーザーとプレイブックの間のやり取りと、ユーザーのクエリや要件を満たすためにその間に行われるアクションを表します。
例にアクションを追加する方法は 2 つあります。
- アクションを手動で追加するには、右ペインの下部にある [+] ボタンをクリックするか、既存のアクションの上にポインタを置いた状態で [アクションを追加] ボタンをクリックします。これらのオプションは、[+ 例] オプションをクリックして新しい例を作成するとき、または既存の例を編集するときに使用できます。
- 既存のプレイブックの指示に基づいてアクションを自動的に生成するには、右ペインの下部にある [ユーザー入力を入力] フィールドにユーザー入力を入力します。このオプションは、例を作成または編集するときに使用できます。または、右側の [ハンドブックをプレビュー] ペインでランタイムにハンドブックをテストするときに、このオプションを使用することもできます。[プレブックをプレビュー] ペインから例にアクションを保存するには、[プレブックをプレビュー] ペインの左側にある呼び出しリストからプレイブック呼び出しを選択してから [例を保存] をクリックします。
必ず自動生成されたアクションの正確性を確認し、必要に応じて編集します。これは、例がほとんどない、またはまったくないプレイブックでは特に重要です。
プレイブックでは、次のタイプのアクションがサポートされています。
ハンドブックの回答
ユーザーのクエリに対するハンドブックのレスポンス。
ユーザー入力
ユーザーのクエリ。
ツールの使用
これは、ユーザーのクエリを満たすために必要な追加情報を取得するためのツール呼び出しです。このアクションでは、次の詳細を指定する必要があります。
ツール: 呼び出すツールの名前。
Action: 呼び出す OpenAPI ツールのオペレーションの名前。データストア ツールと関数ツールの場合、アクション名はツール名と同じです。
ツールの入力: ツール呼び出しに含める入力。通常は、ユーザーとの以前の会話ターンから派生します。
Open API ツールの場合、
POST
、PUT
、PATCH
のメソッドタイプにrequestBody
JSON が必要です。createPet アクションの Open API ツールの
requestBody
入力のサンプル:{ "id": 1, "name": "Luna" }
データストア ツールのサンプル
requestBody
。クエリは必須で、他のフィールドは省略可能です。{ "query": "Where is my nearest store?", "filter": "country: ANY(\"United States\")", "userMetadata": { "userCity": "San Francisco", }, "fallback": "We don't have any stores in your area." }
ツールの出力: ツールの呼び出しのレスポンス。これは、ツールから指定された入力に対する有効な JSON レスポンスです。Open API ツールの場合は、文字列エラー(「404 見つかりません」など)の場合もあります。
listPets アクションの Open API ツール出力のサンプル:
{ "pets": [ { "id": 1, "name": "Luna" }, { "id": 2, "name": "Charlie" }] }
データストア ツールの出力例:
{ "answer": "Here's the address to your nearest store ...", "snippets": [ { "title": "San Francisco Downtown", "uri": "https://www.example.com/San_Francisco_Downtown", "text": "Address for San Francisco Downtown .." } ] }
ハンドブックをフェイルセーフにするため、ツールの呼び出しが失敗した場合にハンドブックがどのように対応すべきかの例も記載します。Open API ツールの呼び出しの失敗は、ツール出力でエラー文字列(「404 見つかりません」)として表されます。データストア ツールの場合、fallback
入力を使用して、要約された回答がない場合の応答方法を指定できます。
データストア ツールでプレイブック レスポンスに URI を含める場合は、プレイブックで応答する URI を含む例を追加します。この URI がデータストア ツールから取得される場合、データストア ツールの出力には、プレイブック レスポンスの URI と一致する URI が含まれる必要があります。fallback
は、プレイブック レスポンスに URI を含めるようにデータストア ツールの回答を言い換える LLM プレイブックの機能を無効にするため、このシナリオでは使用できません。
ツール使用アクションを含む例は非常に詳細になり、入力トークンの上限の消費量が増加する可能性があります。トークンを効率的に使用するには、ツールの出力が簡潔で、プレイブックの目標に関連する情報が含まれていることを確認してください。データストア ツールの場合、入力トークンの消費量が増える可能性があるため、例からスニペットを削除することを検討してください。
ハンドブックの呼び出し
このアクションは、ユーザーのクエリを満たすために、ハンドブックが別のタスク ハンドブックを呼び出す必要がある場合に使用されます。このアクションでは、次の詳細を指定する必要があります。
- ハンドブック: 呼び出すハンドブックの名前。
- ハンドブック呼び出しの入力サマリー: 呼び出されるハンドブックに役立つ、先行する会話の関連部分のサマリー。
- 入力パラメータ: プレイブックに渡す入力パラメータ。
- ハンドブック呼び出しの出力の概要: ハンドブックの目標が完了したときに生成される内容の概要。
- 出力パラメータ: 出力パラメータ。プレイブックの目標が達成されたときにプレイブックによって生成されます。
ハンドブックの移行
ハンドブックの移行アクションは、ルーティン ハンドブックが終了してターゲット ルーティン ハンドブックに移行することを決定したことを示すターミナル アクション(他のアクションが続かない)です。このアクションはハンドブックが終了することを示すため、ハンドブックの出力パラメータを例のハンドブック出力に追加します。
フローの呼び出し
このアクションは、タスク ハンドブックでフローを呼び出す必要がある場合に使用されます。このアクションでは、次の詳細を指定する必要があります。
- フロー: 呼び出すフローの名前。
- フロー入力パラメータ: フローに渡す入力パラメータ。
- フローの戻りパラメータ: フローから返される出力パラメータ。
フローの切り替え
フロー遷移アクションは、ルーティン ハンドブックが終了してターゲット フローに遷移することを決定したことを示すターミナル アクション(他のアクションの後に続かない)です。このアクションはハンドブックが終了することを示すため、ハンドブックの出力パラメータを例のハンドブック出力に追加します。