I have a question about the execution behavior of Google BigQuery Agent when a user interrupts or modifies a request during a multi-step workflow.
Assume the agent processes a user request like this:
User request -> Step 1 -> Step 2 -> Step 3 -> Final result
In my case, each step may generate and execute a BigQuery SQL query.
For example:
Step 1: execute query A
Step 2: execute query B
Step 3: execute query C
What I want to understand is what happens if the user modifies the request while the workflow is already in progress, for example:
User request -> Step 1 -> user modification/interruption -> Step 2 -> user modification/interruption -> Step 3 -> Final result
My questions are:
1. If the user modifies the request after Step 1, does the agent continue executing the originally planned Step 2 query in the background?
2. Does the modification create a new task/run while the original task/run continues, meaning that both the original queries and the modified queries may be executed?
3. Or does BigQuery Agent pause/cancel the previous flow and keep only one active task based on the latest user request?
4. If a BigQuery query has already been submitted as a BigQuery job before the user interruption, is that job automatically cancelled, or does it continue running unless explicitly cancelled?
5. Is there any recommended way to pause, cancel, or deduplicate BigQuery jobs generated by an agent when the user changes the request in the middle of the workflow?
My main concern is duplicate BigQuery query execution and unnecessary BigQuery cost.
For example, suppose the original flow is:
User request
-> Step 1: query A
-> Step 2: query B_original
-> Step 3: query C_original
-> result
Then the user modifies the request after Step 1, and the new flow should be:
User request
-> Step 1: query A
-> user modification
-> Step 2: query B_modified
-> Step 3: query C_modified
-> result
In this situation, will BigQuery Agent execute both `query B_original` and `query B_modified`, or only `query B_modified`?
Also, is there a built-in pause/cancel mechanism for this kind of mid-task user intervention, or do I need to implement my own job cancellation or task-state management logic?