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 界面模块集成到任何没有预构建界面模块连接器的智能体桌面中,则需要编写自定义连接器。创建自定义界面模块连接器后,请返回界面模块实现 文档,详细了解如何配置连接器和实现 模块。您可以将自定义界面模块连接器与受管容器或各个模块搭配使用。
自定义界面模块连接器必须负责以下操作:
- 分派用于选择活跃对话的事件。这会初始化对话及其参与者。事件名称:
active-conversation-selected - 对于聊天对话,每当从智能体或客户处注册新话语时,分派一个事件。
事件名称:
analyze-content-requested - 当主应用中切换了“深色模式”时,通知模块系统。事件名称:
dark-mode-toggled - 分派一个事件,以请求在后端将对话标记为结束。事件名称:
complete-conversation-requested
此外,自定义界面模块连接器必须订阅以下事件,以便在适用情况下更新智能体桌面界面:
- 对于智能回复,每当选择智能回复芯片时,更新智能体的输入字段。事件名称:
smart-reply-selected。 - 对于生成式知识助理,每当将知识助理答案粘贴到输入框中时,更新智能体的输入字段。事件名称:
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);