Uh oh!
There was an error while loading. Please reload this page.
.Net: WIP: feat: Define Workflow and Executor APIs - #261
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements the foundational Workflow APIs for .NET, establishing the core architecture for orchestrating message-based executors within workflows. It introduces the executor pattern for handling typed messages, workflow builders for defining execution flow, and higher-order operations like loops, chains, and fan-in/fan-out patterns.
Key changes:
- Core executor and message handling infrastructure with type-safe message routing
- Workflow builder pattern for constructing execution graphs with conditional edges
- Higher-order workflow operations (loops, chains, fan-in/out) for complex orchestration patterns
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| WorkflowBuilderExtensions.cs | Implements higher-order workflow operations and fan-in/out patterns |
| WorkflowBuilder.cs | Core workflow construction logic with executor tracking and edge management |
| TypeErasure.cs | Utility for handling generic ValueTask types in reflection scenarios |
| MessageRouting.cs | Message dispatch system with reflection-based handler binding |
| MessageHandler.cs | Core interfaces for typed message handling |
| Message.cs | Message wrapper types with metadata and retry functionality |
| Executor.cs | Abstract base class for workflow execution units |
| ExecutionContext.cs | Interface for execution services |
| DisposableObject.cs | Base class for async disposal pattern |
| CompletedValueTaskSource.cs | Compatibility utilities for ValueTask across framework versions |
Comments suppressed due to low confidence (1)
dotnet/src/Microsoft.Agents.Orchestration/Workflows/WorkflowBuilderExtensions.cs:17
- Missing closing parenthesis for the string interpolation expression. The line should end with
);instead of";.
throw new ArgumentNullException(nameof(value), $"Value cannot be null: {paramExpr}";
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6156431 to
692963bCompare692963b to
870221fCompare870221f to
70261e6Compare70261e6 to
6474997Compare
Chris (crickman)
left a comment
There was a problem hiding this comment.
Are unit-tests and samples intended to be included in this change?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Chris (crickman)
commented
Jul 28, 2025
Should this be its own project independent from the specific orchestrations? |
* Add invoking samples to unit tests to avoid future breaks
* Also adds xmldoc to all public APIs
Uh oh!
There was an error while loading. Please reload this page.
Implements the Workflow APIs for .NET
TODOs:
Checkpointing(will be in folloup PR)Source Generator for ConfigureRoutes()(will be in folloup PR, if needed)