You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行于MS Teams的Rasa机器人中正确实现Adaptive Card task/fetch按钮

问题根因

Rasa 官方默认的 BotFramework 通道仅支持处理普通message类型的活动请求,而 Teams 的 task module 触发的task/fetch属于invoke类型的活动,默认通道无法识别该类请求,因此会输出Not received message type日志,且不会返回 Teams 要求的响应结构,最终导致 Teams 端报错。

排查与解决步骤

1. 修正自适应卡片JSON格式

你当前提交的Action.Submit配置存在尾随逗号的语法问题,Teams 对自适应卡片的JSON校验非常严格,语法错误会直接导致按钮解析失败,修正后的配置如下:

{
  "type": "Action.Submit", 
  "title": "Submit button",
  "data": { 
    "msteams": {
      "type": "task/fetch"
    }, 
    "task": {
      "type": "message", 
      "value": "Message text"
    }
  }
}

2. 自定义通道支持invoke类型请求

需要重写 Rasa 的 BotFramework 通道逻辑,新增对invoke类型活动的处理能力,无需修改 Rasa 源码,通过自定义通道即可实现:

  • 继承rasa.core.channels.botframework.BotFramework类,重写post方法
  • 新增判断逻辑:当收到的活动type为invoke且活动name为task/fetch时,直接返回符合 Teams 要求的 task module 响应,示例逻辑如下:
from rasa.core.channels.botframework import BotFramework
from sanic import response

class CustomBotFramework(BotFramework):
    async def post(self, request):
        if request.json.get("type") == "invoke" and request.json.get("name") == "task/fetch":
            # 构造task module响应
            task_resp = {
                "task": {
                    "type": "continue",
                    "value": {
                        "title": "任务模块标题",
                        "height": 500,
                        "width": 400,
                        "url": "你的任务模块页面地址"
                    }
                }
            }
            return response.json(task_resp, status=200)
        # 其余逻辑走默认通道处理
        return await super().post(request)
  • 将 Rasa 配置文件中的通道替换为你自定义的CustomBotFramework通道

3. 校验Teams应用配置

确认以下配置符合要求:

  • 任务模块用到的页面域名已经添加到 Teams 应用清单的validDomains列表中
  • 机器人的权限配置已经开启task module相关权限

4. 调试验证

开启 Rasa debug 模式,按下按钮后查看收到的完整请求体,确认请求类型和参数符合预期,也可以通过模拟工具发送task/fetch请求到自定义通道,验证返回结构是否符合要求。

内容的提问来源于stack exchange,提问作者Markos di Mitsas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:06:03