Files
agent-framework/dotnet
T
Stephen Toub 03ef7f054f .NET: Add AgentWorkflowBuilder group chat (#861)
* Add AgentWorkflowBuilder group chat

And fix a variety of issues along the way:
- Use DateTime{Offset}.UtcNow rather than Now
- AIAgentHostExecutor shouldn't be publishing empty messages
- Sequential workflows should be flowing all history and not just the output from the previous agent as the input into the next agent
- Renamed some of the new agent workflow methods... still not super happy with the shape, though
- Simplified handoffs builder, e.g. using a hashset with a custom comparer instead of a dictionary
- Improved multi-service use by trying to change assistant->user role for messages created by other agents
- Changed MessageMerger to rely on M.E.AI's coalescing more and to avoid empty contents / text
- Ensured that messages from ChatClientAgent include MessageId and CreatedAt timestamps
- Avoided including instructions for agents in a handoff workflow that don't have any handoffs
- Removed the unnecessary end function in handoffs
- Improved naming of executors to include agent name for debuggability
- Use "N" formatting with Guid.ToString everywhere, to avoid the unnecessary extra dash character which is also not valid in various places (like function tool names)
- Replace `params T[]` with `params IEnumerable<T>` to make public APIs more flexible in what they consume

* Address feedback

- Fix unintentional provider change in sample
03ef7f054f · 2025-09-24 16:38:34 +00:00
History
..

Get Started with Microsoft Agent Framework for C# Developers

Run the Minimal Console demo

The Minimal Console demo is a simple console application which shows how to create and run an agent.

Supported Platforms:

  • .Net: net9.0, net8.0, netstandard2.0, net472
  • OS: Windows, macOS, Linux

If you want to use the latest published packages following the instructions here.

1. Configure required environment variables

This samples uses Azure OpenAI by default so you need to set the following environment variable

$env:AZURE_OPENAI_ENDPOINT = "https://<your deployment>.openai.azure.com/"

If you want to use OpenAI

  1. Edit Program.cs and change the following lines:
    AIAgent agent = new AzureOpenAIClient(
      new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!),
      new AzureCliCredential())
       .GetChatClient("gpt-4o-mini")
       .CreateAIAgent(
         instructions: "You are a helpful assistant, you can help the user with weather information.",
         tools: [AIFunctionFactory.Create(GetWeather)]);
    
    To this:
    AIAgent agent = new OpenAIClient(Environment.GetEnvironmentVariable("OPENAI_API_KEY")!)
      .GetChatClient("gpt-4o-mini")
      .CreateAIAgent(
        instructions: "You are a helpful assistant, you can help the user with weather information.",
        tools: [AIFunctionFactory.Create(GetWeather)]);
    
  2. Create an environment variable with your OpenAI key
    $env:OPENAI_API_KEY = "sk-..."
    

2. Build the project

cd demos\MinimalConsole
dotnet build

3. Run the demonstration

dotnet run --framework net9.0 --no-build

Sample output:

The weather in Amsterdam is currently cloudy, with a high temperature of 15°C.