AI转人工无缝衔接:Microsoft 365 Agents SDK接入Genesys Cloud客服坐席完整教程 📅 发布时间:2026/8/23 16:09:55 👁 浏览次数: AI转人工无缝衔接Microsoft 365 Agents SDK接入Genesys Cloud客服坐席完整教程【免费下载链接】AgentsThe Microsoft 365 Agent SDK simplifies building full stack, multichannel, trusted agents for platforms including M365, Teams, Copilot Studio, and Webchat.项目地址: https://gitcode.com/gh_mirrors/agents/Agents本文带你一步步用 Microsoft 365 Agents SDK 将 Copilot Studio 智能体接入 Genesys Cloud 客服坐席当用户在 Teams 中与 AI 机器人对话遇到复杂问题时可一键升级转人工用户无需切换聊天窗口整段对话上下文完整保留。为什么需要“AI 人工”双轨客服现代客服场景的最佳实践是简单问题交给 AI 秒回复杂问题无缝转给真人坐席。微软官方在仓库中提供了一个GenesysHandoff完整示例演示了这条AI 转人工链路用户始终停留在同一个 Teams 聊天窗口中体验零割裂升级时自动用 AI 生成对话摘要真人坐席接手前就能了解前因后果坐席在 Genesys Cloud 后台回复消息经 Webhook 实时回传到 Teams坐席离开时自动检测并提示已交还给机器人完整配置文档见 README.md运行时时序细节见 sequence-diagrams.md。一图看懂转人工消息流整个流程可概括为 6 步用户在 Teams 中向智能体提问Agent SDK 通过 OAuth 调用 Copilot Studio 运行时正常由 AI 应答用户说出转人工触发词Copilot Studio 的 Escalate 主题生成对话摘要并发出GenesysHandoff事件Agent SDK 捕获该事件调用 Genesys Cloud Open Messaging API 创建会话把摘要推入客服队列坐席在 Genesys Cloud 接单回复Genesys 通过出站 Webhook/api/outbound把消息推回你的应用Agent SDK 校验签名后主动把坐席消息发回 Teams坐席离开或用户点击结束对话后会话状态自动重置回到 AI 应答模式第 1 步在 Copilot Studio 中配置转人工触发器1.1 创建并启用 AI 智能体登录 Microsoft Copilot Studio在 Agents 中创建一个空白智能体例如命名为支持机器人并确保启用了Microsoft 365 Copilot Studio和Microsoft Teams两个渠道1.2 打开 Escalate 主题配置 AI 转人工在 Topics 列表中找到系统主题Escalate为它添加用户触发短语例如Talk to agent、Talk to a person、Call customer service等1.3 用 Customize Response 节点自动生成对话摘要在主题中拖入一个Customize Response节点让 AI 总结用户问题 机器人已给的建议 升级原因并把结果存入变量如ConversationSummary——这是坐席接手时看到的第一段信息。 如果高级节点列表里没有该节点可通过 更多 → 打开代码编辑器 手动添加AnswerQuestionWithAI动作同时记得在节点属性中取消勾选内容审核的 Send a message避免向用户发送多余消息。1.4 添加 GenesysHandoff 事件节点紧接着添加一个Event activity节点Name 填GenesysHandoffValue 绑定上面的摘要变量。最终主题结构为用户触发 → Customize Response生成摘要→ Event: GenesysHandoff。这个事件名是 Agent SDK 端识别升级信号的暗号务必保持一致。1.5 发送会话结束信号打开End of conversation系统主题在结束语之后、结束对话之前加一个 Event 节点名称与值均为EndOfConversation让集成层能感知用户主动结束。完成以上配置后点击Publish发布。第 2 步在 Genesys Cloud 中配置 Open Messaging 集成⚠️ 本节操作需要 Genesys Cloud 管理员权限。2.1 创建 OAuth 客户端授权机器人调用 API进入 Genesys Cloud 的IT AND INTEGRATIONS → OAuth新建一个 Grant Type 为Client Credentials的客户端并为其分配包含Conversation Message Receive权限的角色创建后妥善保存 Client ID 与 Client Secret2.2 创建平台配置与消息集成在DIGITAL AND TELEPHONY → Message下分别创建Platform Configuration配置文件和Platform Integration集成。集成页面是重点在此页面需要记录三个关键值出站 Webhook 地址填写你的应用端点https://{{域名}}/api/outbound集成页面 URL 中的Integration GUID出站 Webhook 签名密钥outboundNotificationWebhookSignatureSecretToken2.3 配置入站消息路由到人工坐席队列Orchestration → Architect → Inbound Messages新建入站流程使用Transfer to ACD动作选择承接人工坐席的 Queue 并发布Orchestration → Routing → Message routing把上一步的平台配置与入站流程绑定这样来自机器人的消息才会被路由到人工坐席2.4 把 Genesys 配置写入 appsettings.json把采集到的值填入 appsettings.json 的Genesys节核心字段包括 OAuth 地址、API 地址、IntegrationId、ClientId、ClientSecret以及必填的WebhookSignatureSecretGenesys: { OauthUrl: https://login.region.pure.cloud/oauth/token, ApiUrl: https://api.region.pure.cloud, IntegrationId: {{GenesysIntegrationId}}, WebhookSignatureSecret: {{OutboundNotificationWebhookSignatureSecretToken}}, EnableNotifications: true, EndLiveChatMessage: End chat with agent }EnableNotifications开启后应用会通过 WebSocket 订阅 Genesys 通知服务实现坐席离开自动检测。第 3 步Agent SDK 侧的安全与消息中转应用启动时会注册两类关键端点见 Program.cs端点用途安全机制POST /api/outbound接收 Genesys 出站 Webhook把坐席回复发回 Teams匿名端点强制 HMAC-SHA256 签名校验POST /api/conversations/reset按会话 ID 重置对话需要 OAuth 授权GenesysWebhookHandler.cs 会对每个 Webhook 请求校验X-Hub-Signature-256头签名无效直接返回 401。由于/api/outbound是匿名端点这个签名校验就是它唯一的防线——WebhookSignatureSecret未配置时应用会直接拒绝启动。坐席回复到达时处理器会从存储中取出 Teams 会话引用主动proactive把消息投递回用户聊天窗口空文本载荷则被转换为正在输入指示器体验非常自然。核心代码在做什么GenesysHandoffAgent.cs识别 Copilot Studio 返回的GenesysHandoff事件随后在 HandleEscalation 中设置已升级标志、调用 Genesys 创建会话并订阅坐席断开通知GenesysMessageSender.cs封装 Open Messaging API负责向 Genesys 发消息、断开会话升级时通过prefetchConversationId预取 Genesys 会话 ID 用于后续状态追踪GenesysNotificationService.csWebSocket 订阅v2.detail.events.conversation.{id}.user.end主题坐席一离开就主动通知 Teams 用户ConversationStateManager.cs维护会话状态是否升级中、双方会话 ID 映射升级期间用户消息会被直接转发到 Genesys 而不再经过 AI避免机器人抢话GenesysHandoffAgent.Streaming.cs为 Copilot Studio 的 SSE 流式响应增加重试与优雅降级防止长回答被中间网络掐断运行与端到端测试本地开发时先用 Dev Tunnels 打通外网devtunnel host -p 3978 --allow-anonymous将 Azure Bot 的消息端点更新为{隧道地址}/api/messagesGenesys 集成中的 Webhook 更新为{隧道地址}/api/outbound按 appManifest/manifest.json 替换占位符后打包通过 Teams 侧载上传打开 Teams 与机器人对话输入我要找人工触发升级在 Genesys Cloud 以坐席身份接单并回复验证双向消息坐席回复出现在 TeamsTeams 新消息出现在坐席界面 ✅进阶超时自动重置会话示例还提供了一个 Power Platform 自定义连接器当实时对话超时后自动调用重置接口。OpenAPI 模板位于 MCS-Timeout-Handler.swagger.json配置说明见 custom-connectors.md常见问题排查清单现象排查方向机器人不转人工Escalate 主题是否已发布触发短语是否匹配事件名是否为GenesysHandoffGenesys 收不到会话检查IntegrationId、OAuth 凭据与区域 URL 是否正确集成是否已激活非草稿坐席消息不回传Webhook 地址是否可访问WebhookSignatureSecret是否一致查 Application Insights 日志机器人和坐席抢话确认已设置升级中标志升级事件是主题的最后一步应用重启后转接失效默认 MemoryStorage 会丢状态生产环境请换成 Cosmos DB 等持久存储生产部署建议 将MemoryStorage替换为Azure Cosmos DB或Blob Storage让转接状态跨重启存活若用 Blob 存储会话映射确保应用托管身份拥有Storage Blob Data Contributor角色否则会反复出现 403 错误并引发 Webhook 重连风暴多实例部署时把内存版 MSAL 令牌缓存换成 Redis 等分布式缓存降低 AAD 限流风险写在最后通过 Copilot Studio 的事件主题、Genesys Cloud 的 Open Messaging 集成和 Agent SDK 的中转层这三块拼图你就拥有了一条AI 秒回 人工兜底的完整客服链路用户留在 Teams 不动AI 与坐席在幕后无缝接力。后续还可以在此基础上扩展坐席欢迎语、会话审计日志、多语言支持等能力让 AI 转人工方案贴合自己的业务。【免费下载链接】AgentsThe Microsoft 365 Agent SDK simplifies building full stack, multichannel, trusted agents for platforms including M365, Teams, Copilot Studio, and Webchat.项目地址: https://gitcode.com/gh_mirrors/agents/Agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考