DataWorks AI 助理服务支持接入 Microsoft Teams,方便您在 Teams 中直接使用 AI 助理。本文介绍两种接入场景的配置方法:一是在 Teams 私聊或群聊中与 AI 助理对话,二是将定时任务、巡检结果主动推送到指定的 Teams 聊天或频道。
功能说明
DataWorks AI 助理服务支持通过 Microsoft Teams 渠道进行交互,包含两个相互独立的业务场景。您可以根据实际需求,选择对应场景进行配置,两个场景可独立使用。
特性 | 场景一:在 Teams 中与 AI 助理对话 | 场景二:将结果主动推送到 Teams |
交互方向 | 双向(提问与回复) | 单向(推送运行结果) |
是否创建 Bot | 需要 | 不需要 |
是否配置回调 URL | 需要 | 不需要 |
是否创建 Workflows | 不需要 | 需要 |
典型用途 | 在 Teams 私聊或群聊中咨询、运维问答 | 定时任务报告、巡检告警推送 |
选型建议:若需要在 Teams 中随时向 AI 助理提问并获得回复,配置场景一;若只需将定时报告或巡检告警自动发送到指定聊天或频道,配置场景二;两个场景互不依赖,可同时配置。
工作原理与核心概念
场景一为入站回调:用户在 Teams 中向 Bot 发送消息后,Microsoft Bot Framework 将消息推送到 DataWorks 提供的 Teams 回调 URL,由 AI 助理网关接收并处理。其完整链路:管理员在 DataWorks 获取回调 URL 并填入 Bot 的 Messaging Endpoint,再回填 Bot 凭据并保存渠道;用户在 Teams 发送消息后,Bot Framework 将消息 POST 到回调 URL,AI 助理网关校验来源与私聊配对后生成回复并返回 Teams。
场景二为出站推送:DataWorks 将定时任务与巡检结果推送到 Teams Workflows 提供的 Webhook URL,由 Teams 发送到目标聊天或频道。其完整链路:在 Teams 创建 Workflows 并复制 Webhook URL,在对话中将其绑定为定时任务或巡检的推送目标,任务到达计划执行时间后,由实例出站调用该 URL,将结果以卡片形式发送到目标聊天或频道。
核心概念
概念 | 是什么 | 在哪里获取或配置 | 注意事项 |
Teams 回调 URL | DataWorks 为实例生成的入站地址。用户在 Teams 中向 Bot 发送消息时,Bot Framework 将消息转发到此 URL,由 AI 助理网关接收并处理。 | 实例通道配置中生成并查看;填入 Bot 的 Messaging Endpoint。 | 包含独立 API Key;先预留、保存渠道且实例运行后生效;轮换后需同步更新 Endpoint。 |
Bot 与 Messaging Endpoint | 在 Microsoft 侧创建的对话机器人及其消息接收地址;Messaging Endpoint 即回调 URL 的填写位置。 | Teams Developer Portal 或 Azure Bot 管理。 | 创建后需将 Bot 关联到 Teams 应用,并开启 Microsoft Teams 渠道。 |
Client ID / Client Secret | Microsoft 应用注册凭据,DataWorks 用以在对话时完成 Bot 身份校验。 | Microsoft Entra 应用注册;Secret 在 Certificates & secrets 中创建。 | Secret 仅创建时显示一次;三项须与同一 Bot 注册对应。 |
租户 ID | Microsoft Entra 目录 ID,标识 Bot 所属的 Microsoft 365 租户。 | Microsoft Entra 应用注册的 Directory (tenant) ID。 | 不是 DataWorks 租户 ID。 |
私聊配对与配对码 | 首次私聊的批准机制:用户发送消息后生成带配对码的申请,管理员批准后该用户方可对话。 | 申请在 Teams 中发起;在实例卡片的私聊配对中批准。 | 申请有效期约 1 小时;该流程仅适用于私聊,群聊场景无需执行。 |
Workflows Webhook URL | Teams Workflows 生成的触发地址,DataWorks 出站调用该地址以推送运行结果。 | Teams Workflows 工作流详情页复制。 | 按密钥保管;触发调用方选择 Anyone;仅用于推送场景。 |
前提条件
已创建 AI 助理服务实例且实例状态为运行中,详情请参见使用AI助理服务。
场景一:拥有 DataWorks 实例管理权限,以及目标 Microsoft 365 租户的 Teams 应用创建或安装权限。
场景二:拥有在目标 Teams 聊天或频道创建 Workflows 的权限。
场景一:在 Teams 中与 AI 助理对话
本场景让用户在 Teams 私聊或群聊中向 AI 助理提问并获得回复,需要按照以下五个步骤完成配置。步骤一至步骤四由实例管理员完成,步骤五需要管理员与最终用户配合。
步骤一:在 DataWorks 获取 Bot 的 Teams 回调 URL
Teams 回调 URL 是 DataWorks 为当前实例生成的入站地址:用户在 Teams 中向 Bot 发送消息时,Microsoft Bot Framework 将该消息转发到此 URL,由 AI 助理网关接收并处理。因此步骤二需将该 URL 填写为 Bot 的 Messaging Endpoint。
登录DataWorks 控制台,进入,单击 Microsoft Teams 卡片的配置。
在配置对话框中查看 Teams 回调 URL,单击复制。回调 URL 为完整的 HTTPS 地址,格式类似:
https://<AI助理网关域名>/<实例路径>/api/messages?apikey=sk-ai-assistants-...请完整复制,保留路径和
apikey查询参数,不要手动拼接。保持当前配置对话框打开,前往 Microsoft 创建 Bot。该回调 URL 此时仅为实例预留,需在保存 Teams 渠道且实例进入运行中状态后方可生效。
回调 URL 包含独立的 Teams API Key,请妥善保管。若在实例卡片中重新生成 API Key,旧 URL 将失效,需同步更新 Bot 的 Messaging Endpoint。
步骤二:在 Teams 创建应用和 Bot
打开 Teams Developer Portal 并登录目标 Microsoft 365 租户。在 Apps 中新建 Teams 应用,填写应用名称和基本信息。
在左侧导航栏,选择,输入 Bot 名称并创建。返回刚才创建的应用,在关联该 Bot。根据使用需求(私聊或群/频道)选择相应的 Bot 使用范围。Developer Portal 创建的 Bot 默认为单租户。
将步骤一复制的完整 Teams 回调 URL 设置为该 Bot 的 Messaging Endpoint。若通过 Azure Bot 管理注册,在 Azure Portal 的 Bot 资源中打开填写并保存,再在 Channels 开启 Microsoft Teams。
获取本次 Bot 注册对应的 Client ID、Client Secret 和租户 ID。若使用 Microsoft Entra 应用注册,在 App registrations 中找到该应用,记录 Application (client) ID 和 Directory (tenant) ID,并在创建密钥,复制 Value。
说明不同租户的凭据和 Bot 注册可能由管理员统一管理。若页面无法查看这三项,请联系管理员提供同一注册的凭据,不要混用其他应用的凭据。
在 Developer Portal 的 Preview in Teams 预览并安装应用,或请租户管理员发布到组织应用商店,再从 Teams 应用列表中添加。若需在群或频道中对话,还需将应用添加到目标群或频道。
可选:若具备开发权限,也可以使用 Teams Developer CLI 一次创建应用、Bot 和凭据。详情请参见官方 CLI 流程。
teams login --device-code
teams app create --name "DataWorks AI Assistant" \
--endpoint "<步骤一复制的完整 Teams 回调 URL>"命令完成后,保存输出的 Teams App ID/Bot ID、Client ID、Client Secret、租户 ID 。
步骤三:在 DataWorks 保存 Teams 渠道
在步骤一保留的配置对话框中,填写以下参数。三项必须与同一个 Bot 注册对应。
参数
说明
Client ID
Bot 使用的 Microsoft 应用 ID。
Client Secret
应用注册的密钥值。
租户 ID
Microsoft Entra 租户 ID,而非 DataWorks 租户 ID。
选择群聊范围:
所有群成员可 @ 助理(默认):机器人加入群/频道后,成员需 @ 它才触发回复。
仅私聊:只开放私聊场景。
单击保存。实例可能重启,请待其状态恢复为运行中。可在 Teams 卡片的 URL 回调中再次查看已保存的回调 URL。
说明若页面提示“地址已预留但网关尚未就绪”,请稍后重试或单击重试配置,无需立即轮换 API Key。
步骤四:检查通道并发起私聊申请
在实例详情的中配置允许接入的回调来源 IP。由于 Microsoft 未提供 Bot Framework 回调的固定来源 IP 列表,为稳定接收 Teams 消息,通常需放行全部来源 IP(
0.0.0.0/0)。更多信息,请参见微软官方说明。在 Microsoft Teams 卡片中单击测试网络连通性。若出站未打通,单击开启通道网络并按页面指引完成。
在 Teams 中打开已安装的应用,向 Bot 发送“你好”。首次私聊未获批准时,Bot 会提示联系实例管理员并显示配对码。该消息仅用于发起配对申请,不会执行实际提问。请记录配对码,步骤五中管理员批准私聊时需进行校验。
步骤五:管理员批准私聊,用户重新发送消息
实例管理员进入,将鼠标悬浮在 URL 回调上,在浮层中单击私聊配对。实例需处于运行中,否则入口不可用。
单击刷新,在待批准申请中查看申请人名称、用户 ID、配对码和申请时间。与用户在 Teams 收到的配对码及身份核对后,单击对应申请的批准私聊,并在确认对话框中再次核对确认。
说明申请有效期约 1 小时。申请过期时,请用户回到 Teams 重新发送消息以重新申请。
页面提示批准成功后,确认申请人出现在已允许私聊列表。若出现“重试保存”或“批准结果尚未确认”,请按页面提示重试并确认已保存。
用户回到 Teams,重新发送“你好”或实际问题,收到助理回复即表示私聊验收完成。批准仅开放该申请人的私聊,不会自动放开其他用户。如需撤销,管理员可在已允许私聊列表单击该用户的禁用并确认;被禁用的用户需重新发起配对。
若使用群聊或频道,完成步骤三中的群聊范围开放并将应用添加到目标群或频道后,成员即可通过 @ Bot 发起测试。群聊场景无需执行上述私聊配对批准流程。
若 Teams 显示消息已发送而实例未收到,请优先检查完整的 Messaging Endpoint、来源 IP 白名单、证书与网关;若实例收到消息却不回复,请检查私聊配对及出站网络。
场景二:将定时任务和巡检结果推送到 Teams
本场景将 AI 助理服务的运行结果单向发送到指定的 Teams 聊天或频道,无需创建 Bot,也无需配置场景一的 Teams 回调 URL 或私聊配对。需要一个可运行的 AI 助理服务实例,以及在目标 Teams 聊天或频道创建 Workflows 的权限。
步骤一:在 Teams 创建通知工作流并复制 Webhook URL
确定通知的目标聊天或频道,请选择与实际接收位置一致的模板。
频道场景:在 Teams 中找到目标团队和频道,单击频道旁的,选择 Send webhook alerts to a channel。
聊天场景:从聊天的 Workflows 入口或 Teams 左侧的 Workflows 应用,搜索 Send webhook alerts to a chat。
按模板选择目标聊天或团队/频道,检查工作流的发送身份及连接,单击保存。保存后进入工作流详情页,单击复制 Webhook URL。后续可在中找到该工作流,查看运行记录并管理 URL。详情请参见Microsoft 创建 Workflows Incoming Webhook 的步骤。
当前,AI 助理服务通过 Workflows 推送时不会附加 Microsoft OAuth Bearer Token,即以匿名方式调用触发器。因此,在 Teams 工作流的触发器配置中,须将“谁可以调用触发器”设置为 Anyone/任何人;若设置为需鉴权的调用方,推送请求将因缺少 Token 被拒绝。
重要若组织安全策略不允许将触发器调用方设置为 Anyone,当前版本的 AI 助理服务无法直接向该 Webhook URL 推送,须由管理员配置 OAuth 鉴权方案后方可使用。
将复制的 URL 作为密钥保存。该 URL 仅用于此通知场景,不使用 Bot Client Secret。
实例必须能出站访问该 Workflows URL 的实际完整域名及 443 端口。若实例同时启用了场景一,Bot 的开启通道网络仅覆盖 Bot 常用目标,不保证覆盖租户专属的 Workflows 域名;使用 PVL/PrivateZone 时,需将该精确域名交由网络管理员配置。
步骤二:通过对话创建 Teams 定时任务
在中与助理单独交互。不要在多人群聊中粘贴带签名的 Workflows URL。您可以复制以下示例,并将尖括号内容替换为实际值:
请创建定时任务“每日失败任务汇总”:每天北京时间 09:00,统计工作空间<工作空间 ID>昨日失败任务,按失败原因汇总并给出处理建议,只生成报告,不自动重跑。请把结果单向推送到这个 Teams Workflows Webhook URL:<步骤一复制的完整 URL>,使用 webhook 推送目标。创建前先告诉我任务名称、执行时间、巡检范围与目标聊天名称;创建后告诉我任务是否启用、如何查看和暂停,不要在回复里回显 URL 的签名参数。
按助理追问补齐工作空间等信息,核对后再创建。随后在对话中发送查看定时任务确认状态,或在指令后追加任务名称以查看单个任务;如需调整,可发送“暂停/恢复定时任务 <任务名称>”或“把该任务改为每天 10:00”。任务到达计划执行时间后,在 Teams 目标聊天/频道查看卡片,并前往 Workflows 运行记录核对是否收到触发。
标准 Workflows URL 会被识别并按 Teams Adaptive Card 发送;特殊自定义域名需要管理员显式配置 Teams Webhook 目标。
步骤三:通过对话创建巡检
异常实例运维巡检可能自动重跑失败任务,与步骤二的只读日报不同。创建前请先确定巡检频率、推送频率、工作空间范围和最大重跑次数。
您可以复制以下示例,并将尖括号内容替换为实际值:
请为工作空间<工作空间 ID>创建“异常实例巡检”:每 5 分钟检查一次,报告每 30 分钟推送到这个 Teams Workflows Webhook URL:<步骤一复制的完整 URL>。单实例最多自动重跑 1 次。请先列出巡检范围、自动重跑条件、时间与推送目标供我确认,确认后再创建;不要在回复中回显 URL 的签名参数。
您确认巡检范围、自动重跑条件与推送目标后,助理创建任务并返回创建结果;随后在对话中发送“查看定时任务 异常实例巡检”确认任务状态。
若仅需数据质量或治理类的只读巡检,请在创建指令中声明“仅分析、仅推送报告、不自动重跑”,并提供工作空间与检查维度;上述含自动重跑的示例不适用于关键业务空间。巡检结果为空时可能不产生通知,验证时请同时核对任务运行结果与 Workflows 运行记录。
常见问题
场景一:聊天问题排查
现象 | 报错或表现 | 可能原因 | 自查动作 |
Teams Bot 找不到或无法安装 | 无具体报错;Teams 应用列表中看不到应用。 | 应用未发布到本租户;自定义应用安装被禁用;登录了错误租户。 | 在 Developer Portal 检查应用发布状态与安装策略;确认登录租户正确。 |
能打开 Bot,但发送消息没有回复 | Teams 显示消息已发送;实例侧无响应。 | Messaging Endpoint 不完整或错误;实例未运行;入站被白名单/证书/网关拦截;私聊未批准。 | 核对 Endpoint 与控制台回调 URL 逐字一致;检查实例状态、白名单与证书;检查私聊配对。 |
复制回调 URL 后立即使用无法连通 | 页面提示“地址已预留但网关尚未就绪”。 | 尚未保存 Teams 渠道,或网关路由未就绪。 | 属正常预留机制:保存 Teams 渠道且实例进入运行中状态后生效,或单击重试配置。 |
私聊配对没有待批准申请 | 刷新后待批准申请列表仍为空。 | 用户未发送私聊消息;实例未运行;入站被拦截。 | 确认用户已向 Bot 发送消息且实例运行;检查回调 URL、来源 IP 白名单及外层网关。 |
批准后仍无法私聊 | 提示“申请过期”,或批准后发送消息仍无回复。 | 申请已过期(约 1 小时);用户未重新发送消息;批准未保存到已允许私聊。 | 请用户重新发送消息以重新申请;确认申请人出现在已允许私聊列表。 |
群里 @ 没有反应 | @ 消息无任何响应。 | 应用未加入该群/频道;群聊范围未开放;消息未真正 @ 到 Bot。 | 检查应用加入位置、控制台群聊范围与 @ 对象。 |
场景二:主动推送问题排查
现象 | 报错或表现 | 可能原因 | 自查动作 |
创建了 Workflows,却找不到 URL | 工作流详情页无复制入口。 | 未保存成功;入口位置不对。 | 在打开对应工作流详情复制 Webhook URL;确认保存成功。 |
定时任务显示已创建,但 Teams 没有收到卡片 | 任务状态为启用,但到达计划执行时间后无消息推送。 | 计划执行时间或时区理解偏差;任务被暂停;实例到 Workflows 域名 443 出站不通;工作流运行失败。 | 核对计划执行时间与时区、任务状态、实例出站连通性,并查看 Workflows 运行记录。 |
Workflows 显示已触发但目标没有消息 | 运行记录显示触发成功。 | 工作流指定的聊天/频道不对;连接授权过期;发送动作失败。 | 核对工作流目标与连接授权;在运行详情中查看发送动作结果。 |
模板要求选择调用者身份 | 提示选择“谁可以调用触发器”,或要求 OAuth Bearer Token。 | 当前推送不附加 OAuth Token。 | 将触发器调用方设置为 Anyone/任何人;若组织安全策略不允许,请联系管理员配置 OAuth 鉴权方案。 |
场景一的 Client Secret 和回调 URL apikey 应分别保管,轮换回调 API Key 后需更新 Bot 的 Messaging Endpoint。场景二的 Workflows URL 可能包含签名参数,轮换后需让助理更新相关定时任务或巡检的推送目标。