* Subclass AgentThread so that different agents have their own threads with their own typed settings. * Address PR comment. * Add unit tests for base abstract threads * Fix style warning * Fix stlying * FIx and suppress warnings as needed. * Remove covariant thread response types and fix some styling. * Remove unecessary json property name attributes and make OrchestratingAgentThread private * Fix break from merge from main. * Fix formatting * Fix deserialization bug in Memory sample * Remove thread deletion from basic samples. * Remove public constructors for thread subclasses and add more factory methods to concrete agent types. * Update AgentProxy thread constructors to be internal as well. * Revert AgentProxyThread to internal * Change AIContextProvider to internal set * Change conversation id and message store properties to internal set * Update styling. * Seal various thread types. * Add thread type check for thread deletion * Fix tests after latest merge from main * Add thread type checks for thread deletion. --------- Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
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 Steps 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 AzureFoundry | This sample demonstrates how to create an Azure Foundry agent and expose it as 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 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.