MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Typed branches and plans
Compare deterministic clarification, native review and plan validation without a business effect.
Objectives
- Use this page to understand: Typed branches and plans.
Work on complete programs
Prerequisites: Demo230–240 and BacklogDraft. Files: shared/Maf.Workflows/BacklogWorkflow.cs, tests/Maf.Workflows.Tests and Demo230–250 programs. Use a working copy. Demo230 and invalid/incomplete branches need no model; only the ready branch in native variants calls the chat profile. Demo270 planning is an extension after this experiment.
Run and record branches
dotnet build BaseTechnique.slnx -m:1 -c Release
dotnet run --project demos/Demo230_TypedWorkflow/Demo230.App.csproj -c Release --no-build
dotnet run --project demos/Demo230_TypedWorkflow/Demo230.App.csproj -c Release --no-build -- --incomplete
dotnet run --project demos/Demo240_AgentWorkflow/Demo240.App.csproj -c Release --no-build -- --invalid
dotnet run --project demos/Demo240_AgentWorkflow/Demo240.App.csproj -c Release --no-build -- --incompleteRecord terminal result, errors and executed path. In a test copy count scripted-client calls: zero for clarification, one for a ready review. Then read plan order/domain validation; do not execute a step merely because its JSON is valid.
Require an explicit terminal result
The incomplete path is AnalyzeDraft → ClarifyDraft and produces NeedsClarification. The deterministic ready graph produces Ready. Native review can be Rejected despite parsable JSON if facts change. Two agent-executor deliveries do not mean two model calls: message then TurnToken. Reviewed creates no backlog row and grants no approval.
Diagnostic hints
Separate the possible graph, actual ExecutorInvokedEvent deliveries and final WorkflowOutputEvent. Inspect IsReady and exclusive conditions before model prose. Build a fresh graph for each input; the review snapshot is not durable concurrent state.
Correction in tests and chapter
dotnet test tests/Maf.Workflows.Tests/Maf.Workflows.Tests.csproj -m:1 -c Release --no-build --no-restoreValidation and execution
This exercise uses current typed graphs; old C# routers remain an architectural comparison. It establishes neither autonomous handoff, open concurrency nor durable resumption. Evaluate these mechanisms separately.
