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 - Support Question for declarative workflow code generation #2802
changed the title [-].NET Workflows - Support Question for declarative workflow code generation[/-][+].NET Workflows - Support `Question` for declarative workflow code generation[/+]on Dec 11, 2025
In this area, Question refers to the declarative workflow human-input action, not a generic Q&A feature. The declarative workflow README lists it under Human Input as an action that presents a prompt requiring human input.
Runtime support already exists in the interpreter path:
dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\ObjectModel\QuestionExecutor.cs implements the action behavior.
dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\Interpreter\WorkflowActionVisitor.cs wires it into execution as Prepare, Input, and Capture steps.
dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\Entities\EntityExtractor.cs parses the human response into the configured entity/value type.
At runtime the action roughly does this:
Format/show the configured prompt.
Emit an ExternalInputRequest.
Wait for an ExternalInputResponse.
Parse the response using the configured entity.
Assign the parsed value to the configured workflow variable.
Re-prompt or use default behavior when input is missing/invalid.
A representative declarative shape is shown in #1530:
So I believe the gap in this issue is not runtime interpretation of Question; it is generating equivalent C# workflow code for declarative workflows that contain kind: Question, including the request/response port shape and variable/entity handling.
Thanks for the implementation map, Vincent Biret (@baywet). I'd like to take the code-generation gap and request assignment. I would use the existing WorkflowActionVisitor.Visit(Question) and QuestionExecutor interpreted path as the behavior contract.
Proposed first-PR scope:
generate a C# graph equivalent to the existing interpreter behavior, including the external-input request port, entity parsing, variable assignment, retry/default behavior, and alwaysPrompt semantics;
add a Question.yaml fixture and checked-in generated Question.cs baseline beside the existing workflow fixtures; and
verify the generated code compiles and cover valid input assignment, invalid input followed by reprompt, and retry exhaustion falling back to the configured default.
I will keep changes to the existing interpreter/runtime out of scope unless implementing the generator exposes a shared defect. Does that match the intended first-PR boundary? If so, please assign #2802 to me.
Activity
[-].NET Workflows - Support Question for declarative workflow code generation[/-][+].NET Workflows - Support `Question` for declarative workflow code generation[/+]baywet commentedon Aug 26, 2026
Additional context for anyone picking this up:
In this area,
Questionrefers to the declarative workflow human-input action, not a generic Q&A feature. The declarative workflow README lists it under Human Input as an action that presents a prompt requiring human input.Runtime support already exists in the interpreter path:
dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\ObjectModel\QuestionExecutor.csimplements the action behavior.dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\Interpreter\WorkflowActionVisitor.cswires it into execution asPrepare,Input, andCapturesteps.dotnet\src\Microsoft.Agents.AI.Workflows.Declarative\Entities\EntityExtractor.csparses the human response into the configured entity/value type.At runtime the action roughly does this:
prompt.ExternalInputRequest.ExternalInputResponse.entity.variable.A representative declarative shape is shown in #1530:
So I believe the gap in this issue is not runtime interpretation of
Question; it is generating equivalent C# workflow code for declarative workflows that containkind: Question, including the request/response port shape and variable/entity handling.Jokasa7 commentedon Aug 28, 2026
Thanks for the implementation map, Vincent Biret (@baywet). I'd like to take the code-generation gap and request assignment. I would use the existing
WorkflowActionVisitor.Visit(Question)andQuestionExecutorinterpreted path as the behavior contract.Proposed first-PR scope:
alwaysPromptsemantics;Question.yamlfixture and checked-in generatedQuestion.csbaseline beside the existing workflow fixtures; andI will keep changes to the existing interpreter/runtime out of scope unless implementing the generator exposes a shared defect. Does that match the intended first-PR boundary? If so, please assign #2802 to me.