MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Demo300 — External Request
RequestPort and SendResponseAsync are real; the external party is simulated by the immediate CLI decision. approve yields Completed with StoredItem, reject no item, maybe fails. Each launch creates a fresh operation and temporary database.
Objectives
- Pause a graph for an explicit external response.
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/Demo300_ExternalRequest/Demo300.App.csproj | App |
| shared/Maf.Durable/Maf.Durable.csproj | Shared implementation |
Commands from the root
dotnet run --project demos/Demo300_ExternalRequest/Demo300.App.csproj -c Release --no-build -- approveProcedures and variants
Run approve, reject then maybe as separate invocations. Record printed identities and states.
var prepare = new Prepare(store);
var port = RequestPort.Create<ApprovalTicket, ApprovalDecision>("BusinessApprovalV1");
var apply = new Apply(store, failAfterWrite);
return new WorkflowBuilder(prepare).AddEdge(prepare, port).AddEdge(port, apply)
.WithOutputFrom(apply).Build();
What must be observable
RequestPort and SendResponseAsync are real; the external party is simulated by the immediate CLI decision. approve yields Completed with StoredItem, reject no item, maybe fails. Each launch creates a fresh operation and temporary database.
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
Demo300 responds in the live process; Demo310 retains its manager in memory; only Demo320 stores file checkpoints for another-process recovery. SQLite exists in all three variants. Local row uniqueness, no distributed exactly-once. The CLI trusts its operator without reviewer authentication.
dotnet test tests/Maf.Durable.Tests/Maf.Durable.Tests.csproj -m:1 -c Release --no-build --no-restore