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

Dialogflow Fulfillment调用意图异常:Google Action Simulator返回解析错误

解决Dialogflow Fulfillment返回UnparseableJsonResponse(Missing @type)错误

我之前帮不少开发者处理过这个问题,你遇到的报错核心原因很明确:你的Fulfillment返回的JSON响应不符合Google Actions v2 API的格式要求,缺少了必填的@type字段,这直接导致Action Simulator无法解析响应内容,才会弹出那个“没响应”的提示,同时抛出"UnparseableJsonResponse"和"Missing @type for any field in google.actions.v2.AppResponse"这类错误。

下面给你几个针对性的解决步骤:

  • 检查响应结构,确保@type字段存在
    如果是手动拼接JSON响应(没有用Dialogflow官方客户端库),一定要严格按照v2格式添加@type字段。比如构造文本响应时,正确的结构应该包含指定类型的@type:

    {
      "payload": {
        "google": {
          "expectUserResponse": true,
          "richResponse": {
            "items": [
              {
                "simpleResponse": {
                  "textToSpeech": "这是符合规范的响应",
                  "displayText": "这是符合规范的响应"
                }
              }
            ]
          },
          "systemIntent": {
            "intent": "actions.intent.TEXT",
            "@type": "type.googleapis.com/google.actions.v2.Intent"
          }
        }
      }
    }
    

    要是你用的是dialogflow-fulfillment这类官方客户端库,大概率是版本问题或者调用方式不对——建议升级到最新版,并且使用库提供的响应构造方法(比如SimpleResponse、RichResponse),它们会自动帮你添加@type字段:

    const { WebhookClient, SimpleResponse } = require('dialogflow-fulfillment');
    
    exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
      const agent = new WebhookClient({ request, response });
      
      function welcome(agent) {
        // 用库的方法构造响应,自动处理@type
        agent.add(new SimpleResponse({
          speech: "欢迎使用我的测试应用",
          text: "欢迎使用我的测试应用"
        }));
      }
    
      let intentMap = new Map();
      intentMap.set('Default Welcome Intent', welcome);
      agent.handleRequest(intentMap);
    });
    
  • 确认Dialogflow的API版本设置
    登录Dialogflow控制台,进入Fulfillment页面,检查Webhook的API版本是否设置为V2。如果不小心选了V1,响应格式完全不兼容,也会触发这类解析错误。

  • 排查Firebase Functions的执行日志
    打开Firebase控制台,找到你的Functions项目,查看具体的执行日志。有时候代码抛出异常(比如未捕获的错误、异步操作失败)会导致响应不完整,返回的JSON格式本身就有问题,这也会让模拟器报解析错误。

  • 验证响应格式合法性
    可以用Google提供的响应验证工具检查你的JSON是否符合v2规范,确保所有必填字段都正确配置,避免因为拼写错误或者字段缺失导致的问题。

总的来说,这个问题就是响应格式不符合要求,重点盯紧@type字段的存在性和响应结构的完整性,用官方库的话尽量依赖库的方法来构造响应,减少手动拼接的出错概率。

内容的提问来源于stack exchange,提问作者ffritz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:04:20