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