tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Agentforce のテストについて

Agentforceのテストに関する話をTrailheadで確認しました。


Agentblazer のレジェンドになろう | Salesforce Trailhead

Agentforce Builder のテストとトラブルシューティングのツール

会話プレビューとプランキャンバス

ビルダーの中では画面右側の会話プレビューでエージェントと会話し、プランキャンバスでどのような処理が行われているかをチェックできるとのこと。

会話プレビュー (1): Agentforce Builder の [Conversation Preview (会話プレビュー)] パネルでエージェントと会話を始められるステップまで進むと、ワクワクします。ここで、ユーザーがエージェントと行う可能性がある会話をシミュレーションし、エージェントが意図したとおりに応答するかどうかを確認できます。生成された応答を通じて、エージェントが有益で関連性の高い応答を返しているか、適切なアクションをコールしているか、ビジネスプロセスを正しく参照しているか、設定したガードレール内で動作しているかを確認できます。

プランキャンバス (2): 会話プレビューのチャットウィンドウに入力するたびに、プランキャンバスと呼ばれる中央のパネルが更新され、エージェントがどのようにして応答を導き出したかがわかります。プランキャンバスには、ユーザーによる最初の入力、エージェントが選択したトピック、コールしたアクション、使用した指示が表示されます。また、エージェントが応答を生成するために使用した推論と、個人情報を含む正確な応答を返すために使用が許可されている関連データも表示されます。

拡張イベントログ

エージェント作成時に、「エージェント動作をレビューするために拡張イベントログを使用して会話の記録を保持する」という感じのチェックボックスがあります。このチェックをONにすることで、エージェントセッションでのやり取りは拡張イベントログに取得され保存されるため、エージェントの応答を改善するために会話の流れを参照できるようになるとのことです。

テストセンター

以下がテストセンターの画面です。


新規テストをクリックすると設定フォームが表示されます。

エージェントのテストでの考慮事項

エージェントが本番環境で稼働可能かを判断する
エージェントの動作は確率的であるため、いつ本番環境で稼働可能と判断できるかは明確ではありません。どの企業も、さまざまなシナリオにおける合格・不合格のベースラインを独自に決める必要があります。正解は 1 つではなく、求められる精度のレベルは業界によって異なります。まずは、予約に関する問い合わせの対応など、人間が同じタスクを行った場合の精度を考慮し、それをベースラインとします。そうすれば、エージェントがその精度レベルを達成する、あるいは上回るように取り組むことができます。

テストは必ず Sandbox で行う
エージェントのテストによって CRM データが変更される可能性があるため、テストセンターは本番環境で使用せず、必ず Sandbox 環境で使用してください。

複数の条件を使用して応答を評価する
会話プレビューパネルで、入力に対して望む応答を得るには、いくつかの試行錯誤が必要になります。エージェントの構築は反復的なプロセスです。また、さまざまな種類の入力に対応するために、推敲や権限の確認、データの検証、指示への詳細やガードレールの追加など、いくつかの修正を行う必要があります。プランキャンバスのフィードバックやイベントログ、テストセンターで得られる情報は、求める精度に近い応答を得るために、エージェントのトピック、アクション、指示のどこを調整すべきかを特定するのに役立ちます。

テストの考慮事項の代表例

テストのコスト

テストセンターでエージェントをテストすると、Flex Credits、会話クレジット、Einstein 要求に加えて、Data 360 クレジットも消費する場合があります。こうした要求やクレジットは、組織に対してコストが発生する、生成 AI の請求可能な利用状況メトリクスです。

エージェントをテストするための 5 ステップ計画

  • ステップ 1: テストシナリオを特定し、テストデータを作成する。
  • ステップ 2: 評価のパラメーターを設定する。
  • ステップ 3: テストを実行して結果を評価する。
  • ステップ 4: 結果を検証する。
  • ステップ 5: 結果を確認して反復する。

テストセンターでは、テストシナリオを格納するために .csv ファイルを使用します。独自のテスト入力を記述する場合は、独自の .csv ファイルを作成します。

テスト方法

手動テスト

Agentforce Builder では、エージェントの作成中や更新中に手動でテストとトラブルシューティングを行うことができます。その方法は、Builder で [Conversation Preview (会話プレビュー)] を使用してエージェントに質問するだけです。その後、応答を見てどのように作成されたかを確認します。これはエージェントのトラブルシューティングを行い、質問に基づいて正しいプロセスがコールされていることを確認するのに適した方法です。ただし、このテスト方法には時間がかかり、可能性のあるすべてのシナリオを手動でテストするのは困難です。また、必要になるたびにこのようなテストを繰り返すのも困難で時間がかかります。そこで Agentforce テストセンターが効果を発揮します。

自動テスト

Agentforce テストセンターでは、自動一括テストを実行することができるため、テスト時間を減らすことができます。一括処理を行うことで、多数のユーザー入力をテストすることもできます。このような入力 (質問) は発言と呼ばれます。発言はたとえば「ACME 取引先のすべての進行中の商談を教えてください。」といったものです。すべてのテスト実行には 1 つの発言が含まれます。複数の発言を想定される応答と組み合わせることで、テストのバッチを作成できます。テストを何度も実行し、必要に応じて追加していくことで、エージェントが継続的に信頼できるものになります。

確信をもってリリースする

