ハンドブックの例

各ハンドブックには 1 つ以上の例が必要です。これらの例は、エンドユーザーとハンドブック間のサンプル会話で、エージェントによって実行される会話やアクションが含まれます。これらは実質的に、LLM の数ショットのプロンプトの例です。

コンソールには、アクションを入力するためのインターフェースがあります。

多言語エージェント

エージェントで複数の言語を処理する場合は、例で各言語を使用する必要があります。

入力サマリーと出力サマリーの例

ハンドブックでは、入力パラメータと出力パラメータに加えて、他のハンドブックと情報を交換するために、入力サマリーを受け取り、出力サマリーを出力できます。サマリーは、ハンドブック間で抽象的なコンテキスト情報を渡すことに役立ちますが、パラメータは、ハンドブック間で構造化され明確に定義されたフィールドを渡す場合に役立ちます。パラメータは、フロー間とハンドブック間でデータを交換する唯一の方法です。

関連する入力サマリーを例に追加して、実行時に入力サマリーに基づいてアクションを調整するようにハンドブックの条件を設定します。会話の例についての関連する正確な詳細を含む出力サマリーを追加して、何の詳細が要約するために重要であるかをハンドブックに示します。

例の状態

会話の特定の時点で、プレイブックは次のいずれかの状態になります。

  • OK: ハンドブックは目標を達成し、コントロールが親ハンドブックに移管されます。
  • CANCELLED: ユーザーが、ハンドブックに割り当てられた目標で続行させないことを決定しました。これで、コントロールが親プレイブックに移管されます。親プレイブックが CX フローの場合、ユーザー入力のインテントは、フローの実行前に検出されます。
  • FAILED: なんらかのエラー(ツールから 500 エラーが返されるなど)のため、ハンドブックは目標で続行できません。セッションは、失敗のステータスで終了します。EndInteraction というメッセージがレスポンスに追加されます。
  • ESCALATED: ハンドブックは目標を達成できないと判断し、状況を人間にエスカレーションする必要があると判断しました。セッションは、エスカレーションのステータスで終了します。 EndInteraction というメッセージがレスポンスに追加されます。
  • PENDING: 会話はハンドブック内でまだ続いています。

最上位の例とそのハンドブックの呼び出しは、参照しているハンドブックに対応する状態で示される必要があります。

選択戦略

選択戦略の設定では、LLM に送信されるハンドブックのプロンプトに例が含まれるかどうかを制御します。次のオプションが用意されています。

  • 動的に選択: 現在の会話コンテキストとの関連性に基づいて、例が条件付きで含まれます。プロンプトがトークンの上限に近い場合は、例を省略できます。必要に応じて、単語の一致を指定できます。
  • 常に選択: 会話のコンテキストに関係なく、例は常に含まれます。プロンプトがトークンの上限に近い場合は、例を省略できます。
  • 選択しない: 例がプロンプトに含まれることはありません。この例は、ハンドブックのパフォーマンスに影響しません。この設定は、テストのために例を一時的に除外する場合に便利です。

単語の一致

必要に応じて、動的選択戦略で例の単語の一致を指定できます。これにより、例をプロンプトに含めるかどうかをより細かく制御できます。これは、100 を超える例を含む Playbook におすすめです。

複数のマッチ式を、一致する単純な単語または正規表現として指定できます。各マッチ式は次のいずれかのタイプにできます。

  • user: エンドユーザーのメッセージと照合されます。
  • agent: エージェント メッセージと照合されます。
  • any: エンドユーザーとエージェントのメッセージとアクションが照合されます。

一致を確認する際、表現は最大 5 回の最新の会話ターンと最初のエンドユーザー メッセージと照合されます。

例に一致するものが見つかった場合、その例は、単語が一致しない他の動的に選択された例よりも優先されます。

単語の一致の形式はカンマ区切りのリストです。各式は式の種類とコロンで始まります。次に例を示します。

user:red,agent:blue,any:placeOrder

次のいずれかに該当する場合、一致します。

  • エンドユーザー メッセージに red が含まれている。
  • エージェント メッセージに blue が含まれている。
  • placeOrder を含むメッセージ、または placeOrder と一致するアクション。

アクションを追加

