Implement generative AI and agentic solutions 2.2 Build agents by using Foundry
A Microsoft Agent Framework workflow is waiting for a human operator to answer a request…
Study guide skill: Build autonomous or semiautonomous workflows with safeguards and approval flow controls
Question B8-023
A Microsoft Agent Framework workflow is waiting for a human operator to answer a request that an executor sent, and the workflow had saved a checkpoint. The host process restarts, and you restore the workflow from that checkpoint. What happens to the pending request?
Select one answer.
Answer: A
Pending requests are saved as part of the checkpoint state, and when you restore from the checkpoint they're re-emitted as RequestInfoEvent objects so you can respond. You can also resume and provide responses in the same call by passing the checkpoint ID and the responses. Nothing is lost or auto-filled.
Deep dive
How it works
In Microsoft Agent Framework workflows, an executor asks a human (or any external party) for input by sending a message to a RequestPort, which emits a RequestInfoEvent with the request details. Your host captures the event, gets the answer and sends the response back.
Checkpoints are designed to survive exactly the restart in this question:
- When a checkpoint is created, pending requests are saved as part of the checkpoint state.
- When you restore from a checkpoint, any pending requests are re-emitted as RequestInfoEvent objects, so you can capture and respond to them.
- You can also resume and respond in one step by passing both checkpoint_id and responses to the workflow run.
So the operator's pending request comes back after the restore, and the workflow continues once you send the response.
The same event pattern covers tool approvals: when an agent calls an approval-required tool, the workflow pauses and emits a RequestInfoEvent whose payload is a tool approval request.
The other options, and when you'd use them
- A default response is filled in: Restored pending requests are re-emitted for you to respond to. The page describes no auto-fill.
- Discarded because checkpoints don't store requests: Pending requests are saved as part of the checkpoint state.
- Lost, start over: They're restored and re-emitted, so the workflow continues from the checkpoint.
Exam tip
HITL + checkpoint + restart = pending requests come back as RequestInfoEvent. Answer them, or pass checkpoint_id and responses together.
References
Last reviewed: