各ハンドブックには 1 つ以上の例が必要です。 これらの例は、エンドユーザーとハンドブック間のサンプル会話で、エージェントによって実行される会話やアクションが含まれます。 これらは実質的に LLM の数ショットのプロンプトの例 です。
コンソールには、アクションを入力するためのインターフェースがあります。
多言語エージェント
エージェントで複数の言語を処理する場合は、例で各言語を使用する必要があります。
入力サマリーと出力サマリーの例
ハンドブックでは、入力パラメータと出力パラメータに加えて、他のハンドブックと情報を交換するために、入力サマリーを受け取り、出力サマリーを出力できます。サマリーは、ハンドブック間で抽象的なコンテキスト情報を渡すことに役立ちますが、パラメータは、ハンドブック間で構造化され明確に定義されたフィールドを渡す場合に役立ちます。フローとプレイブック間でデータを交換する唯一の方法はパラメータです。
関連する入力サマリーを例に追加して、実行時に入力サマリーに基づいてアクションを調整するようにハンドブックの条件を設定します。会話の例についての関連する正確な詳細を含む出力サマリーを追加して、何の詳細が要約するために重要であるかをハンドブックに示します。
例の状態
会話の特定の時点で、ハンドブックは次のいずれかの状態になります。
OK: ハンドブックは目標を達成し、コントロールが親ハンドブックに移管されます。CANCELLED: ユーザーが、ハンドブックに割り当てられた目標で続行しないことを決定しました。これで、コントロールが親ハンドブックに移管されます。親ハンドブックが CX フローの場合、ユーザー入力のインテントは、フローの実行前に検出されます。FAILED: なんらかのエラー(ツールから 500 エラーが返されるなど)のため、プレイブックは目標で続行できません。セッションは、失敗のステータスで終了します。EndInteraction EndInteractionESCALATED: ハンドブックは目標を達成できないと判断し、状況を人間にエスカレーションする必要があると判断しました。セッションは、エスカレーションのステータスで終了します。 EndInteraction というメッセージがレスポンスに追加されます。PENDING: 会話はハンドブック内で継続しています。
最上位の例とそのハンドブックの呼び出しは、参照しているハンドブックに対応する状態で示される必要があります。
選択戦略
選択戦略の設定では、LLM に送信されるハンドブックのプロンプトに例を含めるかどうかを制御します。 次のオプションが用意されています。
動的に選択: 現在の会話コンテキストとの関連性に応じて条件付きで例を含めます。プロンプトがトークンの上限に近づいている場合は、例が省略されることもあります。
常に選択: 会話のコンテキストに関係なく、例を常に含めます。プロンプトがトークンの上限に近づいている場合は、例が省略されることもあります。
選択しない: 例がプロンプトに含まれることはありません。 例はハンドブックのパフォーマンスに影響しません。この設定は、テストのために例を一時的に除外する場合に便利です。
アクションを追加
ハンドブック内で提供される例は、一連のアクションで構成されます。 これらのアクションの組み合わせはさまざまですが、主にユーザーとハンドブックのやり取りと、ユーザーのクエリや要件を満たすために実行されるアクションを示しています。
例にアクションを追加する方法は 2 つあります。
- アクションを手動で追加するには、右ペインの下部にある [+] ボタンをクリックするか、既存のアクションの上にポインタを置いた状態で [アクションを追加] ボタンをクリックします。 これらのオプションは、新しい例を作成する場合 に [+ 例] オプションをクリックするか、既存の例を編集する場合に使用できます。
- 既存のハンドブックの指示に基づいてアクションを自動的に生成するには、右ペインの下部にある [ユーザー入力を入力] フィールドにユーザー入力を入力します。 このオプションは、例を作成または編集するときに使用できます。 または、右側の [ハンドブックをプレビュー] ペインでハンドブックをテストするときに使用することもできます。 [ハンドブックをプレビュー] ペインから例にアクションを保存するには、[ハンドブックをプレビュー] ペインの左側にある呼び出しリストからハンドブックの呼び出しを選択してから [例を保存] をクリックします。
必ず自動生成されたアクションの正確性を確認し、必要に応じて編集します。 これは、例が少ないハンドブックや例がないハンドブックでは特に重要です。
ハンドブックでは、次のタイプのアクションがサポートされています。
ハンドブックのレスポンス
ユーザー クエリに対するハンドブックのレスポンス。
ユーザー入力
ユーザー クエリ。
ツールの使用
これは、ユーザーのクエリを満たすために必要な追加情報を取得するための ツール 呼び出しです。 このアクションでは、次の詳細を指定する必要があります。
ツール: 呼び出すツールの名前。
アクション: 呼び出す OpenAPI ツール のオペレーションの名前。 データストア ツール と 関数ツールの 場合は、アクション名がツール名と同じになります。
ツールの入力: ツール呼び出しに含める入力。 通常は、ユーザーとの以前の会話ターンから派生します。
Open API ツールの場合は、
requestBodyJSON がPOST、PUT、PATCHメソッド タイプに必要です。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 ハンドブックの機能を無効にするため、このシナリオでは使用できません。
ツール使用アクションを含む例は非常に詳細になり 入力 トークンの上限 の消費量が増加する可能性があります。 トークンを効率的に使用するには、 ツールの出力が簡潔で 、ハンドブックの目標に関連する情報が含まれていることを確認してください。 データストア ツールの場合、 入力トークンの消費量が増える可能性があるため、例からスニペットを削除することを検討してください。
ハンドブックの呼び出し
このアクションは、ハンドブックで別のタスク ハンドブックを呼び出してユーザー クエリを満たす必要がある場合に使用します。 このアクションでは、次の詳細を指定する必要があります。
- ハンドブック: 呼び出すハンドブックの名前。
- ハンドブック呼び出しの入力サマリー: 呼び出されるハンドブックに役立つ、先行する会話の関連部分のサマリー。
- 入力パラメータ: 入力パラメータ ハンドブックに渡す。
- Playbook 呼び出しの出力サマリー: Playbook が目標の完了時に生成する内容のサマリー。
- 出力パラメータ: 出力パラメータ ハンドブックが目標の完了時に生成する。
ハンドブックの遷移
ハンドブックの遷移アクションは、ルーティン ハンドブックが終了してターゲット ルーティン ハンドブックに遷移することを示すターミナル アクションです (他のアクションを続けないでください) 。このアクションはハンドブックが終了することを示すため、ハンドブックの出力パラメータを例のハンドブックの出力に追加します。
フローの呼び出し
このアクションは、タスク ハンドブックでフローを呼び出す必要がある場合に使用します。 このアクションでは、次の詳細を指定する必要があります。
- フロー: 呼び出すフローの名前。
- フロー入力パラメータ: フローに渡す入力パラメータ 。
- フローの戻りパラメータ: フローから返される 出力パラメータ。
フローの遷移
フローの遷移アクションは、ルーティン ハンドブックが終了してターゲット フローに遷移することを決定したことを示すターミナル アクションです (他のアクションを続けないでください)このアクションはハンドブックが終了することを示すため、ハンドブックの出力パラメータを例のハンドブックの出力に追加します。