Skip to content

Releases: JordanMarr/Agent.NET

Agent.NET v1.0.0-rc.1

25 Feb 23:31

Choose a tag to compare

AgentNet & AgentNet.Durable — v1.0.0‑rc.1

This release brings both AgentNet and AgentNet.Durable packages into alignment with the Microsoft Agents Framework (MAF) v1.0.0‑rc2 runtime.
It stabilizes the workflow model, finalizes durable orchestration behavior, and prepares the ecosystem for the upcoming 1.0 release.


What’s New

MAF Runtime Alignment

  • Upgraded all Microsoft.Agents.* dependencies to v1.0.0‑rc2.
  • Ensures compatibility with the finalized workflow envelopes, deterministic execution model, and replay semantics.

AgentNet Core Improvements

  • All unit tests pass against the rc2 runtime, confirming stability of:
    • the instruction graph
    • deterministic step boundaries
    • pure, intention‑revealing workflow definitions
  • Dependency versions aligned across the solution (including FSharp.Core).

AgentNet.Durable Enhancements

  • Durable orchestrations now correctly suspend and resume using rc2’s stable state machine.
  • External events (e.g., approvals) now resume workflows as intended.
  • Removed preview-era behavior where orchestrators ran to completion without yielding.
  • Updated sample Durable Functions project to match rc2 DurableTask behavior.

Sample Workflow Fixes

  • Trade Approval sample now:
    • waits for approval
    • resumes correctly
    • completes with the expected output
  • Improved consistency across all sample projects.

Why This Release Matters

This milestone brings the entire Agent.NET ecosystem into alignment with the near-final MAF 1.0 surface.
It stabilizes durable execution, ensures deterministic behavior, and sets the stage for a clean, predictable 1.0 release.

v1.0.0-alpha.3

21 Jan 15:57

Choose a tag to compare

1.0.0‑alpha.3

This release introduces tryStep, a first‑class way to express typed early‑exit behavior directly inside the main workflow DSL. It replaces the old ResultWorkflow computation expression, offering a simpler, more expressive, and more ergonomic approach to Railway‑Oriented Programming.

✨ Added

  • tryStep — a workflow step that returns a Result and short‑circuits the workflow on Error.
    This brings Railway‑Oriented Programming into the core DSL without requiring a separate computation expression.

🛠️ Changed

  • Removed ResultWorkflow in favor of tryStep.
    The new design is clearer, avoids monadic contagion, and integrates naturally with both in‑process and Durable workflows.

🔧 Improved

  • Refined README structure:
    • Added a concise introduction to tryStep under Features.
    • Replaced redundant sections and improved overall clarity.
    • Added tables for Workflow, Tool, and Agent functions for easier scanning.

1.0.0-alpha.2

14 Jan 06:09

Choose a tag to compare

v1.0.0-alpha.2

Durable Workflows & Major Refinements

New: AgentNet.Durable Package

Host Agent.NET long-running, enterprise workflows reliably on Azure Durable Functions.
This is the final form of workflow execution in Agent.NET — declarative, typed, and minimal.

let tradeApprovalWorkflow = workflow {
    name "TradeApprovalWorkflow"
    step analyzeStock
    step sendForApproval
    awaitEvent "TradeApproval" eventOf<ApprovalDecision>
    step executeTrade
}

[<Function("TradeApprovalOrchestrator")>]
let orchestrator ([<OrchestrationTrigger>] ctx) =
    let request = ctx.GetInput<TradeRequest>()
    Workflow.Durable.run ctx request tradeApprovalWorkflow
  • awaitEvent — suspend workflows waiting for external events (human-in-the-loop patterns)
  • Durable execution powered by Microsoft Agent Framework and Azure Durable Functions with automatic checkpointing
  • Minimal hosting surface — the orchestrator simply runs the workflow

Workflow CE: Stronger Typing, Cleaner Syntax

The Workflow computation expression has matured into a more predictable, more expressive DSL for defining long‑running workflows.

  • SRTP type inference
    Steps now infer input/output types more reliably, reducing annotation noise and making workflows feel more “F#‑native.”
  • Plug‑and‑play step composition
    Each step can now be a plain function, Task, Async, TypedAgent, or even a nested workflow — all with consistent typing and execution semantics.
  • Compiler‑enforced I/O correctness
    The CE now enforces that each step’s output matches the next step’s input, eliminating entire classes of runtime errors.
  • Simplified API surface
    Redundant helpers and experimental constructs have been removed or unified, leaving a smaller, more intentional API.
  • Fan‑out ergonomics
    Parallel branches are easier to express and reason about, with clearer type signatures and more predictable behavior.

Why this matters:
Workflows now read like clean, declarative pipelines — and the compiler guarantees correctness.

TypedAgent: Structured, Typed Agent Execution

A new agent type that brings structure and safety to LLM‑powered steps.

  • Typed input/output
    Define agents with explicit request and response types for predictable, validated boundaries.
  • Prompt + parse model
    Each agent combines a prompt generator with a typed parser, giving you full control over structure and error handling.
  • Upgrade path from ChatAgent
    ChatAgent remains supported, but TypedAgent is now the recommended way to build reliable agent steps.

Why this matters:
You get the flexibility of LLM agents with the safety of typed contracts — ideal for workflows that must be correct, resumable, and durable.

Architecture: Cleaner, Safer, More Predictable

This release includes major internal refinements that make Agent.NET more robust and easier to reason about.

  • MAF InProcessExecution replaces the prototype runner
    Local execution now mirrors durable execution semantics, reducing conceptual drift between hosts.

  • Removal of reflection and obj
    Internal step representation is now fully typed, eliminating reflection‑based dispatch and improving safety.

  • C# executors for serialization boundaries
    Durable Functions serialization is now handled internally by explicit C# executors, ensuring compatibility and clarity.

  • Stronger internal step model
    Steps are now represented in a more explicit, typed form, improving debuggability and reducing edge cases.

Why this matters:
The engine is now more predictable, more maintainable, and better aligned with the durable execution model.

Cleanup & Polish

  • Multi‑targeting for broader compatibility: net8.0, net9.0, net10.0
  • Numerous bug fixes and stability improvements
  • Durable hosting hardened for real‑world workloads

v1.0.0-alpha.1

14 Jan 06:02

Choose a tag to compare

v1.0.0-alpha.1

Agent.NET - First Alpha Release 🎉

Elegant agent workflows for .NET, designed in F#.

Highlights

  • Quotation-based Tool creation - Use Tool.create <@ myFunction @> to automatically extract function name, parameter names, and types. Use Tool.createWithDocs to also pull XML documentation as descriptions.
  • Pipeline-style ChatAgent API - Build agents with a clean, composable pipeline:
ChatAgent.create "You are a helpful assistant."
|> ChatAgent.withTools [tool1; tool2]
|> ChatAgent.build chatClient
  • Workflow computation expression - Orchestrate multi-step agent workflows with:
    • Sequential pipelines (step)
    • Parallel execution (fanOut / fanIn)
    • Conditional routing (route)
    • Resilience patterns (retry, timeout, fallback, backoff)
  • ResultWorkflow - Railway-oriented programming with automatic error short-circuiting
  • In-memory execution via Workflow.runInProcess

This alpha wraps https://github.com/microsoft/agent-framework with idiomatic F# APIs. Feedback welcome!