Vertex AI Agent在Dialogflow Messenger中未返回toolCall问题咨询
Vertex AI Agent Builder Function Tools 调用差异问题解析
差异原因
- 接口版本功能差异:Playbook调用的
dialogflow.clients6.google.com/v3alpha1/是预览版接口,完整保留了Function Tools触发时的toolCall字段返回逻辑;而Dialogflow Messenger调用的dialogflow.googleapis.com/v3/是正式版接口,正式版对工具调用的响应格式做了调整,不再直接在顶层返回toolCall字段。 - Dialogflow Messenger适配限制:Dialogflow Messenger(DFM)最初为Dialogflow ES/CX设计,未完全适配Vertex AI Agent Builder的Function Tools流程。当Agent触发工具调用时,DFM会自动拦截相关响应,不将
toolCall暴露给前端,但会话状态已被标记为“等待工具调用结果”,后续请求就会触发com.google.apps.framework.request.BadRequestException: Session is waiting for tool call result of tool, and action, getWeather错误。 - 会话状态传递逻辑不同:v3alpha1预览版接口直接将
toolCall作为响应顶层字段返回,而v3正式版可能将工具调用信息封装在webhookPayload或sessionInfo等嵌套字段中,但DFM没有解析这些字段的逻辑,导致无法直观看到toolCall,但会话状态已进入等待状态。
解决方向
- 检查v3接口响应的
webhookPayload、sessionInfo字段,工具调用信息可能被封装在这些位置。 - 改用自定义前端对接v3接口,自行解析响应中的工具调用信息,执行工具后将结果返回给Agent,避开DFM的自动拦截逻辑。
- 若允许使用预览版服务,可尝试用v3alpha1接口对接自定义前端,验证
toolCall的正常返回(注意预览版不适合生产环境)。
内容的提问来源于stack exchange,提问作者Jin Huynh
相关产品推荐
相关产品推荐

