MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Demo230 — Typed Workflow
Ready follows AnalyzeDraft → AcceptDraft; incomplete and invalid inputs follow AnalyzeDraft → ClarifyDraft with NeedsClarification. No model or business effect.
Objectives
- Route typed messages through a native deterministic MAF graph.
Prepare the program
No model, embeddings, container or secret required. Start at the root of the complete distribution. Preserve shared projects and configuration files. Some historical prompts and labels in Demo260–290 remain French in public code; commands and identifiers match this revision.
dotnet build BaseTechnique.slnx -m:1 -c Release| Project | Role |
|---|---|
| demos/Demo230_TypedWorkflow/Demo230.App.csproj | App |
| shared/Maf.Workflows/Maf.Workflows.csproj | Shared implementation |
Commands from the root
dotnet run --project demos/Demo230_TypedWorkflow/Demo230.App.csproj -c Release --no-buildProcedures and variants
Compare no argument, --incomplete and --invalid. Predict each branch before reading the console.
var analyze = new AnalyzeDraft();
var clarify = new ClarifyDraft();
var builder = new WorkflowBuilder(analyze)
.AddEdge<DraftDecision>(analyze, clarify, condition: d => d is { IsReady: false });
if (telemetry) builder.WithOpenTelemetry();
if (reviewer is null)
{
var ready = new AcceptDraft();
return builder.AddEdge<DraftDecision>(analyze, ready, condition: d => d is { IsReady: true })
.WithOutputFrom(clarify, ready).Build();
What must be observable
Ready follows AnalyzeDraft → AcceptDraft; incomplete and invalid inputs follow AnalyzeDraft → ClarifyDraft with NeedsClarification. No model or business effect.
These results are expected from the linked code. Checks actually rerun for this lot are distinguished in exercises and reception; no unmeasured live output is presented as observed.
Limits and retained state
Demo230–250 build a fresh graph per input and write no business effect. Demo260 retains its two sessions only in-process. Demo270–290 interpret a plan through simulated printing without a workflow engine. Live calls depend on the profile; scripted tests qualify no model.
dotnet test tests/Maf.Workflows.Tests/Maf.Workflows.Tests.csproj -m:1 -c Release --no-build --no-restore