カスタムUIコンポーネントからAIエージェント・フローを起動する新しいグローバル機能

Oracle Fusion Serviceの拡張性により、システム実装者が非会話型UI要素から直接AIエージェント・フローを起動できるようにするクライアント側のグローバル機能が提供されるようになりました。 これにより、複雑でリスクの高いinvokeSync回避策が、クリーンでサポートされているAPIに置き換えられます。

この機能を使用すると、AIによって生成された出力(推奨、要約、ドラフト・コンテンツなど)を、チャット・インタフェースを必要とせずにカスタム・ウィジェット、カードおよびフォーム・フィールドに表示することができます。

使用例

  • サービス・リクエストの起草 - 顧客のコンテキストに基づいて、SRワークフロー内で問題の説明または電子メールのドラフトを自動的に生成します
  • 推奨カード - AI推奨の次善アクションまたは解決ステップをカスタムUIカードに直接表示します
  • AIライティング・アシスタント - エージェント・ワークスペース内のページまたはアプリケーション・ライフサイクル・イベントからAI生成コンテンツ(サマリー、レスポンス)をトリガーします

システム・インプリメンタは、リスクを軽減し、サポートのオーバーヘッドを削減しながら、AIを活用したUIエクスペリエンスをより迅速に構築できるようになりました。 これにより、不適切な実装が削減され、内部APIの誤用に関連する潜在的な超過料金が回避され、以前は複雑すぎて正当化できなかった拡張性シナリオのロックが解除されます。

有効化および構成ステップ

Visual Builder Studioを活用して、アプリケーションを公開します。 Visual Builderを使用したアプリケーションの拡張の詳細は、Oracle Help Center関心のあるアプリケーション・サービス領域→「Books」→「Configuration and Extension」を参照してください。

次のステップでは、Fusion Service UIコンポーネントから使用できるように、ユース・ケースと公開済AIエージェントがあることを前提としています。

AIエージェントの起動フロー

有効化のステップ

  • AIエージェント出力を表示するサービス・ページまたはフラグメントを選択します
  • UIコンポーネントをページまたはフラグメント(テキスト・フィールドなど)に配置し、そのコンポーネントに変数を割り当てます。
  • 選択したページまたはフラグメントで、「アクション・チェーン」タブに移動し、新しいアクション・チェーンを作成します
  • アクション・チェーン内で、「CXサービス」アクション・グループの下の「AIエージェント: AIエージェント・チームの呼出し」を検索して選択するか、「アクション」パレットから直接ドラッグします
  • 次のパラメータを渡します。
    • ワークフロー・リクエスト本文 - 入力ペイロード(メッセージが必要です。他のすべてのフィールドはオプションです)
    • エンドポイント情報 - agentNameおよびバージョンが含まれます(指定されていない場合はv1にデフォルト設定されます)
    • ポーリング間隔 - ポーリング頻度(ミリ秒)(デフォルト: 5000)
    • UEFコンテキスト - $base.variables.uefContextとして渡すか、UEFContext DataTypeを使用してVB変数を作成します。
  • callInvokeAIAgentに格納されている結果を、UIコンポーネントにバインドされた変数に割り当てます。

Basciの例:

const callInvokeAIAgent = await $modules.aiAgentInteractionUtil.invokeAIAgent(
  { "message": "iPhone issue" },
  { "parameters": { "agentName": "CHAT_SNIPPET_RETRIEVAL_ASSISTANT", "version": "v1" } },
  $variables.uefContext
);
console.log(callInvokeAIAgent);

完全なワークフロー・リクエスト本文を使用した例:

const callInvokeAIAgent = await $modules.aiAgentInteractionUtil.invokeAIAgent(
  {
    "version": 1,
    "message": "Summarize this SR",
    "parameters": {
      "objectNumber": "SR0000090988",
      "objectName": "ServiceRequest",
      "promptCode": "SR_Summarization",
      "triggerType": "REST",
      "content": ""
    },
    "conversational": true,
    "status": "PUBLISHED",
    "invocationMode": "END_USER"
  },
  { "parameters": { "agentName": "ORA_SERVICE_REQUEST_SUMMARIZATION_ASSISTANT", "version": "v2" } },
  $variables.uefContext
);

ポーリングの停止(オプション)

  • エージェント・チーム・コードおよびタブIDを渡すstopPollingをコールします
  • ポーリングが正常に停止した場合はtrueを返し、それ以外の場合はfalseを返します

サービス・コンソール・モードの例:

const value = CxSvcAgenticAiHelper.getInstance().stopPolling(
  "CHAT_SNIPPET_RETRIEVAL_ASSISTANT",
  __OJ_CX_SVC_SHELL__.getShell('msiRoot').getFocusedTab().key
);

非サービス・コンソール・モードの例:

const value = CxSvcAgenticAiHelper.getInstance().stopPolling(
  "CHAT_SNIPPET_RETRIEVAL_ASSISTANT",
  window.name
);

トラブルシューティング- ログを確認する方法

  • Chromeを開きます DevTools (ブラウザの右上のメニュー>その他のツール>開発ツール)
  • 「コンソール」タブに移動し、次を実行します:
    • window.oj.Logger.option('level', window.oj.Logger.LEVEL_INFO);
  • AIエージェントログを分離するために、接頭辞 SvcAiAgentHelperHandlerを使用してコンソール出力をフィルタリングします

留意すべき主な事項:

  • ジョブがすでに実行されているときに、同じタブ上の同じワークフローに対して新しいリクエストがトリガーされると、既存のジョブが削除されて置換されます。
  • ユーザーがタブを切り替えて復帰時に再開すると、ポーリングは自動的に一時停止します。
  • ステータスがCOMPLETEDまたはERRORの場合、または60回のポーリング試行に達すると、ジョブがキューから削除されます。
  • ステータスはデフォルトでPUBLISHEDに設定され、明示的に渡されない場合、invocationModeはデフォルトでEND_USERに設定されます。

ヒントと考慮事項

  • invokeSyncの使用は避けてください。この新しい関数はサポートされているパスです。
  • 本番UI要素に出力を埋め込む前に、AIエージェント・フロー・レスポンスをサンドボックスにテストします
  • クライアント側を起動する前に、AIエージェント・テンプレートが構成および公開されていることを確認してください
  • トークン使用パターンを確認して、大規模な予期しない消費を回避
  • グローバル関数によって起動されたときにエージェントを実行できるように、Fusion AIへのアクセス権を付与してください。

主なリソース

アクセス要件