ハンドブック内に示されている例は、一連のアクションで構成されています。これらのアクションの組み合わせはさまざまですが、主にユーザーとプレイブック間のインタラクションと、ユーザーのクエリや要件を満たすためにその間に実行されるアクションを表します。

例にアクションを追加する方法は 2 つあります。

  • アクションを手動で追加するには、右ペインの下部にある [+] ボタンをクリックするか、既存のアクションの上にポインタを置いた状態で [アクションを追加] ボタンをクリックします。これらのオプションは、[+ 例] オプションをクリックして新しい例を作成するとき、または既存の例を編集するときに使用できます。

  • 既存の Playbook の手順に基づいてアクションを自動的に生成するには、右ペインの下部にある [ユーザー入力を入力] フィールドにユーザー入力を入力します。このオプションは、例を作成または編集するときに使用できます。または、右側の [ハンドブックをプレビュー] ペインでランタイムにハンドブックをテストするときに、このオプションを使用することもできます。[プレビュー ハンドブック] ペインから例にアクションを保存するには、[プレビュー ハンドブック] ペインの左側にある呼び出しリストからハンドブック呼び出しを選択してから [例を保存] をクリックします。

必ず自動生成されたアクションの正確性を確認し、必要に応じて編集します。これは、例が少ないまたは例がないプレイブックでは特に重要です。

プレイブックでは、次のタイプのアクションがサポートされています。

ハンドブックの対応

ユーザーのクエリに対するハンドブックのレスポンス。

ユーザー入力

ユーザーのクエリ。

ツールの使用

これは、ユーザーのクエリに応えるために必要な追加情報を取得するツールの呼び出しです。このアクションでは、次の詳細を指定する必要があります。

  • ツール: 呼び出されるツールの名前。
  • アクション: 呼び出す必要がある OpenAPI ツールのオペレーションの名前。データストア ツール関数ツールの場合、アクション名はツール名と同じです。
  • ツールの入力: ツール呼び出しに含める入力。通常は、ユーザーとの以前の会話ターンから派生します。

    Open API ツールの場合、POSTPUTPATCH のメソッドタイプに 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 Fransisco",
      },
      "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 Fransisco Downtown",
          "uri": "https://www.example.com/San_Fransisco_Downtown",
          "text": "Address for San Fransisco Downtown .."
        }
      ]
    }
    

ハンドブックに、ツールの呼び出しが失敗した場合にハンドブックがどのように応答すべきかのサンプルも含めて、ハンドブックのフェイルセーフを確保します。Open API ツールの呼び出しの失敗は、ツール出力でエラー文字列(「404 見つかりません」)として表されます。データストア ツールの場合、fallback 入力を使用して、要約された回答がない場合にどのように応答するかを指定できます。

データストア ツールでプレイブックのレスポンスに URI を含める場合は、プレイブックでレスポンスとして返す URI を含む例を追加します。この URI がデータストア ツールから取得される場合、データストア ツールの出力には、Playbook レスポンスの URI と一致する URI が含まれる必要があります。fallback は、プレイブック レスポンスに URI を含めるようにデータストア ツールの回答を言い換える LLM プレイブックの機能を無効にするため、このシナリオでは使用できません。

ツール使用アクションを含む例は非常に詳細になり、入力トークンの上限の消費量が増加する可能性があります。トークンを効率的に使用するには、ツールの出力が簡潔で、プレイブックの目標に関連する情報が含まれていることを確認してください。データストア ツールの場合、入力トークンの消費量が増える可能性があるため、例からスニペットを削除することを検討してください。

ハンドブックの呼び出し

このアクションは、ハンドブックで別のハンドブックを呼び出してユーザーのクエリを処理する必要がある場合に使用します。このアクションでは、次の詳細を指定する必要があります。

  • Playbook: 呼び出されるハンドブックの名前。
  • Playbook 呼び出し入力の概要: 呼び出される Playbook に役立つ、前の会話の関連部分の概要。
  • 入力パラメータ: ハンドブックに渡す入力パラメータ
  • ハンドブックの呼び出しの出力の概要: 目標の達成時にハンドブックで生成される内容の概要。
  • 出力パラメータ: 目標の完了時にハンドブックによって生成される出力パラメータ