Files
agent-framework/dotnet/samples/GettingStarted/AgentProviders
T
westey 3168eb4870 .NET: [BREAKING] Add session StateBag for state storage and support multiple providers on the Agent (#3806)
* .NET: [BREAKING] Add session statebag to use for state storage instead of inside providers (#3737)

* Add a StateBag to AgentSession and pass Agent and AgentSession to AIContextProvider and ChatHistoryProviders

* Convert all AIContextProviders to use the statebag

* Update InMemoryChatHistoryProvider to use StateBag

* Update Comsos and Workflow ChatHistoryProviders

* Update 3rd party chat history storage sample.

* Remove serialize method from providers

* Replacing provider factories with properties

* Remove Providers from Session and flatten state bag serialization

* Update samples to use getservice on agent

* Updated additional session types to serialize statebag

* Fix regression

* Address PR comments

* Address PR comments.

* Fix formatting

* Fix unit tests

* Remove InMemoryAgentSession since it is not required anymore.

* Address PR comments

* Convert sessions for A2AAgent, ChatClientAgent, CopilotStudioAgent and GithubCopilotAgent to use regular json serialization.

* Fix durable agent session jso usgae

* Add jso to InMemory and Workflow ChatHistoryProviders

* Update InMemoryChatHistoryProvider to use an options class for it's many optional settings.

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Address PR feedback

* Fix verification bug.

* Improve state bag thread safety

* Address PR comments and fix unit tests

* Address PR comments

* Fix unit test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add a public StateKey property to providers (#3810)

* .NET: [BREAKING] Update providers in such a way that they can participate in a pipeline (#3846)

* Make providers pipeline capable

* Fix unit tests

* Move source stamping to providers from base class

* Also update samples.

* Address PR comments

* Rename AsAgentRequestMessageSourcedMessage to WithAgentRequestMessageSource

* .NET: [BREAKING] Add consistent message filtering to all providers. (#3851)

* Add consistent message filtering to all providers.

* Remove old chat history filtering classes

* Fix merge issues

* Fix unit test

* Enforce non-nullable property

* Fix merging bug and make troubleshooting source info easier by adding tostring implementation

* .NET: [BREAKING] Add support for multiple AIContextProviders on a ChatClientAgent (#3863)

* Add support for multiple AIContextProviders on a ChatClientAgent

* Address PR comments and fix tests

* Address PR comments.

* .NET: [BREAKING]Delay AIContext Materialization until the end of the pipeline is reached. (#3883)

* Delay AIContext Materialization until the end of the pipeline is reached.

* Address PR comments.

* Address PR comments

* Modify InvokedContext to be immutable (#3888)

* .NET: Address Feedback on StateBag feature branch PR (#3910)

* Address Feedback on statebag feature branch PR

* Update dotnet/src/Microsoft.Agents.AI.DurableTask/CHANGELOG.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Address PR comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
3168eb4870 ยท 2026-02-13 14:08:07 +00:00
History
..

Creating an AIAgent instance for various providers

These samples show how to create an AIAgent instance using various providers. This is not an exhaustive list, but shows a variety of the more popular options.

For other samples that demonstrate how to use AIAgent instances, see the Getting Started With Agents samples.

Prerequisites

See the README.md for each sample for the prerequisites for that sample.

Samples

Sample Description
Creating an AIAgent with A2A This sample demonstrates how to create AIAgent for an existing A2A agent.
Creating an AIAgent with Anthropic This sample demonstrates how to create an AIAgent using Anthropic Claude models as the underlying inference service
Creating an AIAgent with Foundry Agents using Azure.AI.Agents.Persistent This sample demonstrates how to create a Foundry Persistent agent and expose it as an AIAgent using the Azure.AI.Agents.Persistent SDK
Creating an AIAgent with Foundry Agents using Azure.AI.Project This sample demonstrates how to create an Foundry Project agent and expose it as an AIAgent using the Azure.AI.Project SDK
Creating an AIAgent with AzureFoundry Model This sample demonstrates how to use any model deployed to Azure Foundry to create an AIAgent
Creating an AIAgent with Azure OpenAI ChatCompletion This sample demonstrates how to create an AIAgent using Azure OpenAI ChatCompletion as the underlying inference service
Creating an AIAgent with Azure OpenAI Responses This sample demonstrates how to create an AIAgent using Azure OpenAI Responses as the underlying inference service
Creating an AIAgent with a custom implementation This sample demonstrates how to create an AIAgent with a custom implementation
Creating an AIAgent with GitHub Copilot This sample demonstrates how to create an AIAgent using GitHub Copilot SDK as the underlying inference service
Creating an AIAgent with Ollama This sample demonstrates how to create an AIAgent using Ollama as the underlying inference service
Creating an AIAgent with ONNX This sample demonstrates how to create an AIAgent using ONNX as the underlying inference service
Creating an AIAgent with OpenAI Assistants This sample demonstrates how to create an AIAgent using OpenAI Assistants as the underlying inference service.
WARNING: The Assistants API is deprecated and will be shut down. For more information see the OpenAI documentation: https://platform.openai.com/docs/assistants/migration
Creating an AIAgent with OpenAI ChatCompletion This sample demonstrates how to create an AIAgent using OpenAI ChatCompletion as the underlying inference service
Creating an AIAgent with OpenAI Responses This sample demonstrates how to create an AIAgent using OpenAI Responses as the underlying inference service

Running the samples from the console

To run the samples, navigate to the desired sample directory, e.g.

cd AIAgent_With_AzureOpenAIChatCompletion

Set the required environment variables as documented in the sample readme. If the variables are not set, you will be prompted for the values when running the samples. Execute the following command to build the sample:

dotnet build

Execute the following command to run the sample:

dotnet run --no-build

Or just build and run in one step:

dotnet run

Running the samples from Visual Studio

Open the solution in Visual Studio and set the desired sample project as the startup project. Then, run the project using the built-in debugger or by pressing F5.

You will be prompted for any required environment variables if they are not already set.