テストが完了したら、確信をもってエージェントを本番環境にリリースすることができます。ビジネスを中断したりお客様のデータを破損したりする心配はありません。

さらに、現在使用している任意のツール (変更セットや DevOps Center など) を使用して変更を本番環境に移行することで、変更をリリースできます。また、Salesforce CLI で Data Cloud と Agentforce がサポートされるようになりました。

制限

現在、同時に最大 10 件のテストジョブを 10 時間の時間枠で実行できます。各テストには最大 1000 件のテストケースを含めることができます。

テストセンター実行の流れ

権限について

Agentforce テストセンターを使用するには、次の権限が必要です。

「Manage AI Agents (AI エージェントの管理)」、使用するエージェント種別に必要な権限、および「System Admin (システム管理者)」プロファイル
または

「Customize Application (アプリケーションのカスタマイズ)」および「System Admin (システム管理者)」プロファイル

テストケースを作成する

テストセンターの設定開始

名前とエージェントを指定して次へ。


テスト条件は今回はそのまま、次へ。


テストデータはテストケースをアップロードを選択。また、テンプレートリンクをクリックしてCSV取得。


すでにデータが入っているのでこれをアップロードする。


評価は、こんな感じ。


保存するとそのままテストが開始されます。


なお、一つ前ページのテストセンターのトップに戻ると他のテストの作成や参照などの操作ができます。


エラーが発生する可能性も十分あるようです。


テストスイートを返すをクリックすると再度テスト開始。結果をダウンロードをクリックするとCSV出力されます。



エラーメッセージは次のとおり。原因はエージェントの有効化がされていないことが理由でした。

Fail in HTTP Request: 412 Client Error: Precondition Failed for url: https://api.salesforce.com:9443/einstein/ai-agent/v1/agents/0XxdM000002NhmHSAS/sessions


エージェント自体の有効化ができていないかっただけの理由。有効化して再度テストします。


ちなみにビルダーの一括テストボタンをクリックしてもさきほどのテストセンター設定ページに移動できます。


テストの再実行は先程作成したテストセンターのtemplateレコードのページにアクセス。テストスイート返すを再度クリックで再実行します。今度はエラーにならずに処理することができました。テスト失敗しているものもあるけど、ファイルアップロードのテストだからかな。

AI によってテストを生成する

多様性と拡張性が高いテストシナリオセットを手動で作成するのは、時間がかかる複雑な作業です。Agentforce テストセンターにはその解決策があります。AI を使用して、テストケースとして使用するエージェントのトピックとアクションに基づいて、簡単に数百もの合成インタラクションを生成できます。これによって、エージェントはさまざまなお客様とのやり取りを正確に処理できるようになります。

一括テスト

AIによるテスト生成も途中まで同じ。途中でファイルアップロードではなく、トピックとアクションを元に作成的な選択すればAIテストケース生成になりました。


テストケース作成中の時間がけっこう長かったです。(しばらく待ったらブラウザのリフレッシュを実行する)

テスト結果に対処する

  • [Actual Topic (実際のトピック)] には発言に対して選択されたトピックが表示されます。
  • [Topic Test Results (トピックテスト結果)] には実際のトピックが予期されるトピックと一致したかどうかによって [Pass (合格)] または [Fail (不合格)] が表示されます。
  • [Actual Actions (実際のアクション)] にはエージェントがトピックから実行したアクションが表示されます。
  • [Action Test Result (アクションテスト結果)] には実際のアクションが予期されるアクションと一致したかどうかによって [Pass (合格)] または [Fail (不合格)] が表示されます。
  • [Actual Outcome (実際の結果)] にはエージェントからの実際の応答が表示されます。
  • [Outcome Test Result (結果のテスト結果)] には実際の結果が予期される応答と一致したかどうかによって [Pass (合格)] または [Fail (不合格)] が表示されます。

Agentforce Builder を使用してトラブルシューティングする

Agentforce Builder に切り替え、[Conversation Preview (会話プレビュー)] で発言を手動でテストします。このような方法で Agentforce Builder を使用することは手動テストの一種であり、発言を詳しく調べてエージェントが選択したトピック、アクション、応答を確認することができます。その後、テストで異なる結果が得られるように発言の変更を試します。

いくつかの選択肢があります。

最初の方法は、テストの [Expected Action (予期されるアクション)] を変更して、IdentifyRecordByName と ExtractFieldsAndValuesFromUserInput のみが含まれるようにすることです。ただし、テストの [Utterance (発言)] が両方のアクションを呼び出す想定であったなら、[Utterance (発言)] を変更するという方法もあります。

発言を変更して、テスト結果の [Actual Actions (実際のアクション)] を確認することで、テストを反復し、変更を加え、エージェントが想定どおりに動作していることを検証できます。テストの回数やテスト条件の種類が増えるほど、エージェントの信頼度が高まります。

または、これをネガティブテストとして使用することもできます。ポジティブテスト条件を含む別のテストを追加して、条件がカバーされるようにします。

Agentforce テストセンターの利点

テストは Agentforce エージェントを作成するために欠かせない部分です。詳細なポジティブテスト条件とネガティブテスト条件を作成して維持することで、Agentforce エージェントに対するユーザーやお客様の信頼を作り出して維持していることになります。


Agentforce のテストについて。テストセンターの操作イメージはこのような感じでした。