如何通过Google Conversational Agent Playbook获取Cloud Function原始JSON响应?
我在Conversational Agent中创建了一个简单的Playbook,指令是连接工具搜索产品。该工具已通过指向Cloud Function URL的OpenAPI Schema配置完成,当前可正常运行,能通过Postman调用Playbook。
目前Cloud Function会返回JSON payload,但Playbook会将结果总结为纯文本(例如“我找到了3个符合搜索条件的产品,以下是这3个产品”)。这种表现虽可接受,但我还希望获取返回的原始JSON payload用于不同场景的数据处理。我可以通过Webhook实现此功能,但这会绕开Playbook路径,求解决方案。
附OpenAPI Schema的响应部分:
"responses": { "200": { "description": "Successfully got results (may be empty)", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "description": "Status of the response" }, "data": { "type": "array", "items": { "type": "object", "properties": { "Product Name": { "type": "string", "description": "Name of the product" }, "Product Price": { "type": "number", "description": "Price of the product" } } } } } } } } }, "404": { "description": "Cannot reach endpoint (may be empty)" } }
以下是几种无需绕开Playbook路径即可获取原始JSON payload的方法:
修改Playbook输出配置
多数Conversational Agent平台在工具调用环节提供输出模式选项,可直接切换为「返回原始API响应」或类似设置。找到Playbook中产品搜索工具调用后的输出配置项,将其从“生成自然语言总结”改为“保留原始响应数据”,即可直接获取完整JSON payload。在OpenAPI Schema中添加自定义扩展标记(平台支持时)
如果你的Conversational Agent支持识别OpenAPI的自定义扩展字段,可以在Schema的响应部分添加x-return-raw: true这类标记,明确告知平台不要处理原始响应,直接返回JSON数据。示例修改如下:"responses": { "200": { "description": "Successfully got results (may be empty)", "x-return-raw": true, // 添加自定义标记 "content": { // 原有schema内容不变 } } }注意:该方法依赖平台对自定义扩展的支持,需先确认平台文档。
更新Playbook指令逻辑
直接在Playbook的核心指令中明确要求:「调用产品搜索工具后,同时返回用户友好的纯文本总结,以及用代码块包裹的原始JSON响应数据」。通过明确的指令约束,让Agent在生成总结的同时,附带原始JSON payload。
内容的提问来源于stack exchange,提问作者dcu

