AgentNet 0.1.0
This release unifies AgentNet's packages and moves all workflow execution onto the Microsoft Agent Framework.
Package changes
- AgentNet.InProcess and AgentNet.Durable are unified into a single AgentNet package — agents, the workflow DSL, and both in-process and durable execution now live in one place.
- The AgentNet.InProcess namespace is preserved, so existing open AgentNet.InProcess code continues to compile.
- AgentNet.InProcess.Polly (optional resilience decorators) is unchanged.
- AgentNet.InProcess and AgentNet.Durable are deprecated — use AgentNet.
Execution
- All workflow execution now runs on the Microsoft Agent Framework, in-process and durable alike.
- Durable workflows use MAF's native checkpoint/resume model. The Azure Durable Functions (Microsoft.DurableTask) dependency has been removed — durable workflows have no Azure-specific hosting requirement and can run on any host with a checkpoint store.
- One workflow definition, two execution modes:
Workflow.InProcess.run— runs within the current process.Workflow.Durable.start/Workflow.Durable.resume— checkpointed per step, suspended atawaitEvent, and resumed from the checkpoint (across process restarts), persisted via a pluggableICheckpointStore(in-memory, file system, or your own).
awaitEventis supported in both modes — for human-in-the-loop steps and async service callbacks.
Migration
- Replace AgentNet.InProcess / AgentNet.Durable package references with AgentNet; open AgentNet.InProcess source is unchanged.
- For durable workflows, replace the Durable Functions orchestrator and
Workflow.Durable.runwithWorkflow.Durable.start/resumeover a checkpoint store. See the Samples.DurableOcr sample for the full pattern.
Versioning
Versioning resets to 0.x while the API stabilizes ahead of 1.0.
Known limitations
- F# discriminated unions do not yet round-trip through MAF's JSON checkpoint serializer; use records for
awaitEventpayloads and other checkpointed data. (NOTE: The latest preview of System.Text.Json natively supports F# DUs, so hopefully this will "just work" when MAF updates to the latest STJ.) - Durable resume re-delivers the step following an
awaitEventat-least-once — make post-awaitEventside effects idempotent (see the sample).