You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
.NET Workflows - Workflow as Agent how to respond to external input requests #3029
My intent is to get user input (just console right now) for my workflow that is converted to Agent.
The document above stops with a statement: "Provide response in the next message".
The docs don't cover how to do it.
The expectation for the docs from me would be to give complete guidance how to achieve a described outcome. In this case how to provide response in the next message.
I assumed that i must ensure the following things:
get a thread from the agent and use it in all calls
configure checkpointing
In a second call to agent.RunStreamingAsync, provide a new ChatMessage(ChatRole.User, [new FunctionResultContent(callId, userInput)]). Since the ExternalRequest is handled as FunctionCallContent.
I failed to progress past my RequestPort.
Stepping through code with a debugger and searching in repo i was expecting that something converts the FunctionResultContent into a different type, such as ExternalResponse, that is used by Workflow to work with responses to requests. I could not find such a place.
It is also not obvious how to create an ExternalResponse myself or if this is the right idea.
I run in the same problems. AsyncRunHandle checks within EnqueueMessageAsync whether the message is ExternalResponse, but from the WorkflowHostAgent it is always ChatMessage. Thus the Workflow cannot start from a stored Checkpoint after a HitL request. It always starts from the beginning.
There is an additional bit of work to do here: We need to check the incoming messages and properly unwrap incoming responses (whether FunctionCall or user input)
antero-lukkonen, friendly reminder — this issue is waiting on your response. Please share any updates when you get a chance. (This is an automated message.)
Activity
nca-pel commentedon Jan 26, 2026
I run in the same problems. AsyncRunHandle checks within EnqueueMessageAsync whether the message is ExternalResponse, but from the WorkflowHostAgent it is always ChatMessage. Thus the Workflow cannot start from a stored Checkpoint after a HitL request. It always starts from the beginning.
lokitoth commentedon Feb 4, 2026
There is an additional bit of work to do here: We need to check the incoming messages and properly unwrap incoming responses (whether FunctionCall or user input)
VladislavAntonyuk commentedon Feb 26, 2026
antero-lukkonen have you found a solution how to pass user input back to the conversation?
markwallace-microsoft commentedon Mar 20, 2026
antero-lukkonen, friendly reminder — this issue is waiting on your response. Please share any updates when you get a chance. (This is an automated message.)