自定义事件和自定义界面模块连接器

Agent Assist 界面模块与其连接器之间的所有通信都通过自定义事件 进行。界面模块连接器 有助于在智能体桌面和界面模块之间传递事件。

例如,当收到 Agent Assist 建议时,界面模块连接器服务会将 analyze-content-received 事件分派给界面模块,而这些模块会订阅此类事件。

自定义事件详情

如需查看界面模块事件及其载荷的完整列表,请参阅界面模块事件 API 文档

如需手动分派自定义事件,请使用以下语法:

    dispatchAgentAssistEvent('event_name', {
      detail: event_payload,
    });

以下示例展示了如何分派 analyze-content-received 事件:

if (newMessageFromHumanAgent) {
  dispatchAgentAssistEvent('analyze-content-received', {
    detail: {
      participantRole: 'HUMAN_AGENT',
      request: {
        textInput: {text: newMessageFromHumanAgent},
        messageSendTime: new Date().toISOString()
      }
    }
  });
}

分派自定义事件后,您会在界面模块连接器服务中看到以下内容:

    this.api.analyzeContent(...).then(function (response) {
      dispatchAgentAssistEvent('analyze-content-response-received', {
       detail: {response: response}});
    });

您会在模块中看到以下内容:

    addAgentAssistEventListener('analyze-content-response-received', function (event) {
      // Use the AnalyzeContent response to render suggestions in the UI.
    });

如需手动订阅自定义事件,请使用以下语法:

    addAgentAssistEventListener('event_name', function (event) {
      // `event.detail` contains the event payload.
    });

以下示例展示了自定义事件订阅:

addAgentAssistEventListener('smart-reply-selected', function (event) {
  var chipContent = event.details;
  // Populate the agent chat box with the selected Smart Reply chip.
});

自定义界面模块连接器

您还可以使用自定义事件来创建自己的自定义界面模块连接器,以便将界面模块集成到 Agent Assist 不支持的智能体桌面中。 如需详细了解如何实现模块和连接器,请参阅 实现文档

如果您要将 Agent Assist 界面模块集成到任何没有预构建界面模块连接器的智能体桌面中,则需要编写自定义连接器。创建自定义界面模块连接器后,请返回界面模块实现 文档,详细了解如何配置连接器和实现 模块。您可以将自定义界面模块连接器与受管容器或各个模块搭配使用。

自定义界面模块连接器必须负责以下操作:

  1. 分派用于选择活跃对话的事件。这会初始化对话及其参与者。事件名称:active-conversation-selected
  2. 对于聊天对话,每当从智能体或客户处注册新话语时,分派一个事件。 事件名称:analyze-content-requested
  3. 当主应用中切换了“深色模式”时,通知模块系统。事件名称:dark-mode-toggled
  4. 分派一个事件,以请求在后端将对话标记为结束。事件名称:complete-conversation-requested

此外,自定义界面模块连接器必须订阅以下事件,以便在适用情况下更新智能体桌面界面:

  1. 对于智能回复,每当选择智能回复芯片时,更新智能体的输入字段。事件名称:smart-reply-selected
  2. 对于生成式知识助理,每当将知识助理答案粘贴到输入框中时,更新智能体的输入字段。事件名称:knowledge-assist-v2-answer-pasted

使用 namespace 初始化多个界面模块实例

如需在同一页面上加载多个界面模块实例,智能体桌面需要多个初始化实例。为了将它们分开,在初始化时,请将 namespace 配置选项传递给 界面模块UIModulesConnector

如果您发现智能体桌面中不同的对话之间共享消息和建议,请使用此选项。例如:

const connector = new UiModulesConnector();
const config = {};
// ...other UI module connector config options
config.uiModuleEventOptions = { namespace: this.recordId }

const containerElement = document.createElement("agent-assist-ui-modules-v2");
// ...other UI modules HTML attributes
containerEl.setAttribute("namespace", this.recordId);