efe227c290
A single source can reach the same target through more than one edge (for example a switch case plus a sibling direct edge to the same executor). Counting those repeated deliveries as multiple predecessors made the target look like a fan-in point, so the durable runner aggregated the deliveries into one invocation instead of running the target once per delivery as in-process does. Count distinct predecessor sources so only genuine fan-in (multiple distinct sources) is aggregated. Adds regression tests for the selector-throws path, a conditional sibling edge alongside a switch, and fan-in detection. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Get Started with Microsoft Agent Framework for C# Developers
Quickstart
Basic Agent - .NET
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI.Responses;
var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!;
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME")!;
var agent = new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential())
.GetResponsesClient(deploymentName)
.AsAIAgent(name: "HaikuBot", instructions: "You are an upbeat assistant that writes beautifully.");
Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework."));
Examples & Samples
- Getting Started with Agents: basic agent creation and tool usage
- Agent Provider Samples: samples showing different agent providers
- Workflow Samples: advanced multi-agent patterns and workflow orchestration