Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Unable to pass the parameters between playbooks in google conversational agents

Question/problem: while trying to pass the parameters extracted from an OPEN API tool in a child playbook to a parent playbook it is unable to do so, in the trace debug it is showing up as " error unable to parse" and in the original response, the "actionParameters" for playbook output is null despite defining in examples and in the output parameters of child playbook.

Parent playbook - Order Status:
starting instructions where it calls the child playbook to retrieve user order history and username 

vikram_6174_2-1744094325595.png

example defined :

vikram_6174_3-1744094376569.png

user order history playbook expanded :

vikram_6174_4-1744094406167.png

vikram_6174_5-1744094418970.png

vikram_6174_6-1744094452508.png

vikram_6174_8-1744094468709.png

defined output parameters that needs to be passed to the parent playbook.

vikram_6174_11-1744094508686.pngvikram_6174_12-1744094613882.png

Child playbook : User Order History

Instructions provided :

vikram_6174_13-1744094739982.png

example provided to the playbook:

vikram_6174_14-1744094787227.png

vikram_6174_16-1744094835663.png

 

vikram_6174_19-1744094922026.png

vikram_6174_20-1744094937242.png

parameters that child playbook returns are defined under the parameters tab in child playbook as below.

vikram_6174_21-1744095087700.png

During the conversation as below :

vikram_6174_22-1744095150918.png

vikram_6174_24-1744095268857.png

The tool is getting the output properly but the child playbook is unable to emit out through the output parameters during the conversation as defined in the example.

vikram_6174_23-1744095243694.png

 
Error messages :
In debug trace 

vikram_6174_1-1744094226665.png

IN original response :

The tool output is 200 status 

vikram_6174_25-1744095371112.png

but the playbook outputActionParameters is empty due to which the error is occurring.

vikram_6174_26-1744095443717.png

Can you please tell me where it is going wrong ,I have read the documentation but didn't find anything helpful, I followed whatever they mentioned in it.
Any help or lead would be much appreciated.

 

0 2 118
2 REPLIES 2

This looks like a problem similar to the one I reported in my post YAML parsing error when transferring to a playbook. In my case, the situation was reversed: The parent playbook used a tool to get data that would be passed to a child playbook as input parameters. But that didn't work. I get the same message you did "Sorry, something went wrong" and, in the trace, I got a YAML parsing error:

Error! Got action "pb^Flat tire flow" from LLM, but failed to parse its input as YAML:

  preceding_conversation_summary: "Caller, Robert Williams, with phone number 555-555-1212 and zip code 91236, reported a flat tire and is not in immediate danger.",
  caller_name: "Robert Williams",
  caller_address: "789 Pine Lane, Springfield, MA 91236",
  vehicle_description: "2022 Chevrolet Equinox, White"

That seems like a bug.

Instead of using parameters, I reverted to create examples for the parent playbook, which teach the LLM to provide the necessary information in the Playbook invocation input Summary when calling the child playbook. This seems to work well. Actually, it may work better than using parameters because the information provided in the Summary can be more nuanced than what can be done using just parameters.

For instance, in my case, a roadside assistance scenario, I need to pass an address obtained via a tool call in the parent playbook but I need to make it clear to the child playbook that this is the address on file for the user, which may not be their current location. Such distinction might be clear to the LLM if it has access to the entire conversation history, but not if it needs to solely rely on parameters.

In any case, there really is a bug in the platform and Google should fix it.

BTW, in the L400 training, Google’s Pak Ming Wan recommends using a single playbook, if possible. That’s probably good advice since it avoids many of the challenges of maintaining context from one playbook to another.

Hello Norman ,  I tried mentioning in the playbook invocation output but it didn't work out below is the summary sample I Used

Summary:
The order history and username are successfully retrieved and the $User_name and $UserHistory are successfully updated with the retrieved values from tool, returning back to the previous playbook to continue the conversation.

Could you suggest any improvements or provide me an example of your summary so that I can refer and improve.