From f9287a319b87b7cf46a82545f4306b5fafdb4d18 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 09:47:51 -0800 Subject: [PATCH 01/36] Python: .NET Samples - Restructure and Improve Samples (Feature Branch) (#4091) --- dotnet/agent-framework-dotnet.slnx | 51 +++++++++--------- .../A2AClient/A2AClient.csproj | 6 +-- .../A2AClient/HostClientAgent.cs | 0 .../A2AClientServer/A2AClient/Program.cs | 0 .../A2AClientServer/A2AClient/README.md | 2 +- .../A2AServer/A2AServer.csproj | 10 ++-- .../A2AClientServer/A2AServer/A2AServer.http | 0 .../A2AServer/HostAgentFactory.cs | 0 .../A2AServer/Models/InvoiceQuery.cs | 0 .../A2AClientServer/A2AServer/Program.cs | 0 .../A2AClientServer/README.md | 0 .../a2a-inspector-agent-card.png | Bin .../a2a-inspector-raw-json-response.png | Bin .../a2a-inspector-send-message.png | Bin .../A2AClientServer/demo-architecture.png | Bin .../rest-client-agent-card.png | Bin .../rest-client-send-message.png | Bin .../AGUIClient/AGUIClient.csproj | 4 +- .../AGUIClient/AGUIClientSerializerContext.cs | 0 .../AGUIClientServer/AGUIClient/Program.cs | 0 .../AGUIClientServer/AGUIClient/README.md | 0 .../AGUIClient/SensorRequest.cs | 0 .../AGUIClient/SensorResponse.cs | 0 .../AGUIDojoServer/AGUIDojoServer.csproj | 6 +-- .../AGUIDojoServerSerializerContext.cs | 0 .../AgenticUI/AgenticPlanningTools.cs | 0 .../AgenticUI/AgenticUIAgent.cs | 0 .../AgenticUI/JsonPatchOperation.cs | 0 .../AGUIDojoServer/AgenticUI/Plan.cs | 0 .../AGUIDojoServer/AgenticUI/Step.cs | 0 .../AGUIDojoServer/AgenticUI/StepStatus.cs | 0 .../BackendToolRendering/WeatherInfo.cs | 0 .../AGUIDojoServer/ChatClientAgentFactory.cs | 0 .../PredictiveStateUpdates/DocumentState.cs | 0 .../PredictiveStateUpdatesAgent.cs | 0 .../AGUIDojoServer/Program.cs | 0 .../Properties/launchSettings.json | 0 .../AGUIDojoServer/SharedState/Ingredient.cs | 0 .../AGUIDojoServer/SharedState/Recipe.cs | 0 .../SharedState/RecipeResponse.cs | 0 .../SharedState/SharedStateAgent.cs | 0 .../appsettings.Development.json | 0 .../AGUIDojoServer/appsettings.json | 0 .../AGUIServer/AGUIServer.csproj | 6 +-- .../AGUIServer/AGUIServer.http | 0 .../AGUIServer/AGUIServerSerializerContext.cs | 0 .../AGUIClientServer/AGUIServer/Program.cs | 0 .../AGUIServer/Properties/launchSettings.json | 0 .../ServerWeatherForecastRequest.cs | 0 .../ServerWeatherForecastResponse.cs | 0 .../AGUIClientServer/README.md | 0 .../Client/AGUIWebChatClient.csproj | 2 +- .../AGUIWebChat/Client/Components/App.razor | 0 .../Components/Layout/LoadingSpinner.razor | 0 .../Layout/LoadingSpinner.razor.css | 0 .../Client/Components/Layout/MainLayout.razor | 0 .../Components/Layout/MainLayout.razor.css | 0 .../Client/Components/Pages/Chat/Chat.razor | 0 .../Components/Pages/Chat/Chat.razor.css | 0 .../Components/Pages/Chat/ChatCitation.razor | 0 .../Pages/Chat/ChatCitation.razor.css | 0 .../Components/Pages/Chat/ChatHeader.razor | 0 .../Pages/Chat/ChatHeader.razor.css | 0 .../Components/Pages/Chat/ChatInput.razor | 0 .../Components/Pages/Chat/ChatInput.razor.css | 0 .../Components/Pages/Chat/ChatInput.razor.js | 0 .../Pages/Chat/ChatMessageItem.razor | 0 .../Pages/Chat/ChatMessageItem.razor.css | 0 .../Pages/Chat/ChatMessageList.razor | 0 .../Pages/Chat/ChatMessageList.razor.css | 0 .../Pages/Chat/ChatMessageList.razor.js | 0 .../Pages/Chat/ChatSuggestions.razor | 0 .../Pages/Chat/ChatSuggestions.razor.css | 0 .../Client/Components/Routes.razor | 0 .../Client/Components/_Imports.razor | 0 .../AGUIWebChat/Client/Program.cs | 0 .../Client/Properties/launchSettings.json | 0 .../AGUIWebChat/Client/wwwroot/app.css | 0 .../AGUIWebChat/Client/wwwroot/favicon.png | Bin .../{ => 05-end-to-end}/AGUIWebChat/README.md | 0 .../Server/AGUIWebChatServer.csproj | 6 +-- .../AGUIWebChat/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../ActorFrameworkWebApplicationExtensions.cs | 0 .../AgentWebChat.AgentHost.csproj | 14 ++--- .../Custom/CustomAITools.cs | 0 .../AgentWebChat.AgentHost/Program.cs | 0 .../Properties/launchSettings.json | 0 .../Utilities/ChatClientConnectionInfo.cs | 0 .../Utilities/ChatClientExtensions.cs | 0 .../appsettings.Development.json | 0 .../AgentWebChat.AgentHost/appsettings.json | 0 .../AgentWebChat.AppHost.csproj | 0 .../AgentWebChat.AppHost/ModelExtensions.cs | 0 .../AgentWebChat.AppHost/Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../AgentWebChat.AppHost/appsettings.json | 0 .../AgentWebChat.ServiceDefaults.csproj | 0 .../ServiceDefaultsExtensions.cs | 0 .../AgentWebChat.Web/A2AAgentClient.cs | 0 .../AgentWebChat.Web/AgentDiscoveryClient.cs | 0 .../AgentWebChat.Web/AgentWebChat.Web.csproj | 18 +++++++ .../AgentWebChat.Web/Components/App.razor | 0 .../Components/Layout/MainLayout.razor | 0 .../Components/Layout/MainLayout.razor.css | 0 .../Components/Pages/Error.razor | 0 .../Components/Pages/Home.razor | 0 .../AgentWebChat.Web/Components/Routes.razor | 0 .../Components/_Imports.razor | 0 .../AgentWebChat.Web/IAgentClient.cs | 0 .../OpenAIChatCompletionsAgentClient.cs | 0 .../OpenAIResponsesAgentClient.cs | 0 .../AgentWebChat/AgentWebChat.Web/Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../AgentWebChat.Web/appsettings.json | 0 .../AgentWebChat.Web/wwwroot/app.css | 0 .../AgentWebChat.Web/wwwroot/favicon.png | Bin .../AgentWithPurview/AgentWithPurview.csproj | 0 .../AgentWithPurview/Program.cs | 0 .../AgentWithHostedMCP.csproj | 0 .../AgentWithHostedMCP/Dockerfile | 0 .../AgentWithHostedMCP/Program.cs | 0 .../HostedAgents/AgentWithHostedMCP/README.md | 0 .../AgentWithHostedMCP/agent.yaml | 0 .../AgentWithHostedMCP/run-requests.http | 0 .../AgentWithTextSearchRag.csproj | 0 .../AgentWithTextSearchRag/Dockerfile | 0 .../AgentWithTextSearchRag/Program.cs | 0 .../AgentWithTextSearchRag/README.md | 0 .../AgentWithTextSearchRag/agent.yaml | 0 .../AgentWithTextSearchRag/run-requests.http | 0 .../AgentsInWorkflows.csproj | 0 .../HostedAgents/AgentsInWorkflows/Dockerfile | 0 .../HostedAgents/AgentsInWorkflows/Program.cs | 0 .../HostedAgents/AgentsInWorkflows/README.md | 0 .../HostedAgents/AgentsInWorkflows/agent.yaml | 0 .../AgentsInWorkflows/run-requests.http | 0 .../M365Agent/AFAgentApplication.cs | 0 .../M365Agent/Agents/AdaptiveCardAIContent.cs | 0 .../M365Agent/Agents/WeatherForecastAgent.cs | 0 .../Agents/WeatherForecastAgentResponse.cs | 0 ...WeatherForecastAgentResponseContentType.cs | 0 .../M365Agent/Auth/AspNetExtensions.cs | 0 .../M365Agent/Auth/TokenValidationOptions.cs | 0 .../M365Agent/JsonUtilities.cs | 0 .../M365Agent/M365Agent.csproj | 2 +- .../{ => 05-end-to-end}/M365Agent/Program.cs | 0 .../M365Agent/Properties/launchSettings.json | 0 .../{ => 05-end-to-end}/M365Agent/README.md | 0 .../M365Agent/appManifest/color.png | Bin .../M365Agent/appManifest/manifest.json | 0 .../M365Agent/appManifest/outline.png | Bin .../M365Agent/appsettings.json.template | 0 .../AgentWebChat.Web/AgentWebChat.Web.csproj | 18 ------- python/samples/04-hosting/a2a/README.md | 2 +- 157 files changed, 72 insertions(+), 75 deletions(-) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AClient/A2AClient.csproj (60%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AClient/HostClientAgent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AClient/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AClient/README.md (91%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AServer/A2AServer.csproj (54%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AServer/A2AServer.http (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AServer/HostAgentFactory.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AServer/Models/InvoiceQuery.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/A2AServer/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/a2a-inspector-agent-card.png (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/a2a-inspector-raw-json-response.png (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/a2a-inspector-send-message.png (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/demo-architecture.png (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/rest-client-agent-card.png (100%) rename dotnet/samples/{ => 05-end-to-end}/A2AClientServer/rest-client-send-message.png (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/AGUIClient.csproj (70%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/AGUIClientSerializerContext.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/SensorRequest.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIClient/SensorResponse.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj (56%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AGUIDojoServerSerializerContext.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticPlanningTools.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticUIAgent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/JsonPatchOperation.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/Plan.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/Step.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/AgenticUI/StepStatus.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/BackendToolRendering/WeatherInfo.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/ChatClientAgentFactory.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/DocumentState.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/PredictiveStateUpdatesAgent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/SharedState/Ingredient.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/SharedState/Recipe.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/SharedState/RecipeResponse.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/SharedState/SharedStateAgent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/appsettings.Development.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIDojoServer/appsettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/AGUIServer.csproj (56%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/AGUIServer.http (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/AGUIServerSerializerContext.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/ServerWeatherForecastRequest.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/AGUIServer/ServerWeatherForecastResponse.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIClientServer/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/AGUIWebChatClient.csproj (75%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/App.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Layout/MainLayout.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Layout/MainLayout.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.js (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.js (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/Routes.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Components/_Imports.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/wwwroot/app.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Client/wwwroot/favicon.png (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Server/AGUIWebChatServer.csproj (52%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Server/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AGUIWebChat/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/ActorFrameworkWebApplicationExtensions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj (55%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/Custom/CustomAITools.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientConnectionInfo.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/appsettings.Development.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AgentHost/appsettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/AgentWebChat.AppHost.csproj (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/ModelExtensions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/appsettings.Development.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.AppHost/appsettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.ServiceDefaults/AgentWebChat.ServiceDefaults.csproj (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.ServiceDefaults/ServiceDefaultsExtensions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/AgentDiscoveryClient.cs (100%) create mode 100644 dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/App.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/Pages/Error.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/Pages/Home.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/Routes.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Components/_Imports.razor (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/IAgentClient.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/OpenAIChatCompletionsAgentClient.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/OpenAIResponsesAgentClient.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/appsettings.Development.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/appsettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/wwwroot/app.css (100%) rename dotnet/samples/{ => 05-end-to-end}/AgentWebChat/AgentWebChat.Web/wwwroot/favicon.png (100%) rename dotnet/samples/{Purview => 05-end-to-end}/AgentWithPurview/AgentWithPurview.csproj (100%) rename dotnet/samples/{Purview => 05-end-to-end}/AgentWithPurview/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/Dockerfile (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/agent.yaml (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithHostedMCP/run-requests.http (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/Dockerfile (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/agent.yaml (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentWithTextSearchRag/run-requests.http (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/Dockerfile (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/agent.yaml (100%) rename dotnet/samples/{ => 05-end-to-end}/HostedAgents/AgentsInWorkflows/run-requests.http (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/AFAgentApplication.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Agents/AdaptiveCardAIContent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Agents/WeatherForecastAgent.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Agents/WeatherForecastAgentResponse.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Agents/WeatherForecastAgentResponseContentType.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Auth/AspNetExtensions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Auth/TokenValidationOptions.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/JsonUtilities.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/M365Agent.csproj (88%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Program.cs (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/Properties/launchSettings.json (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/README.md (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/appManifest/color.png (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/appManifest/manifest.json (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/appManifest/outline.png (100%) rename dotnet/samples/{ => 05-end-to-end}/M365Agent/appsettings.json.template (100%) delete mode 100644 dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index b3a1fd81f3..f891f6aba0 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -7,21 +7,30 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -147,10 +156,6 @@ - - - - @@ -265,14 +270,6 @@ - - - - - - - - diff --git a/dotnet/samples/A2AClientServer/A2AClient/A2AClient.csproj b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/A2AClient.csproj similarity index 60% rename from dotnet/samples/A2AClientServer/A2AClient/A2AClient.csproj rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/A2AClient.csproj index 6b88c5c697..01a5a069bc 100644 --- a/dotnet/samples/A2AClientServer/A2AClient/A2AClient.csproj +++ b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/A2AClient.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/dotnet/samples/A2AClientServer/A2AClient/HostClientAgent.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/HostClientAgent.cs similarity index 100% rename from dotnet/samples/A2AClientServer/A2AClient/HostClientAgent.cs rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/HostClientAgent.cs diff --git a/dotnet/samples/A2AClientServer/A2AClient/Program.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/Program.cs similarity index 100% rename from dotnet/samples/A2AClientServer/A2AClient/Program.cs rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/Program.cs diff --git a/dotnet/samples/A2AClientServer/A2AClient/README.md b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md similarity index 91% rename from dotnet/samples/A2AClientServer/A2AClient/README.md rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md index c542430b22..5a80e0220f 100644 --- a/dotnet/samples/A2AClientServer/A2AClient/README.md +++ b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md @@ -18,7 +18,7 @@ To run the sample, follow these steps: The agent urls are provided as a ` ` delimited list of strings ```powershell -cd dotnet/samples/A2AClientServer/A2AClient +cd dotnet/samples/05-end-to-end/A2AClientServer/A2AClient $env:OPENAI_MODEL="gpt-4o-mini" $env:OPENAI_API_KEY="" diff --git a/dotnet/samples/A2AClientServer/A2AServer/A2AServer.csproj b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/A2AServer.csproj similarity index 54% rename from dotnet/samples/A2AClientServer/A2AServer/A2AServer.csproj rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/A2AServer.csproj index 0a3b170a0b..be5ff472c1 100644 --- a/dotnet/samples/A2AClientServer/A2AServer/A2AServer.csproj +++ b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/A2AServer.csproj @@ -19,12 +19,12 @@ - - + + - - - + + + diff --git a/dotnet/samples/A2AClientServer/A2AServer/A2AServer.http b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/A2AServer.http similarity index 100% rename from dotnet/samples/A2AClientServer/A2AServer/A2AServer.http rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/A2AServer.http diff --git a/dotnet/samples/A2AClientServer/A2AServer/HostAgentFactory.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/HostAgentFactory.cs similarity index 100% rename from dotnet/samples/A2AClientServer/A2AServer/HostAgentFactory.cs rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/HostAgentFactory.cs diff --git a/dotnet/samples/A2AClientServer/A2AServer/Models/InvoiceQuery.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Models/InvoiceQuery.cs similarity index 100% rename from dotnet/samples/A2AClientServer/A2AServer/Models/InvoiceQuery.cs rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Models/InvoiceQuery.cs diff --git a/dotnet/samples/A2AClientServer/A2AServer/Program.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs similarity index 100% rename from dotnet/samples/A2AClientServer/A2AServer/Program.cs rename to dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs diff --git a/dotnet/samples/A2AClientServer/README.md b/dotnet/samples/05-end-to-end/A2AClientServer/README.md similarity index 100% rename from dotnet/samples/A2AClientServer/README.md rename to dotnet/samples/05-end-to-end/A2AClientServer/README.md diff --git a/dotnet/samples/A2AClientServer/a2a-inspector-agent-card.png b/dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-agent-card.png similarity index 100% rename from dotnet/samples/A2AClientServer/a2a-inspector-agent-card.png rename to dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-agent-card.png diff --git a/dotnet/samples/A2AClientServer/a2a-inspector-raw-json-response.png b/dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-raw-json-response.png similarity index 100% rename from dotnet/samples/A2AClientServer/a2a-inspector-raw-json-response.png rename to dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-raw-json-response.png diff --git a/dotnet/samples/A2AClientServer/a2a-inspector-send-message.png b/dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-send-message.png similarity index 100% rename from dotnet/samples/A2AClientServer/a2a-inspector-send-message.png rename to dotnet/samples/05-end-to-end/A2AClientServer/a2a-inspector-send-message.png diff --git a/dotnet/samples/A2AClientServer/demo-architecture.png b/dotnet/samples/05-end-to-end/A2AClientServer/demo-architecture.png similarity index 100% rename from dotnet/samples/A2AClientServer/demo-architecture.png rename to dotnet/samples/05-end-to-end/A2AClientServer/demo-architecture.png diff --git a/dotnet/samples/A2AClientServer/rest-client-agent-card.png b/dotnet/samples/05-end-to-end/A2AClientServer/rest-client-agent-card.png similarity index 100% rename from dotnet/samples/A2AClientServer/rest-client-agent-card.png rename to dotnet/samples/05-end-to-end/A2AClientServer/rest-client-agent-card.png diff --git a/dotnet/samples/A2AClientServer/rest-client-send-message.png b/dotnet/samples/05-end-to-end/A2AClientServer/rest-client-send-message.png similarity index 100% rename from dotnet/samples/A2AClientServer/rest-client-send-message.png rename to dotnet/samples/05-end-to-end/A2AClientServer/rest-client-send-message.png diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/AGUIClient.csproj b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/AGUIClient.csproj similarity index 70% rename from dotnet/samples/AGUIClientServer/AGUIClient/AGUIClient.csproj rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/AGUIClient.csproj index 7d80fa7cda..8a45c09ce0 100644 --- a/dotnet/samples/AGUIClientServer/AGUIClient/AGUIClient.csproj +++ b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/AGUIClient.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/AGUIClientSerializerContext.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/AGUIClientSerializerContext.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIClient/AGUIClientSerializerContext.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/AGUIClientSerializerContext.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/Program.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/Program.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIClient/Program.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/Program.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/README.md b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/README.md similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIClient/README.md rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/README.md diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/SensorRequest.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/SensorRequest.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIClient/SensorRequest.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/SensorRequest.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIClient/SensorResponse.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/SensorResponse.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIClient/SensorResponse.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIClient/SensorResponse.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj similarity index 56% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj index cea8efff76..eb2dc3f77e 100644 --- a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj +++ b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AGUIDojoServer.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AGUIDojoServerSerializerContext.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AGUIDojoServerSerializerContext.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AGUIDojoServerSerializerContext.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AGUIDojoServerSerializerContext.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticPlanningTools.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticPlanningTools.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticPlanningTools.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticPlanningTools.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticUIAgent.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticUIAgent.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticUIAgent.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/AgenticUIAgent.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/JsonPatchOperation.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/JsonPatchOperation.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/JsonPatchOperation.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/JsonPatchOperation.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/Plan.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/Plan.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/Plan.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/Plan.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/Step.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/Step.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/Step.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/Step.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/StepStatus.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/StepStatus.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/AgenticUI/StepStatus.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/AgenticUI/StepStatus.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/BackendToolRendering/WeatherInfo.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/BackendToolRendering/WeatherInfo.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/BackendToolRendering/WeatherInfo.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/BackendToolRendering/WeatherInfo.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/ChatClientAgentFactory.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/ChatClientAgentFactory.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/ChatClientAgentFactory.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/ChatClientAgentFactory.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/DocumentState.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/DocumentState.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/DocumentState.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/DocumentState.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/PredictiveStateUpdatesAgent.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/PredictiveStateUpdatesAgent.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/PredictiveStateUpdatesAgent.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/PredictiveStateUpdates/PredictiveStateUpdatesAgent.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/Program.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/Program.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/Program.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/Program.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/Properties/launchSettings.json diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/Ingredient.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/Ingredient.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/Ingredient.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/Ingredient.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/Recipe.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/Recipe.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/Recipe.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/Recipe.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/RecipeResponse.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/RecipeResponse.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/RecipeResponse.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/RecipeResponse.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/SharedStateAgent.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/SharedStateAgent.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/SharedState/SharedStateAgent.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/SharedState/SharedStateAgent.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/appsettings.Development.json b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/appsettings.Development.json similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/appsettings.Development.json rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/appsettings.Development.json diff --git a/dotnet/samples/AGUIClientServer/AGUIDojoServer/appsettings.json b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/appsettings.json similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIDojoServer/appsettings.json rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIDojoServer/appsettings.json diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/AGUIServer.csproj b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServer.csproj similarity index 56% rename from dotnet/samples/AGUIClientServer/AGUIServer/AGUIServer.csproj rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServer.csproj index ccfe22923a..c26e3eebad 100644 --- a/dotnet/samples/AGUIClientServer/AGUIServer/AGUIServer.csproj +++ b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServer.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/AGUIServer.http b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServer.http similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/AGUIServer.http rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServer.http diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/AGUIServerSerializerContext.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServerSerializerContext.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/AGUIServerSerializerContext.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/AGUIServerSerializerContext.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/Program.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/Program.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/Program.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/Program.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/Properties/launchSettings.json diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/ServerWeatherForecastRequest.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/ServerWeatherForecastRequest.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/ServerWeatherForecastRequest.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/ServerWeatherForecastRequest.cs diff --git a/dotnet/samples/AGUIClientServer/AGUIServer/ServerWeatherForecastResponse.cs b/dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/ServerWeatherForecastResponse.cs similarity index 100% rename from dotnet/samples/AGUIClientServer/AGUIServer/ServerWeatherForecastResponse.cs rename to dotnet/samples/05-end-to-end/AGUIClientServer/AGUIServer/ServerWeatherForecastResponse.cs diff --git a/dotnet/samples/AGUIClientServer/README.md b/dotnet/samples/05-end-to-end/AGUIClientServer/README.md similarity index 100% rename from dotnet/samples/AGUIClientServer/README.md rename to dotnet/samples/05-end-to-end/AGUIClientServer/README.md diff --git a/dotnet/samples/AGUIWebChat/Client/AGUIWebChatClient.csproj b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/AGUIWebChatClient.csproj similarity index 75% rename from dotnet/samples/AGUIWebChat/Client/AGUIWebChatClient.csproj rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/AGUIWebChatClient.csproj index b28e53df6e..fef0deb3ec 100644 --- a/dotnet/samples/AGUIWebChat/Client/AGUIWebChatClient.csproj +++ b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/AGUIWebChatClient.csproj @@ -8,7 +8,7 @@ - + diff --git a/dotnet/samples/AGUIWebChat/Client/Components/App.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/App.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/App.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/App.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/LoadingSpinner.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Layout/MainLayout.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/MainLayout.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Layout/MainLayout.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/MainLayout.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Layout/MainLayout.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/MainLayout.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Layout/MainLayout.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Layout/MainLayout.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/Chat.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatCitation.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatHeader.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.js b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.js similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.js rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatInput.razor.js diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageItem.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.js b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.js similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.js rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatMessageList.razor.js diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Pages/Chat/ChatSuggestions.razor.css diff --git a/dotnet/samples/AGUIWebChat/Client/Components/Routes.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Routes.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/Routes.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/Routes.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Components/_Imports.razor b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/_Imports.razor similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Components/_Imports.razor rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Components/_Imports.razor diff --git a/dotnet/samples/AGUIWebChat/Client/Program.cs b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Program.cs rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs diff --git a/dotnet/samples/AGUIWebChat/Client/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json diff --git a/dotnet/samples/AGUIWebChat/Client/wwwroot/app.css b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/wwwroot/app.css similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/wwwroot/app.css rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/wwwroot/app.css diff --git a/dotnet/samples/AGUIWebChat/Client/wwwroot/favicon.png b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/wwwroot/favicon.png similarity index 100% rename from dotnet/samples/AGUIWebChat/Client/wwwroot/favicon.png rename to dotnet/samples/05-end-to-end/AGUIWebChat/Client/wwwroot/favicon.png diff --git a/dotnet/samples/AGUIWebChat/README.md b/dotnet/samples/05-end-to-end/AGUIWebChat/README.md similarity index 100% rename from dotnet/samples/AGUIWebChat/README.md rename to dotnet/samples/05-end-to-end/AGUIWebChat/README.md diff --git a/dotnet/samples/AGUIWebChat/Server/AGUIWebChatServer.csproj b/dotnet/samples/05-end-to-end/AGUIWebChat/Server/AGUIWebChatServer.csproj similarity index 52% rename from dotnet/samples/AGUIWebChat/Server/AGUIWebChatServer.csproj rename to dotnet/samples/05-end-to-end/AGUIWebChat/Server/AGUIWebChatServer.csproj index c45adfd4a8..e798d23506 100644 --- a/dotnet/samples/AGUIWebChat/Server/AGUIWebChatServer.csproj +++ b/dotnet/samples/05-end-to-end/AGUIWebChat/Server/AGUIWebChatServer.csproj @@ -13,9 +13,9 @@ - - - + + + diff --git a/dotnet/samples/AGUIWebChat/Server/Program.cs b/dotnet/samples/05-end-to-end/AGUIWebChat/Server/Program.cs similarity index 100% rename from dotnet/samples/AGUIWebChat/Server/Program.cs rename to dotnet/samples/05-end-to-end/AGUIWebChat/Server/Program.cs diff --git a/dotnet/samples/AGUIWebChat/Server/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AGUIWebChat/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AGUIWebChat/Server/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AGUIWebChat/Server/Properties/launchSettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/ActorFrameworkWebApplicationExtensions.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/ActorFrameworkWebApplicationExtensions.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/ActorFrameworkWebApplicationExtensions.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/ActorFrameworkWebApplicationExtensions.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj similarity index 55% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj index f71becf5d3..4ed6d27cbd 100644 --- a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj +++ b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/AgentWebChat.AgentHost.csproj @@ -8,13 +8,13 @@ - - - - - - - + + + + + + + diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Custom/CustomAITools.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Custom/CustomAITools.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Custom/CustomAITools.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Custom/CustomAITools.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Program.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Program.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Program.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Program.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Properties/launchSettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientConnectionInfo.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientConnectionInfo.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientConnectionInfo.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientConnectionInfo.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/appsettings.Development.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/appsettings.Development.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/appsettings.Development.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/appsettings.Development.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/appsettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/appsettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/appsettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AgentHost/appsettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/AgentWebChat.AppHost.csproj b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/AgentWebChat.AppHost.csproj similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/AgentWebChat.AppHost.csproj rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/AgentWebChat.AppHost.csproj diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/ModelExtensions.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/ModelExtensions.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/ModelExtensions.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/ModelExtensions.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/Program.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/Program.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/Program.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/Program.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/Properties/launchSettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/appsettings.Development.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/appsettings.Development.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/appsettings.Development.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/appsettings.Development.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.AppHost/appsettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/appsettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.AppHost/appsettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.AppHost/appsettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.ServiceDefaults/AgentWebChat.ServiceDefaults.csproj b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.ServiceDefaults/AgentWebChat.ServiceDefaults.csproj similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.ServiceDefaults/AgentWebChat.ServiceDefaults.csproj rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.ServiceDefaults/AgentWebChat.ServiceDefaults.csproj diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.ServiceDefaults/ServiceDefaultsExtensions.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.ServiceDefaults/ServiceDefaultsExtensions.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.ServiceDefaults/ServiceDefaultsExtensions.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.ServiceDefaults/ServiceDefaultsExtensions.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/A2AAgentClient.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentDiscoveryClient.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentDiscoveryClient.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentDiscoveryClient.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentDiscoveryClient.cs diff --git a/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj new file mode 100644 index 0000000000..5335499168 --- /dev/null +++ b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj @@ -0,0 +1,18 @@ + + + + net10.0 + enable + enable + $(NoWarn);CA1812 + + + + + + + + + + + diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/App.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/App.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/App.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/App.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor.css b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor.css similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor.css rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Layout/MainLayout.razor.css diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Pages/Error.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Pages/Error.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Pages/Error.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Pages/Error.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Pages/Home.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Pages/Home.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Pages/Home.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Pages/Home.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Routes.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Routes.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/Routes.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/Routes.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/_Imports.razor b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/_Imports.razor similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Components/_Imports.razor rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Components/_Imports.razor diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/IAgentClient.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/IAgentClient.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/IAgentClient.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/IAgentClient.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/OpenAIChatCompletionsAgentClient.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/OpenAIChatCompletionsAgentClient.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/OpenAIChatCompletionsAgentClient.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/OpenAIChatCompletionsAgentClient.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/OpenAIResponsesAgentClient.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/OpenAIResponsesAgentClient.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/OpenAIResponsesAgentClient.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/OpenAIResponsesAgentClient.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Program.cs b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Program.cs similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Program.cs rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Program.cs diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/Properties/launchSettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/appsettings.Development.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/appsettings.Development.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/appsettings.Development.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/appsettings.Development.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/appsettings.json b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/appsettings.json similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/appsettings.json rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/appsettings.json diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/wwwroot/app.css b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/wwwroot/app.css similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/wwwroot/app.css rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/wwwroot/app.css diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/wwwroot/favicon.png b/dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/wwwroot/favicon.png similarity index 100% rename from dotnet/samples/AgentWebChat/AgentWebChat.Web/wwwroot/favicon.png rename to dotnet/samples/05-end-to-end/AgentWebChat/AgentWebChat.Web/wwwroot/favicon.png diff --git a/dotnet/samples/Purview/AgentWithPurview/AgentWithPurview.csproj b/dotnet/samples/05-end-to-end/AgentWithPurview/AgentWithPurview.csproj similarity index 100% rename from dotnet/samples/Purview/AgentWithPurview/AgentWithPurview.csproj rename to dotnet/samples/05-end-to-end/AgentWithPurview/AgentWithPurview.csproj diff --git a/dotnet/samples/Purview/AgentWithPurview/Program.cs b/dotnet/samples/05-end-to-end/AgentWithPurview/Program.cs similarity index 100% rename from dotnet/samples/Purview/AgentWithPurview/Program.cs rename to dotnet/samples/05-end-to-end/AgentWithPurview/Program.cs diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/AgentWithHostedMCP.csproj diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/Dockerfile b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Dockerfile similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/Dockerfile rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Dockerfile diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/Program.cs rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/Program.cs diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/README.md b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/README.md similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/README.md rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/README.md diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/agent.yaml b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/agent.yaml similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/agent.yaml rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/agent.yaml diff --git a/dotnet/samples/HostedAgents/AgentWithHostedMCP/run-requests.http b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/run-requests.http similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithHostedMCP/run-requests.http rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithHostedMCP/run-requests.http diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/AgentWithTextSearchRag.csproj diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/Dockerfile b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/Dockerfile similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/Dockerfile rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/Dockerfile diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/Program.cs similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/Program.cs rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/Program.cs diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/README.md b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/README.md similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/README.md rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/README.md diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/agent.yaml b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/agent.yaml similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/agent.yaml rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/agent.yaml diff --git a/dotnet/samples/HostedAgents/AgentWithTextSearchRag/run-requests.http b/dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/run-requests.http similarity index 100% rename from dotnet/samples/HostedAgents/AgentWithTextSearchRag/run-requests.http rename to dotnet/samples/05-end-to-end/HostedAgents/AgentWithTextSearchRag/run-requests.http diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/AgentsInWorkflows.csproj diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/Dockerfile b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/Dockerfile similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/Dockerfile rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/Dockerfile diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/Program.cs b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/Program.cs similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/Program.cs rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/Program.cs diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/README.md b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/README.md similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/README.md rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/README.md diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/agent.yaml b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/agent.yaml similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/agent.yaml rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/agent.yaml diff --git a/dotnet/samples/HostedAgents/AgentsInWorkflows/run-requests.http b/dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/run-requests.http similarity index 100% rename from dotnet/samples/HostedAgents/AgentsInWorkflows/run-requests.http rename to dotnet/samples/05-end-to-end/HostedAgents/AgentsInWorkflows/run-requests.http diff --git a/dotnet/samples/M365Agent/AFAgentApplication.cs b/dotnet/samples/05-end-to-end/M365Agent/AFAgentApplication.cs similarity index 100% rename from dotnet/samples/M365Agent/AFAgentApplication.cs rename to dotnet/samples/05-end-to-end/M365Agent/AFAgentApplication.cs diff --git a/dotnet/samples/M365Agent/Agents/AdaptiveCardAIContent.cs b/dotnet/samples/05-end-to-end/M365Agent/Agents/AdaptiveCardAIContent.cs similarity index 100% rename from dotnet/samples/M365Agent/Agents/AdaptiveCardAIContent.cs rename to dotnet/samples/05-end-to-end/M365Agent/Agents/AdaptiveCardAIContent.cs diff --git a/dotnet/samples/M365Agent/Agents/WeatherForecastAgent.cs b/dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgent.cs similarity index 100% rename from dotnet/samples/M365Agent/Agents/WeatherForecastAgent.cs rename to dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgent.cs diff --git a/dotnet/samples/M365Agent/Agents/WeatherForecastAgentResponse.cs b/dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgentResponse.cs similarity index 100% rename from dotnet/samples/M365Agent/Agents/WeatherForecastAgentResponse.cs rename to dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgentResponse.cs diff --git a/dotnet/samples/M365Agent/Agents/WeatherForecastAgentResponseContentType.cs b/dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgentResponseContentType.cs similarity index 100% rename from dotnet/samples/M365Agent/Agents/WeatherForecastAgentResponseContentType.cs rename to dotnet/samples/05-end-to-end/M365Agent/Agents/WeatherForecastAgentResponseContentType.cs diff --git a/dotnet/samples/M365Agent/Auth/AspNetExtensions.cs b/dotnet/samples/05-end-to-end/M365Agent/Auth/AspNetExtensions.cs similarity index 100% rename from dotnet/samples/M365Agent/Auth/AspNetExtensions.cs rename to dotnet/samples/05-end-to-end/M365Agent/Auth/AspNetExtensions.cs diff --git a/dotnet/samples/M365Agent/Auth/TokenValidationOptions.cs b/dotnet/samples/05-end-to-end/M365Agent/Auth/TokenValidationOptions.cs similarity index 100% rename from dotnet/samples/M365Agent/Auth/TokenValidationOptions.cs rename to dotnet/samples/05-end-to-end/M365Agent/Auth/TokenValidationOptions.cs diff --git a/dotnet/samples/M365Agent/JsonUtilities.cs b/dotnet/samples/05-end-to-end/M365Agent/JsonUtilities.cs similarity index 100% rename from dotnet/samples/M365Agent/JsonUtilities.cs rename to dotnet/samples/05-end-to-end/M365Agent/JsonUtilities.cs diff --git a/dotnet/samples/M365Agent/M365Agent.csproj b/dotnet/samples/05-end-to-end/M365Agent/M365Agent.csproj similarity index 88% rename from dotnet/samples/M365Agent/M365Agent.csproj rename to dotnet/samples/05-end-to-end/M365Agent/M365Agent.csproj index f40d404204..72352b7f01 100644 --- a/dotnet/samples/M365Agent/M365Agent.csproj +++ b/dotnet/samples/05-end-to-end/M365Agent/M365Agent.csproj @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/dotnet/samples/M365Agent/Program.cs b/dotnet/samples/05-end-to-end/M365Agent/Program.cs similarity index 100% rename from dotnet/samples/M365Agent/Program.cs rename to dotnet/samples/05-end-to-end/M365Agent/Program.cs diff --git a/dotnet/samples/M365Agent/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/M365Agent/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/M365Agent/Properties/launchSettings.json rename to dotnet/samples/05-end-to-end/M365Agent/Properties/launchSettings.json diff --git a/dotnet/samples/M365Agent/README.md b/dotnet/samples/05-end-to-end/M365Agent/README.md similarity index 100% rename from dotnet/samples/M365Agent/README.md rename to dotnet/samples/05-end-to-end/M365Agent/README.md diff --git a/dotnet/samples/M365Agent/appManifest/color.png b/dotnet/samples/05-end-to-end/M365Agent/appManifest/color.png similarity index 100% rename from dotnet/samples/M365Agent/appManifest/color.png rename to dotnet/samples/05-end-to-end/M365Agent/appManifest/color.png diff --git a/dotnet/samples/M365Agent/appManifest/manifest.json b/dotnet/samples/05-end-to-end/M365Agent/appManifest/manifest.json similarity index 100% rename from dotnet/samples/M365Agent/appManifest/manifest.json rename to dotnet/samples/05-end-to-end/M365Agent/appManifest/manifest.json diff --git a/dotnet/samples/M365Agent/appManifest/outline.png b/dotnet/samples/05-end-to-end/M365Agent/appManifest/outline.png similarity index 100% rename from dotnet/samples/M365Agent/appManifest/outline.png rename to dotnet/samples/05-end-to-end/M365Agent/appManifest/outline.png diff --git a/dotnet/samples/M365Agent/appsettings.json.template b/dotnet/samples/05-end-to-end/M365Agent/appsettings.json.template similarity index 100% rename from dotnet/samples/M365Agent/appsettings.json.template rename to dotnet/samples/05-end-to-end/M365Agent/appsettings.json.template diff --git a/dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj b/dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj deleted file mode 100644 index fd26f56191..0000000000 --- a/dotnet/samples/AgentWebChat/AgentWebChat.Web/AgentWebChat.Web.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - net10.0 - enable - enable - $(NoWarn);CA1812 - - - - - - - - - - - diff --git a/python/samples/04-hosting/a2a/README.md b/python/samples/04-hosting/a2a/README.md index dd09aaaa1a..2ede8b8a3d 100644 --- a/python/samples/04-hosting/a2a/README.md +++ b/python/samples/04-hosting/a2a/README.md @@ -25,7 +25,7 @@ Make sure to set the following environment variables before running the example: For quick testing and demonstration, you can use the pre-built .NET A2A servers from this repository: **Quick Testing Reference**: Use the .NET A2A Client Server sample at: -`..\agent-framework\dotnet\samples\A2AClientServer` +`..\agent-framework\dotnet\samples\05-end-to-end\A2AClientServer` ### Run Python A2A Sample ```powershell From 330b30250c5cd4d575cdca1b81488665dc321b11 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 10:47:06 -0800 Subject: [PATCH 02/36] Moved by agent (#4094) --- dotnet/agent-framework-dotnet.slnx | 17 +++++++++++------ .../01_hello_agent/01_hello_agent.csproj} | 2 +- .../01_hello_agent}/Program.cs | 0 .../02_add_tools/02_add_tools.csproj} | 2 +- .../02_add_tools}/Program.cs | 0 .../03_multi_turn/03_multi_turn.csproj} | 2 +- .../03_multi_turn}/Program.cs | 0 .../04_memory/04_memory.csproj} | 2 +- .../04_memory}/Program.cs | 0 .../05_first_workflow/05_first_workflow.csproj} | 2 +- .../05_first_workflow}/Program.cs | 0 .../06_host_your_agent.csproj} | 4 ++-- .../06_host_your_agent}/Program.cs | 0 .../06_host_your_agent}/README.md | 0 .../06_host_your_agent}/demo.http | 0 .../06_host_your_agent}/host.json | 0 .../01_SingleAgent/local.settings.json | 10 ---------- .../Durable/Agents/AzureFunctions/README.md | 3 +-- .../GettingStarted/AgentWithMemory/README.md | 2 +- dotnet/samples/GettingStarted/Agents/README.md | 3 --- .../samples/GettingStarted/Workflows/README.md | 1 - .../README.md | 2 +- 22 files changed, 21 insertions(+), 31 deletions(-) rename dotnet/samples/{GettingStarted/Agents/Agent_Step02_MultiturnConversation/Agent_Step02_MultiturnConversation.csproj => 01-get-started/01_hello_agent/01_hello_agent.csproj} (80%) rename dotnet/samples/{GettingStarted/Agents/Agent_Step01_Running => 01-get-started/01_hello_agent}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Agent_Step03_UsingFunctionTools.csproj => 01-get-started/02_add_tools/02_add_tools.csproj} (80%) rename dotnet/samples/{GettingStarted/Agents/Agent_Step03_UsingFunctionTools => 01-get-started/02_add_tools}/Program.cs (100%) rename dotnet/samples/{GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/AgentWithMemory_Step03_CustomMemory.csproj => 01-get-started/03_multi_turn/03_multi_turn.csproj} (80%) rename dotnet/samples/{GettingStarted/Agents/Agent_Step02_MultiturnConversation => 01-get-started/03_multi_turn}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Agents/Agent_Step01_Running/Agent_Step01_Running.csproj => 01-get-started/04_memory/04_memory.csproj} (80%) rename dotnet/samples/{GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory => 01-get-started/04_memory}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/01_ExecutorsAndEdges.csproj => 01-get-started/05_first_workflow/05_first_workflow.csproj} (69%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges => 01-get-started/05_first_workflow}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj => 01-get-started/06_host_your_agent/06_host_your_agent.csproj} (85%) rename dotnet/samples/{Durable/Agents/AzureFunctions/01_SingleAgent => 01-get-started/06_host_your_agent}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/01_SingleAgent => 01-get-started/06_host_your_agent}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/01_SingleAgent => 01-get-started/06_host_your_agent}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/01_SingleAgent => 01-get-started/06_host_your_agent}/host.json (100%) delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/local.settings.json diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index f891f6aba0..617085f9aa 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -7,6 +7,17 @@ + + + + + + + + + + + @@ -37,7 +48,6 @@ - @@ -84,9 +94,6 @@ - - - @@ -146,7 +153,6 @@ - @@ -261,7 +267,6 @@ - diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step02_MultiturnConversation/Agent_Step02_MultiturnConversation.csproj b/dotnet/samples/01-get-started/01_hello_agent/01_hello_agent.csproj similarity index 80% rename from dotnet/samples/GettingStarted/Agents/Agent_Step02_MultiturnConversation/Agent_Step02_MultiturnConversation.csproj rename to dotnet/samples/01-get-started/01_hello_agent/01_hello_agent.csproj index 0f9de7c359..b32de63906 100644 --- a/dotnet/samples/GettingStarted/Agents/Agent_Step02_MultiturnConversation/Agent_Step02_MultiturnConversation.csproj +++ b/dotnet/samples/01-get-started/01_hello_agent/01_hello_agent.csproj @@ -15,7 +15,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step01_Running/Program.cs b/dotnet/samples/01-get-started/01_hello_agent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step01_Running/Program.cs rename to dotnet/samples/01-get-started/01_hello_agent/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Agent_Step03_UsingFunctionTools.csproj b/dotnet/samples/01-get-started/02_add_tools/02_add_tools.csproj similarity index 80% rename from dotnet/samples/GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Agent_Step03_UsingFunctionTools.csproj rename to dotnet/samples/01-get-started/02_add_tools/02_add_tools.csproj index 0f9de7c359..b32de63906 100644 --- a/dotnet/samples/GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Agent_Step03_UsingFunctionTools.csproj +++ b/dotnet/samples/01-get-started/02_add_tools/02_add_tools.csproj @@ -15,7 +15,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Program.cs b/dotnet/samples/01-get-started/02_add_tools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step03_UsingFunctionTools/Program.cs rename to dotnet/samples/01-get-started/02_add_tools/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/AgentWithMemory_Step03_CustomMemory.csproj b/dotnet/samples/01-get-started/03_multi_turn/03_multi_turn.csproj similarity index 80% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/AgentWithMemory_Step03_CustomMemory.csproj rename to dotnet/samples/01-get-started/03_multi_turn/03_multi_turn.csproj index 0f9de7c359..b32de63906 100644 --- a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/AgentWithMemory_Step03_CustomMemory.csproj +++ b/dotnet/samples/01-get-started/03_multi_turn/03_multi_turn.csproj @@ -15,7 +15,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step02_MultiturnConversation/Program.cs b/dotnet/samples/01-get-started/03_multi_turn/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step02_MultiturnConversation/Program.cs rename to dotnet/samples/01-get-started/03_multi_turn/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step01_Running/Agent_Step01_Running.csproj b/dotnet/samples/01-get-started/04_memory/04_memory.csproj similarity index 80% rename from dotnet/samples/GettingStarted/Agents/Agent_Step01_Running/Agent_Step01_Running.csproj rename to dotnet/samples/01-get-started/04_memory/04_memory.csproj index 0f9de7c359..b32de63906 100644 --- a/dotnet/samples/GettingStarted/Agents/Agent_Step01_Running/Agent_Step01_Running.csproj +++ b/dotnet/samples/01-get-started/04_memory/04_memory.csproj @@ -15,7 +15,7 @@ - + diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/Program.cs b/dotnet/samples/01-get-started/04_memory/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step03_CustomMemory/Program.cs rename to dotnet/samples/01-get-started/04_memory/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/01_ExecutorsAndEdges.csproj b/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj similarity index 69% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/01_ExecutorsAndEdges.csproj rename to dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj index 2f41070759..8430479a72 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/01_ExecutorsAndEdges.csproj +++ b/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/Program.cs b/dotnet/samples/01-get-started/05_first_workflow/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/01_ExecutorsAndEdges/Program.cs rename to dotnet/samples/01-get-started/05_first_workflow/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj similarity index 85% rename from dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj rename to dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj index 0c0e4f7fe0..99f78cc1ab 100644 --- a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj +++ b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj @@ -36,7 +36,7 @@ --> - - + + diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/Program.cs b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/Program.cs rename to dotnet/samples/01-get-started/06_host_your_agent/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/README.md b/dotnet/samples/01-get-started/06_host_your_agent/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/README.md rename to dotnet/samples/01-get-started/06_host_your_agent/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/demo.http b/dotnet/samples/01-get-started/06_host_your_agent/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/demo.http rename to dotnet/samples/01-get-started/06_host_your_agent/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/host.json b/dotnet/samples/01-get-started/06_host_your_agent/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/host.json rename to dotnet/samples/01-get-started/06_host_your_agent/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/01_SingleAgent/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/README.md b/dotnet/samples/Durable/Agents/AzureFunctions/README.md index 2545712ea4..7ae9ecd3e9 100644 --- a/dotnet/samples/Durable/Agents/AzureFunctions/README.md +++ b/dotnet/samples/Durable/Agents/AzureFunctions/README.md @@ -2,7 +2,6 @@ This directory contains samples for Azure Functions. -- **[01_SingleAgent](01_SingleAgent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. - **[02_AgentOrchestration_Chaining](02_AgentOrchestration_Chaining)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it using a durable orchestration. - **[03_AgentOrchestration_Concurrency](03_AgentOrchestration_Concurrency)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them concurrently using a durable orchestration. - **[04_AgentOrchestration_Conditionals](04_AgentOrchestration_Conditionals)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them sequentially using a durable orchestration with conditionals. @@ -135,7 +134,7 @@ These environment variables, when set, will override the values in the `local.se Navigate to the sample directory and start the Azure Functions app: ```bash -cd dotnet/samples/AzureFunctions/01_SingleAgent +cd dotnet/samples/01-get-started/06_host_your_agent func start ``` diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/README.md b/dotnet/samples/GettingStarted/AgentWithMemory/README.md index 903fcf1b78..670ef564d3 100644 --- a/dotnet/samples/GettingStarted/AgentWithMemory/README.md +++ b/dotnet/samples/GettingStarted/AgentWithMemory/README.md @@ -6,4 +6,4 @@ These samples show how to create an agent with the Agent Framework that uses Mem |---|---| |[Chat History memory](./AgentWithMemory_Step01_ChatHistoryMemory/)|This sample demonstrates how to enable an agent to remember messages from previous conversations.| |[Memory with MemoryStore](./AgentWithMemory_Step02_MemoryUsingMem0/)|This sample demonstrates how to create and run an agent that uses the Mem0 service to extract and retrieve individual memories.| -|[Custom Memory Implementation](./AgentWithMemory_Step03_CustomMemory/)|This sample demonstrates how to create a custom memory component and attach it to an agent.| +|[Custom Memory Implementation](../../01-get-started/04_memory/)|This sample demonstrates how to create a custom memory component and attach it to an agent.| diff --git a/dotnet/samples/GettingStarted/Agents/README.md b/dotnet/samples/GettingStarted/Agents/README.md index 64af82a23e..e9079210d6 100644 --- a/dotnet/samples/GettingStarted/Agents/README.md +++ b/dotnet/samples/GettingStarted/Agents/README.md @@ -26,9 +26,6 @@ Before you begin, ensure you have the following prerequisites: |Sample|Description| |---|---| -|[Running a simple agent](./Agent_Step01_Running/)|This sample demonstrates how to create and run a basic agent with instructions| -|[Multi-turn conversation with a simple agent](./Agent_Step02_MultiturnConversation/)|This sample demonstrates how to implement a multi-turn conversation with a simple agent| -|[Using function tools with a simple agent](./Agent_Step03_UsingFunctionTools/)|This sample demonstrates how to use function tools with a simple agent| |[Using OpenAPI function tools with a simple agent](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/AgentFrameworkMigration/AzureOpenAI/Step04_ToolCall_WithOpenAPI)|This sample demonstrates how to create function tools from an OpenAPI spec and use them with a simple agent (note that this sample is in the Semantic Kernel repository)| |[Using function tools with approvals](./Agent_Step04_UsingFunctionToolsWithApprovals/)|This sample demonstrates how to use function tools where approvals require human in the loop approvals before execution| |[Structured output with a simple agent](./Agent_Step05_StructuredOutput/)|This sample demonstrates how to use structured output with a simple agent| diff --git a/dotnet/samples/GettingStarted/Workflows/README.md b/dotnet/samples/GettingStarted/Workflows/README.md index f7704d0e42..36a88fff5d 100644 --- a/dotnet/samples/GettingStarted/Workflows/README.md +++ b/dotnet/samples/GettingStarted/Workflows/README.md @@ -12,7 +12,6 @@ Please begin with the [Foundational](./_Foundational) samples in order. These th | Sample | Concepts | |--------|----------| -| [Executors and Edges](./_Foundational/01_ExecutorsAndEdges) | Minimal workflow with basic executors and edges | | [Streaming](./_Foundational/02_Streaming) | Extends workflows with event streaming | | [Agents](./_Foundational/03_AgentsInWorkflows) | Use agents in workflows | | [Agentic Workflow Patterns](./_Foundational/04_AgentWorkflowPatterns) | Demonstrates common agentic workflow patterns | diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md b/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md index 4ec203892b..5b93a83b6f 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md +++ b/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md @@ -146,8 +146,8 @@ I cannot process this request as it appears to contain unsafe content. ## Related Samples +- **05_first_workflow** - Basic executor and edge concepts - **03_AgentsInWorkflows** - Introduction to using agents in workflows -- **01_ExecutorsAndEdges** - Basic executor and edge concepts - **02_Streaming** - Understanding streaming events - **Concurrent** - Parallel processing with fan-out/fan-in patterns From 56bd8052fc4ff824fae9bbc7bc7600aa4d82d19a Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Thu, 19 Feb 2026 11:09:53 -0800 Subject: [PATCH 03/36] Fix readme links --- dotnet/agent-framework-dotnet.slnx | 15 ++++++++------- .../01-get-started/06_host_your_agent/README.md | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 617085f9aa..cb4c3b8c1d 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -15,9 +15,9 @@ - - - + + + @@ -34,6 +34,7 @@ + @@ -171,6 +172,8 @@ + + @@ -187,10 +190,8 @@ - - - + @@ -225,10 +226,10 @@ + - diff --git a/dotnet/samples/01-get-started/06_host_your_agent/README.md b/dotnet/samples/01-get-started/06_host_your_agent/README.md index d4ac968978..7ad79cb210 100644 --- a/dotnet/samples/01-get-started/06_host_your_agent/README.md +++ b/dotnet/samples/01-get-started/06_host_your_agent/README.md @@ -10,7 +10,7 @@ This sample demonstrates how to use the Durable Agent Framework (DAFx) to create ## Environment Setup -See the [README.md](../README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. +See the [README.md](../../Durable/Agents/AzureFunctions/README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. ## Running the Sample From e8795da63fd06e2da46a66a159ee9649021c5c24 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 12:12:12 -0800 Subject: [PATCH 04/36] .NET Samples - Create `04-hosting` learning path step (#4098) * Agent move * Agent reorderd --- dotnet/agent-framework-dotnet.slnx | 55 +++++++++---------- .../06_host_your_agent/README.md | 2 +- .../A2AAgent_AsFunctionTools.csproj | 0 .../A2A/A2AAgent_AsFunctionTools/Program.cs | 0 .../A2A/A2AAgent_AsFunctionTools/README.md | 0 .../A2AAgent_PollingForTaskCompletion.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../A2A/README.md | 2 +- .../AzureFunctions/.editorconfig | 0 .../01_AgentOrchestration_Chaining.csproj} | 0 .../FunctionTriggers.cs | 0 .../Program.cs | 0 .../01_AgentOrchestration_Chaining}/README.md | 0 .../01_AgentOrchestration_Chaining}/demo.http | 0 .../01_AgentOrchestration_Chaining}/host.json | 0 .../02_AgentOrchestration_Concurrency.csproj} | 0 .../FunctionTriggers.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 ...03_AgentOrchestration_Conditionals.csproj} | 0 .../FunctionTriggers.cs | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 .../04_AgentOrchestration_HITL.csproj} | 0 .../FunctionTriggers.cs | 0 .../04_AgentOrchestration_HITL}/Models.cs | 0 .../04_AgentOrchestration_HITL}/Program.cs | 0 .../04_AgentOrchestration_HITL}/README.md | 0 .../04_AgentOrchestration_HITL}/demo.http | 0 .../04_AgentOrchestration_HITL}/host.json | 0 .../05_LongRunningTools.csproj} | 0 .../05_LongRunningTools}/FunctionTriggers.cs | 0 .../05_LongRunningTools}/Models.cs | 0 .../05_LongRunningTools}/Program.cs | 0 .../05_LongRunningTools}/README.md | 4 +- .../05_LongRunningTools}/Tools.cs | 0 .../05_LongRunningTools}/demo.http | 0 .../05_LongRunningTools}/host.json | 0 .../06_AgentAsMcpTool.csproj} | 0 .../06_AgentAsMcpTool}/Program.cs | 0 .../06_AgentAsMcpTool}/README.md | 2 +- .../06_AgentAsMcpTool}/host.json | 0 .../07_ReliableStreaming.csproj} | 0 .../07_ReliableStreaming}/FunctionTriggers.cs | 0 .../07_ReliableStreaming}/Program.cs | 0 .../07_ReliableStreaming}/README.md | 0 .../RedisStreamResponseHandler.cs | 0 .../07_ReliableStreaming}/Tools.cs | 0 .../07_ReliableStreaming}/host.json | 0 .../DurableAgents}/AzureFunctions/README.md | 18 +++--- .../01_SingleAgent/01_SingleAgent.csproj | 0 .../ConsoleApps/01_SingleAgent/Program.cs | 0 .../ConsoleApps/01_SingleAgent/README.md | 0 .../02_AgentOrchestration_Chaining.csproj | 0 .../02_AgentOrchestration_Chaining/Models.cs | 0 .../02_AgentOrchestration_Chaining/Program.cs | 0 .../02_AgentOrchestration_Chaining/README.md | 0 .../03_AgentOrchestration_Concurrency.csproj | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 0 .../04_AgentOrchestration_Conditionals.csproj | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 0 .../05_AgentOrchestration_HITL.csproj | 0 .../05_AgentOrchestration_HITL/Models.cs | 0 .../05_AgentOrchestration_HITL/Program.cs | 0 .../05_AgentOrchestration_HITL/README.md | 0 .../06_LongRunningTools.csproj | 0 .../ConsoleApps/06_LongRunningTools/Models.cs | 0 .../06_LongRunningTools/Program.cs | 0 .../ConsoleApps/06_LongRunningTools/README.md | 0 .../07_ReliableStreaming.csproj | 0 .../07_ReliableStreaming/Program.cs | 0 .../07_ReliableStreaming/README.md | 0 .../RedisStreamResponseHandler.cs | 0 .../DurableAgents}/ConsoleApps/README.md | 0 .../DurableAgents}/Directory.Build.props | 2 +- .../local.settings.json | 10 ---- .../local.settings.json | 10 ---- .../local.settings.json | 10 ---- .../local.settings.json | 10 ---- .../06_LongRunningTools/local.settings.json | 10 ---- .../07_AgentAsMcpTool/local.settings.json | 10 ---- .../08_ReliableStreaming/local.settings.json | 12 ---- dotnet/samples/README.md | 4 +- 93 files changed, 46 insertions(+), 115 deletions(-) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_AsFunctionTools/A2AAgent_AsFunctionTools.csproj (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_AsFunctionTools/Program.cs (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_AsFunctionTools/README.md (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_PollingForTaskCompletion/A2AAgent_PollingForTaskCompletion.csproj (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_PollingForTaskCompletion/Program.cs (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/A2AAgent_PollingForTaskCompletion/README.md (100%) rename dotnet/samples/{GettingStarted => 04-hosting}/A2A/README.md (95%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/AzureFunctions/.editorconfig (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining => 04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency => 04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/Models.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals => 04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/Models.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL => 04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools/06_LongRunningTools.csproj => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/05_LongRunningTools.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/Models.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/README.md (97%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/Tools.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/demo.http (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/06_LongRunningTools => 04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/07_AgentAsMcpTool/07_AgentAsMcpTool.csproj => 04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/06_AgentAsMcpTool.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/07_AgentAsMcpTool => 04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/07_AgentAsMcpTool => 04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool}/README.md (97%) rename dotnet/samples/{Durable/Agents/AzureFunctions/07_AgentAsMcpTool => 04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool}/host.json (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming/08_ReliableStreaming.csproj => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/07_ReliableStreaming.csproj} (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/FunctionTriggers.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/Program.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/README.md (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/RedisStreamResponseHandler.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/Tools.cs (100%) rename dotnet/samples/{Durable/Agents/AzureFunctions/08_ReliableStreaming => 04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming}/host.json (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/AzureFunctions/README.md (89%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/01_SingleAgent/01_SingleAgent.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/01_SingleAgent/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/01_SingleAgent/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/02_AgentOrchestration_Chaining/Models.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/02_AgentOrchestration_Chaining/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/03_AgentOrchestration_Concurrency/Models.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/03_AgentOrchestration_Concurrency/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/04_AgentOrchestration_Conditionals/Models.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/04_AgentOrchestration_Conditionals/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/05_AgentOrchestration_HITL/Models.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/05_AgentOrchestration_HITL/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/05_AgentOrchestration_HITL/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/06_LongRunningTools/06_LongRunningTools.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/06_LongRunningTools/Models.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/06_LongRunningTools/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/06_LongRunningTools/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/07_ReliableStreaming/07_ReliableStreaming.csproj (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/07_ReliableStreaming/Program.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/07_ReliableStreaming/README.md (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/07_ReliableStreaming/RedisStreamResponseHandler.cs (100%) rename dotnet/samples/{Durable/Agents => 04-hosting/DurableAgents}/ConsoleApps/README.md (100%) rename dotnet/samples/{Durable => 04-hosting/DurableAgents}/Directory.Build.props (80%) delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/local.settings.json delete mode 100644 dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/local.settings.json diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index cb4c3b8c1d..81736e1b9f 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -18,6 +18,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -44,37 +71,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dotnet/samples/01-get-started/06_host_your_agent/README.md b/dotnet/samples/01-get-started/06_host_your_agent/README.md index 7ad79cb210..6f7587a30c 100644 --- a/dotnet/samples/01-get-started/06_host_your_agent/README.md +++ b/dotnet/samples/01-get-started/06_host_your_agent/README.md @@ -10,7 +10,7 @@ This sample demonstrates how to use the Durable Agent Framework (DAFx) to create ## Environment Setup -See the [README.md](../../Durable/Agents/AzureFunctions/README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. +See the [README.md](../../04-hosting/DurableAgents/AzureFunctions/README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. ## Running the Sample diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/A2AAgent_AsFunctionTools.csproj b/dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/A2AAgent_AsFunctionTools.csproj similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/A2AAgent_AsFunctionTools.csproj rename to dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/A2AAgent_AsFunctionTools.csproj diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/Program.cs b/dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/Program.cs rename to dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/Program.cs diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/README.md b/dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/README.md similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_AsFunctionTools/README.md rename to dotnet/samples/04-hosting/A2A/A2AAgent_AsFunctionTools/README.md diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/A2AAgent_PollingForTaskCompletion.csproj b/dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/A2AAgent_PollingForTaskCompletion.csproj similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/A2AAgent_PollingForTaskCompletion.csproj rename to dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/A2AAgent_PollingForTaskCompletion.csproj diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/Program.cs b/dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/Program.cs rename to dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/Program.cs diff --git a/dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/README.md b/dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/README.md similarity index 100% rename from dotnet/samples/GettingStarted/A2A/A2AAgent_PollingForTaskCompletion/README.md rename to dotnet/samples/04-hosting/A2A/A2AAgent_PollingForTaskCompletion/README.md diff --git a/dotnet/samples/GettingStarted/A2A/README.md b/dotnet/samples/04-hosting/A2A/README.md similarity index 95% rename from dotnet/samples/GettingStarted/A2A/README.md rename to dotnet/samples/04-hosting/A2A/README.md index b513ffa929..82cb765203 100644 --- a/dotnet/samples/GettingStarted/A2A/README.md +++ b/dotnet/samples/04-hosting/A2A/README.md @@ -3,7 +3,7 @@ These samples demonstrate how to work with Agent-to-Agent (A2A) specific features in the Agent Framework. For other samples that demonstrate how to use AIAgent instances, -see the [Getting Started With Agents](../Agents/README.md) samples. +see the [Getting Started With Agents](../../GettingStarted/Agents/README.md) samples. ## Prerequisites diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/.editorconfig b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/.editorconfig similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/.editorconfig rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/.editorconfig diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Models.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Models.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/06_LongRunningTools.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/05_LongRunningTools.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/06_LongRunningTools.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/05_LongRunningTools.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Models.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md similarity index 97% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md index 54ed85060b..517dc4d46f 100644 --- a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md @@ -1,10 +1,10 @@ # Long Running Tools Sample -This sample demonstrates how to use the Durable Agent Framework (DAFx) to create agents with long running tools. This sample builds on the [05_AgentOrchestration_HITL](../05_AgentOrchestration_HITL) sample by adding a publisher agent that can start and manage content generation workflows. A key difference is that the publisher agent knows the IDs of the workflows it starts, so it can check the status of the workflows and approve or reject them without being explicitly given the context (instance IDs, etc). +This sample demonstrates how to use the Durable Agent Framework (DAFx) to create agents with long running tools. This sample builds on the [04_AgentOrchestration_HITL](../04_AgentOrchestration_HITL) sample by adding a publisher agent that can start and manage content generation workflows. A key difference is that the publisher agent knows the IDs of the workflows it starts, so it can check the status of the workflows and approve or reject them without being explicitly given the context (instance IDs, etc). ## Key Concepts Demonstrated -The same key concepts as the [05_AgentOrchestration_HITL](../05_AgentOrchestration_HITL) sample are demonstrated, but with the following additional concepts: +The same key concepts as the [04_AgentOrchestration_HITL](../04_AgentOrchestration_HITL) sample are demonstrated, but with the following additional concepts: - **Long running tools**: Using `DurableAgentContext.Current` to start orchestrations from tool calls - **Multi-agent orchestration**: Agents can start and manage workflows that orchestrate other agents diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Tools.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Tools.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/Tools.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Tools.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/demo.http similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/demo.http diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/07_AgentAsMcpTool.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/06_AgentAsMcpTool.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/07_AgentAsMcpTool.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/06_AgentAsMcpTool.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md similarity index 97% rename from dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md index a8efad04de..d1656ba0cc 100644 --- a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md @@ -49,7 +49,7 @@ Update your `local.settings.json` with your Azure OpenAI credentials: 1. **Start the Function App**: ```bash - cd dotnet/samples/AzureFunctions/07_AgentAsMcpTool + cd dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool func start ``` diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/08_ReliableStreaming.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/07_ReliableStreaming.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/08_ReliableStreaming.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/07_ReliableStreaming.csproj diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/FunctionTriggers.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/RedisStreamResponseHandler.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/RedisStreamResponseHandler.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/RedisStreamResponseHandler.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/RedisStreamResponseHandler.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/Tools.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Tools.cs similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/Tools.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Tools.cs diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/host.json similarity index 100% rename from dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/host.json diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md similarity index 89% rename from dotnet/samples/Durable/Agents/AzureFunctions/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md index 7ae9ecd3e9..896ac12095 100644 --- a/dotnet/samples/Durable/Agents/AzureFunctions/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md @@ -1,14 +1,18 @@ # Azure Functions Samples +To get started with Azure Functions, begin with the introduction sample under [Get Started (`01-get-started`)](../../01-get-started). + +- **[06_host_your_agent](../../01-get-started/06_host_your_agent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. + This directory contains samples for Azure Functions. -- **[02_AgentOrchestration_Chaining](02_AgentOrchestration_Chaining)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it using a durable orchestration. -- **[03_AgentOrchestration_Concurrency](03_AgentOrchestration_Concurrency)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them concurrently using a durable orchestration. -- **[04_AgentOrchestration_Conditionals](04_AgentOrchestration_Conditionals)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them sequentially using a durable orchestration with conditionals. -- **[05_AgentOrchestration_HITL](05_AgentOrchestration_HITL)**: A sample that demonstrates how to implement a human-in-the-loop workflow using durable orchestration, including external event handling for human approval. -- **[06_LongRunningTools](06_LongRunningTools)**: A sample that demonstrates how agents can start and interact with durable orchestrations from tool calls to enable long-running tool scenarios. -- **[07_AgentAsMcpTool](07_AgentAsMcpTool)**: A sample that demonstrates how to configure durable AI agents to be accessible as Model Context Protocol (MCP) tools. -- **[08_ReliableStreaming](08_ReliableStreaming)**: A sample that demonstrates how to implement reliable streaming for durable agents using Redis Streams, enabling clients to disconnect and reconnect without losing messages. +- **[01_AgentOrchestration_Chaining](01_AgentOrchestration_Chaining)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it using a durable orchestration. +- **[02_AgentOrchestration_Concurrency](02_AgentOrchestration_Concurrency)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them concurrently using a durable orchestration. +- **[03_AgentOrchestration_Conditionals](03_AgentOrchestration_Conditionals)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them sequentially using a durable orchestration with conditionals. +- **[04_AgentOrchestration_HITL](04_AgentOrchestration_HITL)**: A sample that demonstrates how to implement a human-in-the-loop workflow using durable orchestration, including external event handling for human approval. +- **[05_LongRunningTools](05_LongRunningTools)**: A sample that demonstrates how agents can start and interact with durable orchestrations from tool calls to enable long-running tool scenarios. +- **[06_AgentAsMcpTool](06_AgentAsMcpTool)**: A sample that demonstrates how to configure durable AI agents to be accessible as Model Context Protocol (MCP) tools. +- **[07_ReliableStreaming](07_ReliableStreaming)**: A sample that demonstrates how to implement reliable streaming for durable agents using Redis Streams, enabling clients to disconnect and reconnect without losing messages. ## Running the Samples diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/01_SingleAgent.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/01_SingleAgent.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/01_SingleAgent.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/01_SingleAgent.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/01_SingleAgent/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/Models.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Models.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/02_AgentOrchestration_Chaining/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/Models.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Models.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/Models.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Models.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/Models.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Models.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/05_AgentOrchestration_HITL/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/06_LongRunningTools.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/06_LongRunningTools.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/06_LongRunningTools.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/06_LongRunningTools.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/Models.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Models.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Models.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/06_LongRunningTools/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/07_ReliableStreaming.csproj b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/07_ReliableStreaming.csproj similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/07_ReliableStreaming.csproj rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/07_ReliableStreaming.csproj diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/RedisStreamResponseHandler.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/RedisStreamResponseHandler.cs similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/07_ReliableStreaming/RedisStreamResponseHandler.cs rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/RedisStreamResponseHandler.cs diff --git a/dotnet/samples/Durable/Agents/ConsoleApps/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md similarity index 100% rename from dotnet/samples/Durable/Agents/ConsoleApps/README.md rename to dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md diff --git a/dotnet/samples/Durable/Directory.Build.props b/dotnet/samples/04-hosting/DurableAgents/Directory.Build.props similarity index 80% rename from dotnet/samples/Durable/Directory.Build.props rename to dotnet/samples/04-hosting/DurableAgents/Directory.Build.props index 7c4cb7dea2..63c25dd5f0 100644 --- a/dotnet/samples/Durable/Directory.Build.props +++ b/dotnet/samples/04-hosting/DurableAgents/Directory.Build.props @@ -1,6 +1,6 @@ - + diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/06_LongRunningTools/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/local.settings.json deleted file mode 100644 index 54dfbb5664..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/07_AgentAsMcpTool/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "" - } -} diff --git a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/local.settings.json b/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/local.settings.json deleted file mode 100644 index 5dfdb17999..0000000000 --- a/dotnet/samples/Durable/Agents/AzureFunctions/08_ReliableStreaming/local.settings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT": "", - "REDIS_CONNECTION_STRING": "localhost:6379", - "REDIS_STREAM_TTL_MINUTES": "10" - } -} diff --git a/dotnet/samples/README.md b/dotnet/samples/README.md index 9dfe07e2b3..e9971ce976 100644 --- a/dotnet/samples/README.md +++ b/dotnet/samples/README.md @@ -19,8 +19,8 @@ The samples are subdivided into the following categories: - [Getting Started - Agent Providers](./GettingStarted/AgentProviders/README.md): Shows how to create an AIAgent instance for a selection of providers. - [Getting Started - Agent Telemetry](./GettingStarted/AgentOpenTelemetry/README.md): Demo which showcases the integration of OpenTelemetry with the Microsoft Agent Framework using Azure OpenAI and .NET Aspire Dashboard for telemetry visualization. - [Semantic Kernel to Agent Framework Migration](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/AgentFrameworkMigration): For instructions and samples describing how to migrate from Semantic Kernel to Microsoft Agent Framework -- [Durable Agents - Azure Functions](./Durable/Agents/AzureFunctions/README.md): Samples for using the Microsoft Agent Framework with Azure Functions via the durable task extension. -- [Durable Agents - Console Apps](./Durable/Agents/ConsoleApps/README.md): Samples demonstrating durable agents in console applications. +- [Durable Agents - Azure Functions](./04-hosting/DurableAgents/AzureFunctions/README.md): Samples for using the Microsoft Agent Framework with Azure Functions via the durable task extension. +- [Durable Agents - Console Apps](./04-hosting/DurableAgents/ConsoleApps/README.md): Samples demonstrating durable agents in console applications. ## Prerequisites From e3c1597d76e441ed0ee87a756764975f04e5a6a2 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 12:28:31 -0800 Subject: [PATCH 05/36] Remove A2A section from README Removed A2A section from the Getting Started README. --- dotnet/samples/GettingStarted/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/dotnet/samples/GettingStarted/README.md b/dotnet/samples/GettingStarted/README.md index 7a46d81a62..705725ca1a 100644 --- a/dotnet/samples/GettingStarted/README.md +++ b/dotnet/samples/GettingStarted/README.md @@ -12,7 +12,6 @@ of the agent framework. |[Agent Providers](./AgentProviders/README.md)|Getting started with creating agents using various providers| |[Agents With Retrieval Augmented Generation (RAG)](./AgentWithRAG/README.md)|Adding Retrieval Augmented Generation (RAG) capabilities to your agents.| |[Agents With Memory](./AgentWithMemory/README.md)|Adding Memory capabilities to your agents.| -|[A2A](./A2A/README.md)|Getting started with A2A (Agent-to-Agent) specific features| |[Agent Open Telemetry](./AgentOpenTelemetry/README.md)|Getting started with OpenTelemetry for agents| |[Agent With OpenAI exchange types](./AgentWithOpenAI/README.md)|Using OpenAI exchange types with agents| |[Agent With Anthropic](./AgentWithAnthropic/README.md)|Getting started with agents using Anthropic Claude| From 683800ce06c50a4c7bf671eac8283b63885334c3 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Thu, 19 Feb 2026 12:53:09 -0800 Subject: [PATCH 06/36] Agent fixed links --- .../samples/04-hosting/DurableAgents/AzureFunctions/README.md | 4 ++-- .../packages/ag-ui/agent_framework_ag_ui_examples/README.md | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md index 896ac12095..5ac0f6015b 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md @@ -1,8 +1,8 @@ # Azure Functions Samples -To get started with Azure Functions, begin with the introduction sample under [Get Started (`01-get-started`)](../../01-get-started). +To get started with Azure Functions, begin with the introduction sample under [Get Started (`01-get-started`)](../../../01-get-started). -- **[06_host_your_agent](../../01-get-started/06_host_your_agent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. +- **[06_host_your_agent](../../../01-get-started/06_host_your_agent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. This directory contains samples for Azure Functions. diff --git a/python/packages/ag-ui/agent_framework_ag_ui_examples/README.md b/python/packages/ag-ui/agent_framework_ag_ui_examples/README.md index e11a05d863..cfc4042026 100644 --- a/python/packages/ag-ui/agent_framework_ag_ui_examples/README.md +++ b/python/packages/ag-ui/agent_framework_ag_ui_examples/README.md @@ -327,10 +327,6 @@ wrapped_agent = AgentFrameworkAgent( orchestrators=[MyCustomOrchestrator(), DefaultOrchestrator()], ) -## Documentation - -For detailed documentation, see [DESIGN.md](DESIGN.md). - ## License MIT From 160cc635c1733e6ff2b522ced7af42cc07c53b5e Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 13:24:35 -0800 Subject: [PATCH 07/36] Fix broken sample links in durable-agents README (#4101) * Initial plan * Fix broken internal links in documentation Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Revert template link changes; keep only durable-agents README fix Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --- docs/features/durable-agents/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/durable-agents/README.md b/docs/features/durable-agents/README.md index 326e66743b..525c447ebc 100644 --- a/docs/features/durable-agents/README.md +++ b/docs/features/durable-agents/README.md @@ -219,7 +219,7 @@ When using the [Durable Task Scheduler](https://learn.microsoft.com/azure/azure- ## Samples -- **.NET** – [Console app samples](../../../dotnet/samples/Durable/Agents/ConsoleApps/) and [Azure Functions samples](../../../dotnet/samples/Durable/Agents/AzureFunctions/) covering single-agent, chaining, concurrency, conditionals, human-in-the-loop, long-running tools, MCP tool exposure, and reliable streaming. +- **.NET** – [Console app samples](../../../dotnet/samples/04-hosting/DurableAgents/ConsoleApps/) and [Azure Functions samples](../../../dotnet/samples/04-hosting/DurableAgents/AzureFunctions/) covering single-agent, chaining, concurrency, conditionals, human-in-the-loop, long-running tools, MCP tool exposure, and reliable streaming. - **Python** – [Durable Task samples](../../../python/samples/04-hosting/durabletask/) covering single-agent, multi-agent, streaming, chaining, concurrency, conditionals, and human-in-the-loop. ## Packages From eeb8644f3c67b756a166ee08cdc5840486ff2ff6 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 13:45:25 -0800 Subject: [PATCH 08/36] .NET Samples - Create `03-workflows` learning path step (#4102) --- dotnet/README.md | 8 +- dotnet/agent-framework-dotnet.slnx | 149 +++++++++--------- .../CustomAgentExecutors.csproj | 6 +- .../Agents/CustomAgentExecutors/Program.cs | 0 .../Agents/FoundryAgent/FoundryAgent.csproj | 6 +- .../Agents/FoundryAgent/Program.cs | 0 .../DeploymentGroupChatManager.cs | 0 .../GroupChatToolApproval.csproj | 4 +- .../Agents/GroupChatToolApproval/Program.cs | 0 .../Agents/GroupChatToolApproval/README.md | 2 +- .../Agents/WorkflowAsAnAgent/Program.cs | 0 .../WorkflowAsAnAgent.csproj | 4 +- .../WorkflowAsAnAgent/WorkflowFactory.cs | 0 .../CheckpointAndRehydrate.csproj} | 0 .../CheckpointAndRehydrate/Program.cs | 0 .../CheckpointAndRehydrate/WorkflowFactory.cs | 0 .../CheckpointAndResume.csproj} | 3 +- .../Checkpoint/CheckpointAndResume/Program.cs | 0 .../CheckpointAndResume/WorkflowFactory.cs | 0 .../CheckpointWithHumanInTheLoop.csproj | 2 +- .../CheckpointWithHumanInTheLoop/Program.cs | 0 .../WorkflowFactory.cs | 0 .../Concurrent/Concurrent/Concurrent.csproj | 27 ++++ .../Concurrent/Concurrent/Program.cs | 0 .../Concurrent/MapReduce/MapReduce.csproj | 4 +- .../Concurrent/MapReduce/Program.cs | 0 .../01_EdgeCondition/01_EdgeCondition.csproj | 4 +- .../01_EdgeCondition/Program.cs | 0 .../01_EdgeCondition/Resources.cs | 0 .../02_SwitchCase/02_SwitchCase.csproj | 4 +- .../ConditionalEdges/02_SwitchCase/Program.cs | 0 .../02_SwitchCase/Resources.cs | 0 .../03_MultiSelection.csproj | 4 +- .../03_MultiSelection/Program.cs | 0 .../03_MultiSelection/Resources.cs | 0 .../ConfirmInput/ConfirmInput.csproj | 6 +- .../ConfirmInput/ConfirmInput.yaml | 0 .../Declarative/ConfirmInput/Program.cs | 0 .../CustomerSupport/CustomerSupport.csproj | 8 +- .../Declarative/CustomerSupport/Program.cs | 0 .../Properties/launchSettings.json | 19 +++ .../CustomerSupport/TicketingPlugin.cs | 0 .../DeepResearch/DeepResearch.csproj | 8 +- .../Declarative/DeepResearch/Program.cs | 0 .../Properties/launchSettings.json | 11 ++ .../Declarative/DeepResearch/wttr.json | 0 .../ExecuteCode/ExecuteCode.csproj | 6 +- .../Declarative/ExecuteCode/Generated.cs | 0 .../Declarative/ExecuteCode/Program.cs | 0 .../ExecuteWorkflow/ExecuteWorkflow.csproj | 4 +- .../Declarative/ExecuteWorkflow/Program.cs | 0 .../Properties/launchSettings.json | 32 ++++ .../FunctionTools/FunctionTools.csproj | 6 +- .../FunctionTools/FunctionTools.yaml | 0 .../Declarative/FunctionTools/MenuPlugin.cs | 0 .../Declarative/FunctionTools/Program.cs | 0 .../Properties/launchSettings.json | 11 ++ .../GenerateCode/GenerateCode.csproj | 4 +- .../Declarative/GenerateCode/Program.cs | 0 .../Properties/launchSettings.json | 28 ++++ .../HostedWorkflow/HostedWorkflow.csproj | 8 +- .../Declarative/HostedWorkflow/Program.cs | 0 .../InputArguments/InputArguments.csproj | 6 +- .../InputArguments/InputArguments.yaml | 0 .../Declarative/InputArguments/Program.cs | 0 .../Properties/launchSettings.json | 11 ++ .../InvokeFunctionTool.csproj | 4 +- .../InvokeFunctionTool.yaml | 0 .../InvokeFunctionTool/MenuPlugin.cs | 0 .../Declarative/InvokeFunctionTool/Program.cs | 0 .../Declarative/Marketing/Marketing.csproj | 8 +- .../Declarative/Marketing/Program.cs | 0 .../Marketing/Properties/launchSettings.json | 11 ++ .../Properties/launchSettings.json | 32 ++++ .../Properties/launchSettings.json | 32 ++++ .../Declarative/README.md | 4 +- .../Declarative/StudentTeacher/Program.cs | 0 .../Properties/launchSettings.json | 11 ++ .../StudentTeacher/StudentTeacher.csproj | 8 +- .../Declarative/ToolApproval/Program.cs | 0 .../Properties/launchSettings.json | 11 ++ .../ToolApproval/ToolApproval.csproj | 6 +- .../ToolApproval/ToolApproval.yaml | 0 .../HumanInTheLoopBasic.csproj | 2 +- .../HumanInTheLoopBasic/Program.cs | 0 .../HumanInTheLoopBasic/WorkflowFactory.cs | 0 .../Loop/Loop.csproj} | 2 +- .../Loop/Program.cs | 0 .../ApplicationInsights.csproj | 2 +- .../ApplicationInsights/Program.cs | 0 .../AspireDashboard/AspireDashboard.csproj | 2 +- .../Observability/AspireDashboard/Program.cs | 0 .../WorkflowAsAnAgent/Program.cs | 0 .../WorkflowAsAnAgentObservability.csproj | 6 +- .../WorkflowAsAnAgent/WorkflowHelper.cs | 0 .../Workflows => 03-workflows}/README.md | 18 +-- .../Resources/Lorem_Ipsum.txt | 0 .../Resources/ambiguous_email.txt | 0 .../Resources/email.txt | 0 .../Resources/spam.txt | 0 .../SharedStates/Program.cs | 0 .../SharedStates/Resources.cs | 0 .../SharedStates/SharedStates.csproj | 2 +- .../Visualization/Program.cs | 0 .../Visualization/README.md | 0 .../Resources/graphviz_render.png | Bin .../Resources/mermaid_render.png | Bin .../Visualization/Visualization.csproj | 16 ++ .../01_Streaming/01_Streaming.csproj} | 2 +- .../_StartHere/01_Streaming}/Program.cs | 0 .../02_AgentsInWorkflows.csproj} | 4 +- .../02_AgentsInWorkflows}/Program.cs | 0 .../03_AgentWorkflowPatterns.csproj} | 4 +- .../03_AgentWorkflowPatterns}/Program.cs | 0 .../04_MultiModelService.csproj} | 4 +- .../04_MultiModelService}/Program.cs | 0 .../05_SubWorkflows/05_SubWorkflows.csproj} | 4 +- .../_StartHere/05_SubWorkflows}/Program.cs | 0 .../06_MixedWorkflowAgentsAndExecutors.csproj | 22 +++ .../Program.cs | 0 .../README.md | 0 .../07_WriterCriticWorkflow.csproj} | 8 +- .../07_WriterCriticWorkflow}/Program.cs | 0 .../Concurrent/Concurrent/Concurrent.csproj | 22 --- .../Workflows/Directory.Build.props | 13 -- .../02_Streaming/02_Streaming.csproj | 15 -- .../07_MixedWorkflowAgentsAndExecutors.csproj | 22 --- .../README.md | 4 +- 128 files changed, 444 insertions(+), 252 deletions(-) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj (61%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/CustomAgentExecutors/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/FoundryAgent/FoundryAgent.csproj (53%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/FoundryAgent/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/GroupChatToolApproval/DeploymentGroupChatManager.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj (67%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/GroupChatToolApproval/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/GroupChatToolApproval/README.md (96%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/WorkflowAsAnAgent/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj (67%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Agents/WorkflowAsAnAgent/WorkflowFactory.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/Loop/Loop.csproj => 03-workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj} (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointAndRehydrate/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointAndRehydrate/WorkflowFactory.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/Visualization/Visualization.csproj => 03-workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj} (75%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointAndResume/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointAndResume/WorkflowFactory.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj (69%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointWithHumanInTheLoop/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Checkpoint/CheckpointWithHumanInTheLoop/WorkflowFactory.cs (100%) create mode 100644 dotnet/samples/03-workflows/Concurrent/Concurrent/Concurrent.csproj rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Concurrent/Concurrent/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Concurrent/MapReduce/MapReduce.csproj (71%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Concurrent/MapReduce/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj (74%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/01_EdgeCondition/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/01_EdgeCondition/Resources.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj (74%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/02_SwitchCase/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/02_SwitchCase/Resources.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj (74%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/03_MultiSelection/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/ConditionalEdges/03_MultiSelection/Resources.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ConfirmInput/ConfirmInput.csproj (78%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ConfirmInput/ConfirmInput.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ConfirmInput/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/CustomerSupport/CustomerSupport.csproj (73%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/CustomerSupport/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/CustomerSupport/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/CustomerSupport/TicketingPlugin.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/DeepResearch/DeepResearch.csproj (74%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/DeepResearch/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/DeepResearch/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/DeepResearch/wttr.json (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ExecuteCode/ExecuteCode.csproj (77%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ExecuteCode/Generated.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ExecuteCode/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj (78%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ExecuteWorkflow/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/FunctionTools/FunctionTools.csproj (78%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/FunctionTools/FunctionTools.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/FunctionTools/MenuPlugin.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/FunctionTools/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/FunctionTools/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/GenerateCode/GenerateCode.csproj (84%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/GenerateCode/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/GenerateCode/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/HostedWorkflow/HostedWorkflow.csproj (74%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/HostedWorkflow/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InputArguments/InputArguments.csproj (78%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InputArguments/InputArguments.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InputArguments/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/InputArguments/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj (80%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeFunctionTool/InvokeFunctionTool.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeFunctionTool/MenuPlugin.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeFunctionTool/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/Marketing/Marketing.csproj (73%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/Marketing/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/Marketing/Properties/launchSettings.json create mode 100644 dotnet/samples/03-workflows/Declarative/OpenAIChatAgent/Properties/launchSettings.json create mode 100644 dotnet/samples/03-workflows/Declarative/OpenAIResponseAgent/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/README.md (95%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/StudentTeacher/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/StudentTeacher/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/StudentTeacher/StudentTeacher.csproj (73%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ToolApproval/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/Declarative/ToolApproval/Properties/launchSettings.json rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ToolApproval/ToolApproval.csproj (78%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/ToolApproval/ToolApproval.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj (69%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/HumanInTheLoop/HumanInTheLoopBasic/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/HumanInTheLoop/HumanInTheLoopBasic/WorkflowFactory.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj => 03-workflows/Loop/Loop.csproj} (69%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Loop/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/ApplicationInsights/ApplicationInsights.csproj (83%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/ApplicationInsights/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/AspireDashboard/AspireDashboard.csproj (84%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/AspireDashboard/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/WorkflowAsAnAgent/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj (72%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Observability/WorkflowAsAnAgent/WorkflowHelper.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/README.md (70%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Resources/Lorem_Ipsum.txt (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Resources/ambiguous_email.txt (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Resources/email.txt (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Resources/spam.txt (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/SharedStates/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/SharedStates/Resources.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/SharedStates/SharedStates.csproj (79%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Visualization/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Visualization/README.md (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Visualization/Resources/graphviz_render.png (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Visualization/Resources/mermaid_render.png (100%) create mode 100644 dotnet/samples/03-workflows/Visualization/Visualization.csproj rename dotnet/samples/{GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj => 03-workflows/_StartHere/01_Streaming/01_Streaming.csproj} (69%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/02_Streaming => 03-workflows/_StartHere/01_Streaming}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/03_AgentsInWorkflows.csproj => 03-workflows/_StartHere/02_AgentsInWorkflows/02_AgentsInWorkflows.csproj} (67%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows => 03-workflows/_StartHere/02_AgentsInWorkflows}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/04_AgentWorkflowPatterns.csproj => 03-workflows/_StartHere/03_AgentWorkflowPatterns/03_AgentWorkflowPatterns.csproj} (67%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns => 03-workflows/_StartHere/03_AgentWorkflowPatterns}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/05_MultiModelService/05_MultiModelService.csproj => 03-workflows/_StartHere/04_MultiModelService/04_MultiModelService.csproj} (68%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/05_MultiModelService => 03-workflows/_StartHere/04_MultiModelService}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/06_SubWorkflows/06_SubWorkflows.csproj => 03-workflows/_StartHere/05_SubWorkflows/05_SubWorkflows.csproj} (55%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/06_SubWorkflows => 03-workflows/_StartHere/05_SubWorkflows}/Program.cs (100%) create mode 100644 dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/06_MixedWorkflowAgentsAndExecutors.csproj rename dotnet/samples/{GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors => 03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors}/Program.cs (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors => 03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors}/README.md (100%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/08_WriterCriticWorkflow.csproj => 03-workflows/_StartHere/07_WriterCriticWorkflow/07_WriterCriticWorkflow.csproj} (61%) rename dotnet/samples/{GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow => 03-workflows/_StartHere/07_WriterCriticWorkflow}/Program.cs (100%) delete mode 100644 dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Concurrent.csproj delete mode 100644 dotnet/samples/GettingStarted/Workflows/Directory.Build.props delete mode 100644 dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/02_Streaming.csproj delete mode 100644 dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/07_MixedWorkflowAgentsAndExecutors.csproj diff --git a/dotnet/README.md b/dotnet/README.md index 4e52260f56..3ac82b3a6c 100644 --- a/dotnet/README.md +++ b/dotnet/README.md @@ -1,11 +1,5 @@ # Get Started with Microsoft Agent Framework for C# Developers -## Samples - -- [Getting Started with Agents](./samples/GettingStarted/Agents): basic agent creation and tool usage -- [Agent Provider Samples](./samples/GettingStarted/AgentProviders): samples showing different agent providers -- [Workflow Samples](./samples/GettingStarted/Workflows): advanced multi-agent patterns and workflow orchestration - ## Quickstart ### Basic Agent - .NET @@ -30,7 +24,7 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram - [Getting Started with Agents](./samples/GettingStarted/Agents): basic agent creation and tool usage - [Agent Provider Samples](./samples/GettingStarted/AgentProviders): samples showing different agent providers -- [Workflow Samples](./samples/GettingStarted/Workflows): advanced multi-agent patterns and workflow orchestration +- [Workflow Samples](./samples/03-workflows): advanced multi-agent patterns and workflow orchestration ## Agent Framework Documentation diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 81736e1b9f..db44089500 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -16,7 +16,79 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -202,80 +274,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj b/dotnet/samples/03-workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj similarity index 61% rename from dotnet/samples/GettingStarted/Workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj rename to dotnet/samples/03-workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj index 2ab222887c..6776b73b15 100644 --- a/dotnet/samples/GettingStarted/Workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj +++ b/dotnet/samples/03-workflows/Agents/CustomAgentExecutors/CustomAgentExecutors.csproj @@ -15,11 +15,11 @@ - - + - + diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/CustomAgentExecutors/Program.cs b/dotnet/samples/03-workflows/Agents/CustomAgentExecutors/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/CustomAgentExecutors/Program.cs rename to dotnet/samples/03-workflows/Agents/CustomAgentExecutors/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/FoundryAgent/FoundryAgent.csproj b/dotnet/samples/03-workflows/Agents/FoundryAgent/FoundryAgent.csproj similarity index 53% rename from dotnet/samples/GettingStarted/Workflows/Agents/FoundryAgent/FoundryAgent.csproj rename to dotnet/samples/03-workflows/Agents/FoundryAgent/FoundryAgent.csproj index f75c7fd28b..30227d3f20 100644 --- a/dotnet/samples/GettingStarted/Workflows/Agents/FoundryAgent/FoundryAgent.csproj +++ b/dotnet/samples/03-workflows/Agents/FoundryAgent/FoundryAgent.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/FoundryAgent/Program.cs b/dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/FoundryAgent/Program.cs rename to dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/DeploymentGroupChatManager.cs b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/DeploymentGroupChatManager.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/DeploymentGroupChatManager.cs rename to dotnet/samples/03-workflows/Agents/GroupChatToolApproval/DeploymentGroupChatManager.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj similarity index 67% rename from dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj rename to dotnet/samples/03-workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj index d0c0656ade..e926a8375a 100644 --- a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj +++ b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/GroupChatToolApproval.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/Program.cs b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/Program.cs rename to dotnet/samples/03-workflows/Agents/GroupChatToolApproval/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/README.md b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md similarity index 96% rename from dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/README.md rename to dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md index 84c6baa83c..920e9ad22a 100644 --- a/dotnet/samples/GettingStarted/Workflows/Agents/GroupChatToolApproval/README.md +++ b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md @@ -66,5 +66,5 @@ The sample will show: ## Related Samples - [Agent Function Tools with Approvals](../../../Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern -- [Agent Workflow Patterns](../../_Foundational/04_AgentWorkflowPatterns) - Group chat without approvals +- [Agent Workflow Patterns](../../_StartHere/03_AgentWorkflowPatterns) - Group chat without approvals - [Human-in-the-Loop Basic](../../HumanInTheLoop/HumanInTheLoopBasic) - Workflow-level human interaction diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/Program.cs b/dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/Program.cs rename to dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj b/dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj similarity index 67% rename from dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj rename to dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj index d0c0656ade..e926a8375a 100644 --- a/dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj +++ b/dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/WorkflowAsAnAgent.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/WorkflowFactory.cs b/dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/WorkflowFactory.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Agents/WorkflowAsAnAgent/WorkflowFactory.cs rename to dotnet/samples/03-workflows/Agents/WorkflowAsAnAgent/WorkflowFactory.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Loop/Loop.csproj b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Loop/Loop.csproj rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/Program.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/Program.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/WorkflowFactory.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/WorkflowFactory.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/WorkflowFactory.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndRehydrate/WorkflowFactory.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Visualization/Visualization.csproj b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj similarity index 75% rename from dotnet/samples/GettingStarted/Workflows/Visualization/Visualization.csproj rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj index 57b1fef0e1..0de620de0c 100644 --- a/dotnet/samples/GettingStarted/Workflows/Visualization/Visualization.csproj +++ b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj @@ -1,4 +1,4 @@ - + Exe @@ -10,7 +10,6 @@ - diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/Program.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/Program.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/WorkflowFactory.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/WorkflowFactory.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/WorkflowFactory.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointAndResume/WorkflowFactory.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj b/dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj similarity index 69% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj rename to dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj index 2f41070759..0de620de0c 100644 --- a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj +++ b/dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/CheckpointWithHumanInTheLoop.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/Program.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/Program.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/WorkflowFactory.cs b/dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/WorkflowFactory.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointWithHumanInTheLoop/WorkflowFactory.cs rename to dotnet/samples/03-workflows/Checkpoint/CheckpointWithHumanInTheLoop/WorkflowFactory.cs diff --git a/dotnet/samples/03-workflows/Concurrent/Concurrent/Concurrent.csproj b/dotnet/samples/03-workflows/Concurrent/Concurrent/Concurrent.csproj new file mode 100644 index 0000000000..35897932e0 --- /dev/null +++ b/dotnet/samples/03-workflows/Concurrent/Concurrent/Concurrent.csproj @@ -0,0 +1,27 @@ + + + + Exe + net10.0 + + enable + enable + + + + + + + + + + + + + + + + diff --git a/dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Program.cs b/dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Program.cs rename to dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Concurrent/MapReduce/MapReduce.csproj b/dotnet/samples/03-workflows/Concurrent/MapReduce/MapReduce.csproj similarity index 71% rename from dotnet/samples/GettingStarted/Workflows/Concurrent/MapReduce/MapReduce.csproj rename to dotnet/samples/03-workflows/Concurrent/MapReduce/MapReduce.csproj index fd311b7be3..21a7f8c176 100644 --- a/dotnet/samples/GettingStarted/Workflows/Concurrent/MapReduce/MapReduce.csproj +++ b/dotnet/samples/03-workflows/Concurrent/MapReduce/MapReduce.csproj @@ -1,4 +1,4 @@ - + Exe @@ -8,7 +8,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/Concurrent/MapReduce/Program.cs b/dotnet/samples/03-workflows/Concurrent/MapReduce/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Concurrent/MapReduce/Program.cs rename to dotnet/samples/03-workflows/Concurrent/MapReduce/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj b/dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj similarity index 74% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj rename to dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj index 422c1ca55f..f071e69f06 100644 --- a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj +++ b/dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/01_EdgeCondition.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/Program.cs b/dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/Program.cs rename to dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/Resources.cs b/dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/Resources.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/01_EdgeCondition/Resources.cs rename to dotnet/samples/03-workflows/ConditionalEdges/01_EdgeCondition/Resources.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj b/dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj similarity index 74% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj rename to dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj index 422c1ca55f..f071e69f06 100644 --- a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj +++ b/dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/02_SwitchCase.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/Program.cs b/dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/Program.cs rename to dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/Resources.cs b/dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/Resources.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/02_SwitchCase/Resources.cs rename to dotnet/samples/03-workflows/ConditionalEdges/02_SwitchCase/Resources.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj b/dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj similarity index 74% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj rename to dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj index 422c1ca55f..f071e69f06 100644 --- a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj +++ b/dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/03_MultiSelection.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/Program.cs b/dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/Program.cs rename to dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/Resources.cs b/dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/Resources.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/ConditionalEdges/03_MultiSelection/Resources.cs rename to dotnet/samples/03-workflows/ConditionalEdges/03_MultiSelection/Resources.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/ConfirmInput.csproj b/dotnet/samples/03-workflows/Declarative/ConfirmInput/ConfirmInput.csproj similarity index 78% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/ConfirmInput.csproj rename to dotnet/samples/03-workflows/Declarative/ConfirmInput/ConfirmInput.csproj index da32d18b99..dac2f49921 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/ConfirmInput.csproj +++ b/dotnet/samples/03-workflows/Declarative/ConfirmInput/ConfirmInput.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/ConfirmInput.yaml b/dotnet/samples/03-workflows/Declarative/ConfirmInput/ConfirmInput.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/ConfirmInput.yaml rename to dotnet/samples/03-workflows/Declarative/ConfirmInput/ConfirmInput.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/Program.cs b/dotnet/samples/03-workflows/Declarative/ConfirmInput/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ConfirmInput/Program.cs rename to dotnet/samples/03-workflows/Declarative/ConfirmInput/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/CustomerSupport.csproj b/dotnet/samples/03-workflows/Declarative/CustomerSupport/CustomerSupport.csproj similarity index 73% rename from dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/CustomerSupport.csproj rename to dotnet/samples/03-workflows/Declarative/CustomerSupport/CustomerSupport.csproj index 583dbc6e8f..0bc83997d0 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/CustomerSupport.csproj +++ b/dotnet/samples/03-workflows/Declarative/CustomerSupport/CustomerSupport.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,12 +25,12 @@ - - + + - + Always diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/Program.cs b/dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/Program.cs rename to dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/CustomerSupport/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/CustomerSupport/Properties/launchSettings.json new file mode 100644 index 0000000000..0d3ba15fc1 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/CustomerSupport/Properties/launchSettings.json @@ -0,0 +1,19 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Reboot": { + "commandName": "Project", + "commandLineArgs": "\"My PC keeps rebooting and I can't use it.\"" + }, + "License": { + "commandName": "Project", + "commandLineArgs": "\"My M365 Office license key isn't activating.\"" + }, + "Windows": { + "commandName": "Project", + "commandLineArgs": "\"How do I change my mouse speed settings?\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/TicketingPlugin.cs b/dotnet/samples/03-workflows/Declarative/CustomerSupport/TicketingPlugin.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/CustomerSupport/TicketingPlugin.cs rename to dotnet/samples/03-workflows/Declarative/CustomerSupport/TicketingPlugin.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/DeepResearch.csproj b/dotnet/samples/03-workflows/Declarative/DeepResearch/DeepResearch.csproj similarity index 74% rename from dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/DeepResearch.csproj rename to dotnet/samples/03-workflows/Declarative/DeepResearch/DeepResearch.csproj index 413fa56210..cd533a0707 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/DeepResearch.csproj +++ b/dotnet/samples/03-workflows/Declarative/DeepResearch/DeepResearch.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,12 +25,12 @@ - - + + - + Always diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/Program.cs b/dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/Program.cs rename to dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/DeepResearch/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/DeepResearch/Properties/launchSettings.json new file mode 100644 index 0000000000..0c6de510b2 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/DeepResearch/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Bus Stop": { + "commandName": "Project", + "commandLineArgs": "\"What is the closest bus-stop that is next to ISHONI YAKINIKU in Seattle?\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/wttr.json b/dotnet/samples/03-workflows/Declarative/DeepResearch/wttr.json similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/DeepResearch/wttr.json rename to dotnet/samples/03-workflows/Declarative/DeepResearch/wttr.json diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/ExecuteCode.csproj b/dotnet/samples/03-workflows/Declarative/ExecuteCode/ExecuteCode.csproj similarity index 77% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/ExecuteCode.csproj rename to dotnet/samples/03-workflows/Declarative/ExecuteCode/ExecuteCode.csproj index 9725826c7a..6a9c4957c2 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/ExecuteCode.csproj +++ b/dotnet/samples/03-workflows/Declarative/ExecuteCode/ExecuteCode.csproj @@ -1,4 +1,4 @@ - + Exe @@ -26,8 +26,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/Generated.cs b/dotnet/samples/03-workflows/Declarative/ExecuteCode/Generated.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/Generated.cs rename to dotnet/samples/03-workflows/Declarative/ExecuteCode/Generated.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/Program.cs b/dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteCode/Program.cs rename to dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj similarity index 78% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj rename to dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj index 074a31121d..fce40b64d4 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj +++ b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/ExecuteWorkflow.csproj @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow/Program.cs b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow/Program.cs rename to dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Properties/launchSettings.json new file mode 100644 index 0000000000..b36e876ef8 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Properties/launchSettings.json @@ -0,0 +1,32 @@ +{ + "profiles": { + "Marketing": { + "commandName": "Project", + "commandLineArgs": "\"Marketing.yaml\" \"An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours\"" + }, + "MathChat": { + "commandName": "Project", + "commandLineArgs": "\"MathChat.yaml\" \"How would you compute the value of PI?\"" + }, + "Question": { + "commandName": "Project", + "commandLineArgs": "\"Question.yaml\" \"Iko\"" + }, + "Research": { + "commandName": "Project", + "commandLineArgs": "\"DeepResearch.yaml\" \"What is the closest bus-stop that is next to ISHONI YAKINIKU in Seattle?\"" + }, + "ResponseObject": { + "commandName": "Project", + "commandLineArgs": "\"ResponseObject.yaml\" \"Can you help me plan a trip somewhere soon?\"" + }, + "UserInput": { + "commandName": "Project", + "commandLineArgs": "\"UserInput.yaml\" \"Iko\"" + }, + "ParseValue": { + "commandName": "Project", + "commandLineArgs": "\"Pradeep-ParseValue-Number.yaml\" \"Test this case:\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/FunctionTools.csproj b/dotnet/samples/03-workflows/Declarative/FunctionTools/FunctionTools.csproj similarity index 78% rename from dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/FunctionTools.csproj rename to dotnet/samples/03-workflows/Declarative/FunctionTools/FunctionTools.csproj index f8a51cb0f2..f890fb30a8 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/FunctionTools.csproj +++ b/dotnet/samples/03-workflows/Declarative/FunctionTools/FunctionTools.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/FunctionTools.yaml b/dotnet/samples/03-workflows/Declarative/FunctionTools/FunctionTools.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/FunctionTools.yaml rename to dotnet/samples/03-workflows/Declarative/FunctionTools/FunctionTools.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/MenuPlugin.cs b/dotnet/samples/03-workflows/Declarative/FunctionTools/MenuPlugin.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/MenuPlugin.cs rename to dotnet/samples/03-workflows/Declarative/FunctionTools/MenuPlugin.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/Program.cs b/dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/FunctionTools/Program.cs rename to dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/FunctionTools/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/FunctionTools/Properties/launchSettings.json new file mode 100644 index 0000000000..defb6318d3 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/FunctionTools/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Soup": { + "commandName": "Project", + "commandLineArgs": "\"What is the soup of the day?\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/GenerateCode/GenerateCode.csproj b/dotnet/samples/03-workflows/Declarative/GenerateCode/GenerateCode.csproj similarity index 84% rename from dotnet/samples/GettingStarted/Workflows/Declarative/GenerateCode/GenerateCode.csproj rename to dotnet/samples/03-workflows/Declarative/GenerateCode/GenerateCode.csproj index 117e27abd8..a85173d289 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/GenerateCode/GenerateCode.csproj +++ b/dotnet/samples/03-workflows/Declarative/GenerateCode/GenerateCode.csproj @@ -1,4 +1,4 @@ - + Exe @@ -24,7 +24,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/GenerateCode/Program.cs b/dotnet/samples/03-workflows/Declarative/GenerateCode/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/GenerateCode/Program.cs rename to dotnet/samples/03-workflows/Declarative/GenerateCode/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/GenerateCode/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/GenerateCode/Properties/launchSettings.json new file mode 100644 index 0000000000..692664eb00 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/GenerateCode/Properties/launchSettings.json @@ -0,0 +1,28 @@ +{ + "profiles": { + "Marketing": { + "commandName": "Project", + "commandLineArgs": "\"Marketing.yaml\"" + }, + "MathChat": { + "commandName": "Project", + "commandLineArgs": "\"MathChat.yaml\"" + }, + "Question": { + "commandName": "Project", + "commandLineArgs": "\"Question.yaml\"" + }, + "Research": { + "commandName": "Project", + "commandLineArgs": "\"DeepResearch.yaml\"" + }, + "ResponseObject": { + "commandName": "Project", + "commandLineArgs": "\"ResponseObject.yaml\"" + }, + "UserInput": { + "commandName": "Project", + "commandLineArgs": "\"UserInput.yaml\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj b/dotnet/samples/03-workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj similarity index 74% rename from dotnet/samples/GettingStarted/Workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj rename to dotnet/samples/03-workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj index 3cbd0ada95..f9379f38a3 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj +++ b/dotnet/samples/03-workflows/Declarative/HostedWorkflow/HostedWorkflow.csproj @@ -1,4 +1,4 @@ - + Exe @@ -26,12 +26,12 @@ - - + + - + Always diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/HostedWorkflow/Program.cs b/dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/HostedWorkflow/Program.cs rename to dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/InputArguments.csproj b/dotnet/samples/03-workflows/Declarative/InputArguments/InputArguments.csproj similarity index 78% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/InputArguments.csproj rename to dotnet/samples/03-workflows/Declarative/InputArguments/InputArguments.csproj index 5ef0b7e99e..45bc44eaf3 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/InputArguments.csproj +++ b/dotnet/samples/03-workflows/Declarative/InputArguments/InputArguments.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/InputArguments.yaml b/dotnet/samples/03-workflows/Declarative/InputArguments/InputArguments.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/InputArguments.yaml rename to dotnet/samples/03-workflows/Declarative/InputArguments/InputArguments.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/Program.cs b/dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InputArguments/Program.cs rename to dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/InputArguments/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/InputArguments/Properties/launchSettings.json new file mode 100644 index 0000000000..f95e48286c --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/InputArguments/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Vacation": { + "commandName": "Project", + "commandLineArgs": "\"I'd like to go on vacation.\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj similarity index 80% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj rename to dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj index 23e1c91e0a..67229da4b8 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj +++ b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.csproj @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.yaml b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.yaml rename to dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/InvokeFunctionTool.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/MenuPlugin.cs b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/MenuPlugin.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/MenuPlugin.cs rename to dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/MenuPlugin.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/Program.cs b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeFunctionTool/Program.cs rename to dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/Marketing/Marketing.csproj b/dotnet/samples/03-workflows/Declarative/Marketing/Marketing.csproj similarity index 73% rename from dotnet/samples/GettingStarted/Workflows/Declarative/Marketing/Marketing.csproj rename to dotnet/samples/03-workflows/Declarative/Marketing/Marketing.csproj index ceba7b740b..20e5843554 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/Marketing/Marketing.csproj +++ b/dotnet/samples/03-workflows/Declarative/Marketing/Marketing.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,12 +25,12 @@ - - + + - + Always diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/Marketing/Program.cs b/dotnet/samples/03-workflows/Declarative/Marketing/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/Marketing/Program.cs rename to dotnet/samples/03-workflows/Declarative/Marketing/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/Marketing/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/Marketing/Properties/launchSettings.json new file mode 100644 index 0000000000..be4e107472 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/Marketing/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Water Bottle": { + "commandName": "Project", + "commandLineArgs": "\"An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours.\"" + } + } +} diff --git a/dotnet/samples/03-workflows/Declarative/OpenAIChatAgent/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/OpenAIChatAgent/Properties/launchSettings.json new file mode 100644 index 0000000000..b36e876ef8 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/OpenAIChatAgent/Properties/launchSettings.json @@ -0,0 +1,32 @@ +{ + "profiles": { + "Marketing": { + "commandName": "Project", + "commandLineArgs": "\"Marketing.yaml\" \"An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours\"" + }, + "MathChat": { + "commandName": "Project", + "commandLineArgs": "\"MathChat.yaml\" \"How would you compute the value of PI?\"" + }, + "Question": { + "commandName": "Project", + "commandLineArgs": "\"Question.yaml\" \"Iko\"" + }, + "Research": { + "commandName": "Project", + "commandLineArgs": "\"DeepResearch.yaml\" \"What is the closest bus-stop that is next to ISHONI YAKINIKU in Seattle?\"" + }, + "ResponseObject": { + "commandName": "Project", + "commandLineArgs": "\"ResponseObject.yaml\" \"Can you help me plan a trip somewhere soon?\"" + }, + "UserInput": { + "commandName": "Project", + "commandLineArgs": "\"UserInput.yaml\" \"Iko\"" + }, + "ParseValue": { + "commandName": "Project", + "commandLineArgs": "\"Pradeep-ParseValue-Number.yaml\" \"Test this case:\"" + } + } +} diff --git a/dotnet/samples/03-workflows/Declarative/OpenAIResponseAgent/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/OpenAIResponseAgent/Properties/launchSettings.json new file mode 100644 index 0000000000..b36e876ef8 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/OpenAIResponseAgent/Properties/launchSettings.json @@ -0,0 +1,32 @@ +{ + "profiles": { + "Marketing": { + "commandName": "Project", + "commandLineArgs": "\"Marketing.yaml\" \"An eco-friendly stainless steel water bottle that keeps drinks cold for 24 hours\"" + }, + "MathChat": { + "commandName": "Project", + "commandLineArgs": "\"MathChat.yaml\" \"How would you compute the value of PI?\"" + }, + "Question": { + "commandName": "Project", + "commandLineArgs": "\"Question.yaml\" \"Iko\"" + }, + "Research": { + "commandName": "Project", + "commandLineArgs": "\"DeepResearch.yaml\" \"What is the closest bus-stop that is next to ISHONI YAKINIKU in Seattle?\"" + }, + "ResponseObject": { + "commandName": "Project", + "commandLineArgs": "\"ResponseObject.yaml\" \"Can you help me plan a trip somewhere soon?\"" + }, + "UserInput": { + "commandName": "Project", + "commandLineArgs": "\"UserInput.yaml\" \"Iko\"" + }, + "ParseValue": { + "commandName": "Project", + "commandLineArgs": "\"Pradeep-ParseValue-Number.yaml\" \"Test this case:\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/README.md b/dotnet/samples/03-workflows/Declarative/README.md similarity index 95% rename from dotnet/samples/GettingStarted/Workflows/Declarative/README.md rename to dotnet/samples/03-workflows/Declarative/README.md index 665c37101e..e2afa58671 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/README.md +++ b/dotnet/samples/03-workflows/Declarative/README.md @@ -27,7 +27,7 @@ To set your secrets with .NET Secret Manager: 1. From the root of the repository, navigate the console to the project folder: ``` - cd dotnet/samples/GettingStarted/Workflows/Declarative/ExecuteWorkflow + cd dotnet/samples/03-workflows/Declarative/ExecuteWorkflow ``` 2. Examine existing secret definitions: @@ -86,7 +86,7 @@ To run the sampes from the command line: 1. From the root of the repository, navigate the console to the project folder: ```sh - cd dotnet/samples/GettingStarted/Workflows/Declarative/Marketing + cd dotnet/samples/03-workflows/Declarative/Marketing dotnet run Marketing ``` diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs b/dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/Program.cs rename to dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/StudentTeacher/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/StudentTeacher/Properties/launchSettings.json new file mode 100644 index 0000000000..e428c6e5f3 --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/StudentTeacher/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Compute PI": { + "commandName": "Project", + "commandLineArgs": "\"How would you compute the value of PI based on its fundamental definition?\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/StudentTeacher.csproj b/dotnet/samples/03-workflows/Declarative/StudentTeacher/StudentTeacher.csproj similarity index 73% rename from dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/StudentTeacher.csproj rename to dotnet/samples/03-workflows/Declarative/StudentTeacher/StudentTeacher.csproj index 862e39bd99..8136706b8d 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/StudentTeacher/StudentTeacher.csproj +++ b/dotnet/samples/03-workflows/Declarative/StudentTeacher/StudentTeacher.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,12 +25,12 @@ - - + + - + Always diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/Program.cs b/dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/Program.cs rename to dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs diff --git a/dotnet/samples/03-workflows/Declarative/ToolApproval/Properties/launchSettings.json b/dotnet/samples/03-workflows/Declarative/ToolApproval/Properties/launchSettings.json new file mode 100644 index 0000000000..74291845be --- /dev/null +++ b/dotnet/samples/03-workflows/Declarative/ToolApproval/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Default": { + "commandName": "Project" + }, + "Graph API": { + "commandName": "Project", + "commandLineArgs": "\"What is Microsoft Graph API used for?\"" + } + } +} diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/ToolApproval.csproj b/dotnet/samples/03-workflows/Declarative/ToolApproval/ToolApproval.csproj similarity index 78% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/ToolApproval.csproj rename to dotnet/samples/03-workflows/Declarative/ToolApproval/ToolApproval.csproj index 1ebaa26645..a44e140f1f 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/ToolApproval.csproj +++ b/dotnet/samples/03-workflows/Declarative/ToolApproval/ToolApproval.csproj @@ -1,4 +1,4 @@ - + Exe @@ -25,8 +25,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/ToolApproval.yaml b/dotnet/samples/03-workflows/Declarative/ToolApproval/ToolApproval.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/ToolApproval/ToolApproval.yaml rename to dotnet/samples/03-workflows/Declarative/ToolApproval/ToolApproval.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj b/dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj similarity index 69% rename from dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj rename to dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj index 2f41070759..0de620de0c 100644 --- a/dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj +++ b/dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/HumanInTheLoopBasic.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/Program.cs b/dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/Program.cs rename to dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/WorkflowFactory.cs b/dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/WorkflowFactory.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/HumanInTheLoop/HumanInTheLoopBasic/WorkflowFactory.cs rename to dotnet/samples/03-workflows/HumanInTheLoop/HumanInTheLoopBasic/WorkflowFactory.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj b/dotnet/samples/03-workflows/Loop/Loop.csproj similarity index 69% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj rename to dotnet/samples/03-workflows/Loop/Loop.csproj index 2f41070759..8430479a72 100644 --- a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndResume/CheckpointAndResume.csproj +++ b/dotnet/samples/03-workflows/Loop/Loop.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/Loop/Program.cs b/dotnet/samples/03-workflows/Loop/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Loop/Program.cs rename to dotnet/samples/03-workflows/Loop/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/ApplicationInsights/ApplicationInsights.csproj b/dotnet/samples/03-workflows/Observability/ApplicationInsights/ApplicationInsights.csproj similarity index 83% rename from dotnet/samples/GettingStarted/Workflows/Observability/ApplicationInsights/ApplicationInsights.csproj rename to dotnet/samples/03-workflows/Observability/ApplicationInsights/ApplicationInsights.csproj index 4c91a01fad..0e868d5705 100644 --- a/dotnet/samples/GettingStarted/Workflows/Observability/ApplicationInsights/ApplicationInsights.csproj +++ b/dotnet/samples/03-workflows/Observability/ApplicationInsights/ApplicationInsights.csproj @@ -18,7 +18,7 @@ - + \ No newline at end of file diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/ApplicationInsights/Program.cs b/dotnet/samples/03-workflows/Observability/ApplicationInsights/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Observability/ApplicationInsights/Program.cs rename to dotnet/samples/03-workflows/Observability/ApplicationInsights/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/AspireDashboard/AspireDashboard.csproj b/dotnet/samples/03-workflows/Observability/AspireDashboard/AspireDashboard.csproj similarity index 84% rename from dotnet/samples/GettingStarted/Workflows/Observability/AspireDashboard/AspireDashboard.csproj rename to dotnet/samples/03-workflows/Observability/AspireDashboard/AspireDashboard.csproj index 57b34f3d69..73e0cf67fb 100644 --- a/dotnet/samples/GettingStarted/Workflows/Observability/AspireDashboard/AspireDashboard.csproj +++ b/dotnet/samples/03-workflows/Observability/AspireDashboard/AspireDashboard.csproj @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/AspireDashboard/Program.cs b/dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Observability/AspireDashboard/Program.cs rename to dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/Program.cs b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/Program.cs rename to dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj similarity index 72% rename from dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj rename to dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj index 6a2d02be9b..280631fdc9 100644 --- a/dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj +++ b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/WorkflowAsAnAgentObservability.csproj @@ -22,11 +22,11 @@ - - + - + diff --git a/dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/WorkflowHelper.cs b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/WorkflowHelper.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Observability/WorkflowAsAnAgent/WorkflowHelper.cs rename to dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/WorkflowHelper.cs diff --git a/dotnet/samples/GettingStarted/Workflows/README.md b/dotnet/samples/03-workflows/README.md similarity index 70% rename from dotnet/samples/GettingStarted/Workflows/README.md rename to dotnet/samples/03-workflows/README.md index 36a88fff5d..2b8d375654 100644 --- a/dotnet/samples/GettingStarted/Workflows/README.md +++ b/dotnet/samples/03-workflows/README.md @@ -6,19 +6,19 @@ The getting started with workflow samples demonstrate the fundamental concepts a ### Foundational Concepts - Start Here -Please begin with the [Foundational](./_Foundational) samples in order. These three samples introduce the core concepts of executors, edges, agents in workflows, streaming, and workflow construction. +Please begin with the [Start Here](./_StartHere) samples in order. These three samples introduce the core concepts of executors, edges, agents in workflows, streaming, and workflow construction. -> The folder name starts with an underscore (`_Foundational`) to ensure it appears first in the explorer view. +> The folder name starts with an underscore (`_StartHere`) to ensure it appears first in the explorer view. | Sample | Concepts | |--------|----------| -| [Streaming](./_Foundational/02_Streaming) | Extends workflows with event streaming | -| [Agents](./_Foundational/03_AgentsInWorkflows) | Use agents in workflows | -| [Agentic Workflow Patterns](./_Foundational/04_AgentWorkflowPatterns) | Demonstrates common agentic workflow patterns | -| [Multi-Service Workflows](./_Foundational/05_MultiModelService) | Shows using multiple AI services in the same workflow | -| [Sub-Workflows](./_Foundational/06_SubWorkflows) | Demonstrates composing workflows hierarchically by embedding workflows as executors | -| [Mixed Workflow with Agents and Executors](./_Foundational/07_MixedWorkflowAgentsAndExecutors) | Shows how to mix agents and executors with adapter pattern for type conversion and protocol handling | -| [Writer-Critic Workflow](./_Foundational/08_WriterCriticWorkflow) | Demonstrates iterative refinement with quality gates, max iteration safety, multiple message handlers, and conditional routing for feedback loops | +| [Streaming](./_StartHere/01_Streaming) | Extends workflows with event streaming | +| [Agents](./_StartHere/02_AgentsInWorkflows) | Use agents in workflows | +| [Agentic Workflow Patterns](./_StartHere/03_AgentWorkflowPatterns) | Demonstrates common agentic workflow patterns | +| [Multi-Service Workflows](./_StartHere/04_MultiModelService) | Shows using multiple AI services in the same workflow | +| [Sub-Workflows](./_StartHere/05_SubWorkflows) | Demonstrates composing workflows hierarchically by embedding workflows as executors | +| [Mixed Workflow with Agents and Executors](./_StartHere/06_MixedWorkflowAgentsAndExecutors) | Shows how to mix agents and executors with adapter pattern for type conversion and protocol handling | +| [Writer-Critic Workflow](./_StartHere/07_WriterCriticWorkflow) | Demonstrates iterative refinement with quality gates, max iteration safety, multiple message handlers, and conditional routing for feedback loops | Once completed, please proceed to other samples listed below. diff --git a/dotnet/samples/GettingStarted/Workflows/Resources/Lorem_Ipsum.txt b/dotnet/samples/03-workflows/Resources/Lorem_Ipsum.txt similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Resources/Lorem_Ipsum.txt rename to dotnet/samples/03-workflows/Resources/Lorem_Ipsum.txt diff --git a/dotnet/samples/GettingStarted/Workflows/Resources/ambiguous_email.txt b/dotnet/samples/03-workflows/Resources/ambiguous_email.txt similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Resources/ambiguous_email.txt rename to dotnet/samples/03-workflows/Resources/ambiguous_email.txt diff --git a/dotnet/samples/GettingStarted/Workflows/Resources/email.txt b/dotnet/samples/03-workflows/Resources/email.txt similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Resources/email.txt rename to dotnet/samples/03-workflows/Resources/email.txt diff --git a/dotnet/samples/GettingStarted/Workflows/Resources/spam.txt b/dotnet/samples/03-workflows/Resources/spam.txt similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Resources/spam.txt rename to dotnet/samples/03-workflows/Resources/spam.txt diff --git a/dotnet/samples/GettingStarted/Workflows/SharedStates/Program.cs b/dotnet/samples/03-workflows/SharedStates/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/SharedStates/Program.cs rename to dotnet/samples/03-workflows/SharedStates/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/SharedStates/Resources.cs b/dotnet/samples/03-workflows/SharedStates/Resources.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/SharedStates/Resources.cs rename to dotnet/samples/03-workflows/SharedStates/Resources.cs diff --git a/dotnet/samples/GettingStarted/Workflows/SharedStates/SharedStates.csproj b/dotnet/samples/03-workflows/SharedStates/SharedStates.csproj similarity index 79% rename from dotnet/samples/GettingStarted/Workflows/SharedStates/SharedStates.csproj rename to dotnet/samples/03-workflows/SharedStates/SharedStates.csproj index 35f87e7ebe..f8d9efcc03 100644 --- a/dotnet/samples/GettingStarted/Workflows/SharedStates/SharedStates.csproj +++ b/dotnet/samples/03-workflows/SharedStates/SharedStates.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/Visualization/Program.cs b/dotnet/samples/03-workflows/Visualization/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Visualization/Program.cs rename to dotnet/samples/03-workflows/Visualization/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Visualization/README.md b/dotnet/samples/03-workflows/Visualization/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Visualization/README.md rename to dotnet/samples/03-workflows/Visualization/README.md diff --git a/dotnet/samples/GettingStarted/Workflows/Visualization/Resources/graphviz_render.png b/dotnet/samples/03-workflows/Visualization/Resources/graphviz_render.png similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Visualization/Resources/graphviz_render.png rename to dotnet/samples/03-workflows/Visualization/Resources/graphviz_render.png diff --git a/dotnet/samples/GettingStarted/Workflows/Visualization/Resources/mermaid_render.png b/dotnet/samples/03-workflows/Visualization/Resources/mermaid_render.png similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Visualization/Resources/mermaid_render.png rename to dotnet/samples/03-workflows/Visualization/Resources/mermaid_render.png diff --git a/dotnet/samples/03-workflows/Visualization/Visualization.csproj b/dotnet/samples/03-workflows/Visualization/Visualization.csproj new file mode 100644 index 0000000000..7f9f03dff4 --- /dev/null +++ b/dotnet/samples/03-workflows/Visualization/Visualization.csproj @@ -0,0 +1,16 @@ + + + + Exe + net10.0 + + enable + enable + + + + + + + + diff --git a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj b/dotnet/samples/03-workflows/_StartHere/01_Streaming/01_Streaming.csproj similarity index 69% rename from dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj rename to dotnet/samples/03-workflows/_StartHere/01_Streaming/01_Streaming.csproj index 2f41070759..0de620de0c 100644 --- a/dotnet/samples/GettingStarted/Workflows/Checkpoint/CheckpointAndRehydrate/CheckpointAndRehydrate.csproj +++ b/dotnet/samples/03-workflows/_StartHere/01_Streaming/01_Streaming.csproj @@ -9,7 +9,7 @@ - + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/Program.cs b/dotnet/samples/03-workflows/_StartHere/01_Streaming/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/Program.cs rename to dotnet/samples/03-workflows/_StartHere/01_Streaming/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/03_AgentsInWorkflows.csproj b/dotnet/samples/03-workflows/_StartHere/02_AgentsInWorkflows/02_AgentsInWorkflows.csproj similarity index 67% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/03_AgentsInWorkflows.csproj rename to dotnet/samples/03-workflows/_StartHere/02_AgentsInWorkflows/02_AgentsInWorkflows.csproj index d0c0656ade..e926a8375a 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/03_AgentsInWorkflows.csproj +++ b/dotnet/samples/03-workflows/_StartHere/02_AgentsInWorkflows/02_AgentsInWorkflows.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/Program.cs b/dotnet/samples/03-workflows/_StartHere/02_AgentsInWorkflows/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/03_AgentsInWorkflows/Program.cs rename to dotnet/samples/03-workflows/_StartHere/02_AgentsInWorkflows/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/04_AgentWorkflowPatterns.csproj b/dotnet/samples/03-workflows/_StartHere/03_AgentWorkflowPatterns/03_AgentWorkflowPatterns.csproj similarity index 67% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/04_AgentWorkflowPatterns.csproj rename to dotnet/samples/03-workflows/_StartHere/03_AgentWorkflowPatterns/03_AgentWorkflowPatterns.csproj index d0c0656ade..e926a8375a 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/04_AgentWorkflowPatterns.csproj +++ b/dotnet/samples/03-workflows/_StartHere/03_AgentWorkflowPatterns/03_AgentWorkflowPatterns.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/Program.cs b/dotnet/samples/03-workflows/_StartHere/03_AgentWorkflowPatterns/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/04_AgentWorkflowPatterns/Program.cs rename to dotnet/samples/03-workflows/_StartHere/03_AgentWorkflowPatterns/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/05_MultiModelService/05_MultiModelService.csproj b/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/04_MultiModelService.csproj similarity index 68% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/05_MultiModelService/05_MultiModelService.csproj rename to dotnet/samples/03-workflows/_StartHere/04_MultiModelService/04_MultiModelService.csproj index bc5cc0d67d..ee2bd37bf2 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/05_MultiModelService/05_MultiModelService.csproj +++ b/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/04_MultiModelService.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/05_MultiModelService/Program.cs b/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/05_MultiModelService/Program.cs rename to dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/06_SubWorkflows/06_SubWorkflows.csproj b/dotnet/samples/03-workflows/_StartHere/05_SubWorkflows/05_SubWorkflows.csproj similarity index 55% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/06_SubWorkflows/06_SubWorkflows.csproj rename to dotnet/samples/03-workflows/_StartHere/05_SubWorkflows/05_SubWorkflows.csproj index 6c33744eee..072cc2cec3 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/06_SubWorkflows/06_SubWorkflows.csproj +++ b/dotnet/samples/03-workflows/_StartHere/05_SubWorkflows/05_SubWorkflows.csproj @@ -9,8 +9,8 @@ - - + + \ No newline at end of file diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/06_SubWorkflows/Program.cs b/dotnet/samples/03-workflows/_StartHere/05_SubWorkflows/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/06_SubWorkflows/Program.cs rename to dotnet/samples/03-workflows/_StartHere/05_SubWorkflows/Program.cs diff --git a/dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/06_MixedWorkflowAgentsAndExecutors.csproj b/dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/06_MixedWorkflowAgentsAndExecutors.csproj new file mode 100644 index 0000000000..e926a8375a --- /dev/null +++ b/dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/06_MixedWorkflowAgentsAndExecutors.csproj @@ -0,0 +1,22 @@ + + + + Exe + net10.0 + + enable + enable + + + + + + + + + + + + + + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/Program.cs b/dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/Program.cs rename to dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md b/dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/README.md rename to dotnet/samples/03-workflows/_StartHere/06_MixedWorkflowAgentsAndExecutors/README.md diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/08_WriterCriticWorkflow.csproj b/dotnet/samples/03-workflows/_StartHere/07_WriterCriticWorkflow/07_WriterCriticWorkflow.csproj similarity index 61% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/08_WriterCriticWorkflow.csproj rename to dotnet/samples/03-workflows/_StartHere/07_WriterCriticWorkflow/07_WriterCriticWorkflow.csproj index b9139c05ba..8486cebfb1 100644 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/08_WriterCriticWorkflow.csproj +++ b/dotnet/samples/03-workflows/_StartHere/07_WriterCriticWorkflow/07_WriterCriticWorkflow.csproj @@ -1,4 +1,4 @@ - + Exe @@ -10,12 +10,12 @@ - - + - + diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/Program.cs b/dotnet/samples/03-workflows/_StartHere/07_WriterCriticWorkflow/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/_Foundational/08_WriterCriticWorkflow/Program.cs rename to dotnet/samples/03-workflows/_StartHere/07_WriterCriticWorkflow/Program.cs diff --git a/dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Concurrent.csproj b/dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Concurrent.csproj deleted file mode 100644 index e756a0bf1d..0000000000 --- a/dotnet/samples/GettingStarted/Workflows/Concurrent/Concurrent/Concurrent.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - Exe - net10.0 - - enable - enable - - - - - - - - - - - - - - diff --git a/dotnet/samples/GettingStarted/Workflows/Directory.Build.props b/dotnet/samples/GettingStarted/Workflows/Directory.Build.props deleted file mode 100644 index 8ad5839332..0000000000 --- a/dotnet/samples/GettingStarted/Workflows/Directory.Build.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/02_Streaming.csproj b/dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/02_Streaming.csproj deleted file mode 100644 index 2f41070759..0000000000 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/02_Streaming/02_Streaming.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Exe - net10.0 - - enable - enable - - - - - - - diff --git a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/07_MixedWorkflowAgentsAndExecutors.csproj b/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/07_MixedWorkflowAgentsAndExecutors.csproj deleted file mode 100644 index d0c0656ade..0000000000 --- a/dotnet/samples/GettingStarted/Workflows/_Foundational/07_MixedWorkflowAgentsAndExecutors/07_MixedWorkflowAgentsAndExecutors.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - Exe - net10.0 - - enable - enable - - - - - - - - - - - - - - diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/README.md b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/README.md index 4202b89b82..4408f0febd 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/README.md +++ b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/README.md @@ -8,11 +8,9 @@ We've provided a set of [Sample Workflows](../../../workflow-samples/) within th Please refer to the [README](../../../workflow-samples/README.md) for setup instructions to run the sample workflows in your environment. -As part of our [Getting Started with Declarative Workflows](../../samples/GettingStarted/Workflows/Declarative/README.md), +As part of our [Getting Started with Declarative Workflows](../../samples/03-workflows/Declarative/README.md), we've provided a console application that is able to execute any declarative workflow. -Please refer to the [README](../../samples/GettingStarted/Workflows/Declarative/README.md) for configuration instructions. - ## Actions ### ⚙️ Foundry Actions From 48da8b06f2bf6bbbee06eb8f7579ff3425c84423 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Thu, 19 Feb 2026 13:49:24 -0800 Subject: [PATCH 09/36] Fix solution project path --- dotnet/agent-framework-dotnet.slnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index db44089500..e0719d8a2b 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -84,7 +84,7 @@ - + From 750a290931749a8e97f77ffcca106e74c5b9caa9 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 14:11:47 -0800 Subject: [PATCH 10/36] Python: Fix broken markdown links to repo resources (outside /docs) (#4105) * Initial plan * Fix broken markdown links to repo resources Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Update README to rename .NET Workflows Samples section --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --- README.md | 4 ++-- .../03-workflows/Agents/GroupChatToolApproval/README.md | 2 +- dotnet/samples/GettingStarted/README.md | 2 +- python/packages/core/README.md | 2 +- workflow-samples/README.md | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5dc11508e7..2bcdf6e831 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Still have questions? Join our [weekly office hours](./COMMUNITY.md#public-commu ### ✨ **Highlights** - **Graph-based Workflows**: Connect agents and deterministic functions using data flows with streaming, checkpointing, human-in-the-loop, and time-travel capabilities - - [Python workflows](./python/samples/03-workflows/) | [.NET workflows](./dotnet/samples/GettingStarted/Workflows/) + - [Python workflows](./python/samples/03-workflows/) | [.NET workflows](./dotnet/samples/03-workflows/) - **AF Labs**: Experimental packages for cutting-edge features including benchmarking, reinforcement learning, and research initiatives - [Labs directory](./python/packages/lab/) - **DevUI**: Interactive developer UI for agent development, testing, and debugging workflows @@ -167,7 +167,7 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram - [Getting Started with Agents](./dotnet/samples/GettingStarted/Agents): basic agent creation and tool usage - [Agent Provider Samples](./dotnet/samples/GettingStarted/AgentProviders): samples showing different agent providers -- [Workflow Samples](./dotnet/samples/GettingStarted/Workflows): advanced multi-agent patterns and workflow orchestration +- [Workflow Samples](./dotnet/samples/03-workflows): advanced multi-agent patterns and workflow orchestration ## Contributor Resources diff --git a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md index 920e9ad22a..eee52459da 100644 --- a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md +++ b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md @@ -65,6 +65,6 @@ The sample will show: ## Related Samples -- [Agent Function Tools with Approvals](../../../Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern +- [Agent Function Tools with Approvals](../../../GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern - [Agent Workflow Patterns](../../_StartHere/03_AgentWorkflowPatterns) - Group chat without approvals - [Human-in-the-Loop Basic](../../HumanInTheLoop/HumanInTheLoopBasic) - Workflow-level human interaction diff --git a/dotnet/samples/GettingStarted/README.md b/dotnet/samples/GettingStarted/README.md index 705725ca1a..5fc1315870 100644 --- a/dotnet/samples/GettingStarted/README.md +++ b/dotnet/samples/GettingStarted/README.md @@ -15,5 +15,5 @@ of the agent framework. |[Agent Open Telemetry](./AgentOpenTelemetry/README.md)|Getting started with OpenTelemetry for agents| |[Agent With OpenAI exchange types](./AgentWithOpenAI/README.md)|Using OpenAI exchange types with agents| |[Agent With Anthropic](./AgentWithAnthropic/README.md)|Getting started with agents using Anthropic Claude| -|[Workflow](./Workflows/README.md)|Getting started with Workflow| +|[Workflow](../03-workflows/README.md)|Getting started with Workflow| |[Model Context Protocol](./ModelContextProtocol/README.md)|Getting started with Model Context Protocol| diff --git a/python/packages/core/README.md b/python/packages/core/README.md index 1c2433cbc1..ff194ad859 100644 --- a/python/packages/core/README.md +++ b/python/packages/core/README.md @@ -220,7 +220,7 @@ if __name__ == "__main__": - [Getting Started with Agents](../../samples/02-agents): Basic agent creation and tool usage - [Chat Client Examples](../../samples/02-agents/chat_client): Direct chat client usage patterns - [Azure AI Integration](https://github.com/microsoft/agent-framework/tree/main/python/packages/azure-ai): Azure AI integration -- [.NET Workflows Samples](../../../dotnet/samples/GettingStarted/Workflows): Advanced multi-agent patterns (.NET) +- [Workflows Samples](../../samples/03-workflows): Advanced multi-agent patterns ## Agent Framework Documentation diff --git a/workflow-samples/README.md b/workflow-samples/README.md index a7bed697e5..07cbb859e2 100644 --- a/workflow-samples/README.md +++ b/workflow-samples/README.md @@ -10,8 +10,8 @@ Workflow workflow = DeclarativeWorkflowBuilder.Build("Marketing.yaml", options); ``` These example workflows may be executed by the workflow -[Samples](../dotnet/samples/GettingStarted/Workflows/Declarative) +[Samples](../dotnet/samples/03-workflows/Declarative) that are present in this repository. -> See the [README.md](../dotnet/samples/GettingStarted/Workflows/Declarative/README.md) +> See the [README.md](../dotnet/samples/03-workflows/Declarative/README.md) associated with the samples for configuration details. From c765a57c45511a516ce6e283bbc8551817ec4f71 Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 14:35:16 -0800 Subject: [PATCH 11/36] .NET Samples - Create `02-agents` learning path step (#4107) --- .github/labeler.yml | 2 +- README.md | 10 +- dotnet/README.md | 4 +- dotnet/agent-framework-dotnet.slnx | 267 +++++++++--------- .../AGUI/README.md | 0 .../Client/Client.csproj | 0 .../Step01_GettingStarted/Client/Program.cs | 0 .../Step01_GettingStarted/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../Server/Server.csproj | 0 .../Server/appsettings.Development.json | 0 .../Server/appsettings.json | 0 .../Step02_BackendTools/Client/Client.csproj | 0 .../Step02_BackendTools/Client/Program.cs | 0 .../Step02_BackendTools/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../Step02_BackendTools/Server/Server.csproj | 0 .../Server/appsettings.Development.json | 0 .../Server/appsettings.json | 0 .../Step03_FrontendTools/Client/Client.csproj | 0 .../Step03_FrontendTools/Client/Program.cs | 0 .../Step03_FrontendTools/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../Step03_FrontendTools/Server/Server.csproj | 0 .../Server/appsettings.Development.json | 0 .../Server/appsettings.json | 0 .../Step04_HumanInLoop/Client/Client.csproj | 0 .../AGUI/Step04_HumanInLoop/Client/Program.cs | 0 .../ServerFunctionApprovalClientAgent.cs | 0 .../AGUI/Step04_HumanInLoop/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../Step04_HumanInLoop/Server/Server.csproj | 0 .../ServerFunctionApprovalServerAgent.cs | 0 .../Server/appsettings.Development.json | 0 .../Server/appsettings.json | 0 .../Client/Client.csproj | 0 .../Step05_StateManagement/Client/Program.cs | 0 .../Client/StatefulAgent.cs | 0 .../Step05_StateManagement/Server/Program.cs | 0 .../Server/Properties/launchSettings.json | 0 .../Server/RecipeModels.cs | 0 .../Server/Server.csproj | 0 .../Server/SharedStateAgent.cs | 0 .../Server/appsettings.Development.json | 0 .../Server/appsettings.json | 0 .../AgentOpenTelemetry.csproj | 0 .../AgentOpenTelemetry/Program.cs | 0 .../AgentOpenTelemetry/README.md | 0 .../AgentOpenTelemetry/start-demo.ps1 | 0 .../Agent_With_A2A/Agent_With_A2A.csproj | 0 .../AgentProviders/Agent_With_A2A/Program.cs | 0 .../AgentProviders/Agent_With_A2A/README.md | 0 .../Agent_With_Anthropic.csproj | 0 .../Agent_With_Anthropic/Program.cs | 0 .../Agent_With_Anthropic/README.md | 0 .../Agent_With_AzureAIAgentsPersistent.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_With_AzureAIProject.csproj | 0 .../Agent_With_AzureAIProject/Program.cs | 0 .../Agent_With_AzureAIProject/README.md | 0 .../Agent_With_AzureFoundryModel.csproj | 0 .../Agent_With_AzureFoundryModel/Program.cs | 0 .../Agent_With_AzureFoundryModel/README.md | 0 ...gent_With_AzureOpenAIChatCompletion.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_With_AzureOpenAIResponses.csproj | 0 .../Program.cs | 0 .../Agent_With_AzureOpenAIResponses/README.md | 0 .../Agent_With_CustomImplementation.csproj | 0 .../Program.cs | 0 .../Agent_With_CustomImplementation/README.md | 0 .../Agent_With_GitHubCopilot.csproj | 0 .../Agent_With_GitHubCopilot/Program.cs | 0 .../Agent_With_GitHubCopilot/README.md | 0 .../Agent_With_GoogleGemini.csproj | 0 .../Agent_With_GoogleGemini/Program.cs | 0 .../Agent_With_GoogleGemini/README.md | 0 .../Agent_With_ONNX/Agent_With_ONNX.csproj | 0 .../AgentProviders/Agent_With_ONNX/Program.cs | 0 .../AgentProviders/Agent_With_ONNX/README.md | 0 .../Agent_With_Ollama.csproj | 0 .../Agent_With_Ollama/Program.cs | 0 .../Agent_With_Ollama/README.md | 0 .../Agent_With_OpenAIAssistants.csproj | 0 .../Agent_With_OpenAIAssistants/Program.cs | 0 .../Agent_With_OpenAIAssistants/README.md | 0 .../Agent_With_OpenAIChatCompletion.csproj | 0 .../Program.cs | 0 .../Agent_With_OpenAIChatCompletion/README.md | 0 .../Agent_With_OpenAIResponses.csproj | 0 .../Agent_With_OpenAIResponses/Program.cs | 0 .../Agent_With_OpenAIResponses/README.md | 0 .../AgentProviders/README.md | 0 .../Agent_Anthropic_Step01_Running.csproj | 0 .../Agent_Anthropic_Step01_Running/Program.cs | 0 .../Agent_Anthropic_Step01_Running/README.md | 2 +- .../Agent_Anthropic_Step02_Reasoning.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...Anthropic_Step03_UsingFunctionTools.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../Agent_Anthropic_Step04_UsingSkills.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../AgentWithAnthropic/README.md | 0 ...WithMemory_Step01_ChatHistoryMemory.csproj | 0 .../Program.cs | 0 ...ntWithMemory_Step02_MemoryUsingMem0.csproj | 0 .../Program.cs | 0 .../AgentWithMemory/README.md | 0 .../Agent_OpenAI_Step01_Running.csproj | 0 .../Agent_OpenAI_Step01_Running/Program.cs | 0 .../Agent_OpenAI_Step02_Reasoning.csproj | 0 .../Agent_OpenAI_Step02_Reasoning/Program.cs | 0 ..._OpenAI_Step03_CreateFromChatClient.csproj | 0 .../OpenAIChatClientAgent.cs | 0 .../Program.cs | 0 .../README.md | 0 ...ep04_CreateFromOpenAIResponseClient.csproj | 0 .../OpenAIResponseClientAgent.cs | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_OpenAI_Step05_Conversation.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../AgentWithOpenAI/README.md | 0 .../AgentWithRAG_Step01_BasicTextRAG.csproj | 0 .../Program.cs | 0 .../TextSearchStore/TextSearchDocument.cs | 0 .../TextSearchStore/TextSearchStore.cs | 0 .../TextSearchStore/TextSearchStoreOptions.cs | 0 .../TextSearchStoreUpsertOptions.cs | 0 ...WithRAG_Step02_CustomVectorStoreRAG.csproj | 0 .../Program.cs | 0 .../README.md | 0 ...tWithRAG_Step03_CustomRAGDataSource.csproj | 0 .../Program.cs | 0 ...entWithRAG_Step04_FoundryServiceRAG.csproj | 0 .../Program.cs | 0 .../contoso-outdoors-knowledge-base.md | 0 .../AgentWithRAG/README.md | 0 ...p04_UsingFunctionToolsWithApprovals.csproj | 0 .../Program.cs | 0 .../AIAgentBuilderExtensions.cs | 0 .../Agent_Step05_StructuredOutput.csproj | 0 .../Agent_Step05_StructuredOutput/Program.cs | 0 .../Agent_Step05_StructuredOutput/README.md | 2 +- .../StructuredOutputAgent.cs | 0 .../StructuredOutputAgentOptions.cs | 0 .../StructuredOutputAgentResponse.cs | 0 ...Agent_Step06_PersistedConversations.csproj | 0 .../Program.cs | 0 ...t_Step07_3rdPartyChatHistoryStorage.csproj | 0 .../Program.cs | 0 .../Agent_Step08_Observability.csproj | 0 .../Agent_Step08_Observability/Program.cs | 0 .../Agent_Step09_DependencyInjection.csproj | 0 .../Program.cs | 0 .../Agent_Step10_AsMcpTool.csproj | 0 .../Agents/Agent_Step10_AsMcpTool/Program.cs | 0 .../Agents/Agent_Step10_AsMcpTool/README.md | 0 .../Agent_Step11_UsingImages.csproj | 0 .../Agent_Step11_UsingImages/Program.cs | 0 .../Agents/Agent_Step11_UsingImages/README.md | 0 .../Agent_Step12_AsFunctionTool.csproj | 0 .../Agent_Step12_AsFunctionTool/Program.cs | 0 ...undResponsesWithToolsAndPersistence.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_Step14_Middleware.csproj | 0 .../Agents/Agent_Step14_Middleware/Program.cs | 0 .../Agents/Agent_Step14_Middleware/README.md | 2 +- .../Agent_Step15_Plugins.csproj | 0 .../Agents/Agent_Step15_Plugins/Program.cs | 0 .../Agent_Step16_ChatReduction.csproj | 0 .../Agent_Step16_ChatReduction/Program.cs | 0 .../Agent_Step17_BackgroundResponses.csproj | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_Step18_DeepResearch.csproj | 0 .../Agent_Step18_DeepResearch/Program.cs | 0 .../Agent_Step18_DeepResearch/README.md | 0 .../Agent_Step19_Declarative.csproj | 0 .../Agent_Step19_Declarative/Program.cs | 0 .../Agent_Step20_AdditionalAIContext.csproj | 0 .../Program.cs | 0 .../Agents/README.md | 0 .../DeclarativeChatClientAgents.csproj | 0 .../DeclarativeAgents/ChatClient/Program.cs | 0 .../ChatClient/Properties/launchSettings.json | 0 .../DevUI_Step01_BasicUsage.csproj | 0 .../DevUI/DevUI_Step01_BasicUsage/Program.cs | 0 .../Properties/launchSettings.json | 0 .../DevUI/DevUI_Step01_BasicUsage/README.md | 0 .../DevUI/README.md | 0 ...gents_Evaluations_Step01_RedTeaming.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...s_Evaluations_Step02_SelfReflection.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step01.1_Basics.csproj | 0 .../FoundryAgents_Step01.1_Basics/Program.cs | 0 .../FoundryAgents_Step01.1_Basics/README.md | 2 +- .../FoundryAgents_Step01.2_Running.csproj | 0 .../FoundryAgents_Step01.2_Running/Program.cs | 0 .../FoundryAgents_Step01.2_Running/README.md | 2 +- ...Agents_Step02_MultiturnConversation.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...dryAgents_Step03_UsingFunctionTools.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...p04_UsingFunctionToolsWithApprovals.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...undryAgents_Step05_StructuredOutput.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...gents_Step06_PersistedConversations.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step07_Observability.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...ryAgents_Step08_DependencyInjection.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...Agents_Step09_UsingMcpClientAsTools.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../Assets/walkway.jpg | Bin .../FoundryAgents_Step10_UsingImages.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- ...FoundryAgents_Step11_AsFunctionTool.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step12_Middleware.csproj | 0 .../Program.cs | 0 .../FoundryAgents_Step12_Middleware/README.md | 2 +- .../FoundryAgents_Step13_Plugins.csproj | 0 .../FoundryAgents_Step13_Plugins/Program.cs | 0 .../FoundryAgents_Step13_Plugins/README.md | 2 +- ...oundryAgents_Step14_CodeInterpreter.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../Assets/cua_browser_search.png | Bin .../Assets/cua_search_results.png | Bin .../Assets/cua_search_typed.png | Bin .../ComputerUseUtil.cs | 0 .../FoundryAgents_Step15_ComputerUse.csproj | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step18_FileSearch.csproj | 0 .../Program.cs | 0 .../FoundryAgents_Step18_FileSearch/README.md | 2 +- .../FoundryAgents_Step19_OpenAPITools.csproj | 0 .../Program.cs | 0 .../README.md | 4 +- .../FoundryAgents_Step27_LocalMCP.csproj | 0 .../FoundryAgents_Step27_LocalMCP/Program.cs | 0 .../FoundryAgents_Step27_LocalMCP/README.md | 2 +- .../FoundryAgents/README.md | 0 .../Agent_MCP_Server/Agent_MCP_Server.csproj | 0 .../Agent_MCP_Server/Program.cs | 0 .../Agent_MCP_Server/README.md | 0 .../Agent_MCP_Server_Auth.csproj | 0 .../Agent_MCP_Server_Auth/Program.cs | 0 .../Agent_MCP_Server_Auth/README.md | 0 .../FoundryAgent_Hosted_MCP.csproj | 0 .../FoundryAgent_Hosted_MCP/Program.cs | 0 .../FoundryAgent_Hosted_MCP/README.md | 0 .../ModelContextProtocol/README.md | 0 .../ResponseAgent_Hosted_MCP/Program.cs | 0 .../ResponseAgent_Hosted_MCP/README.md | 0 .../ResponseAgent_Hosted_MCP.csproj | 0 .../{GettingStarted => 02-agents}/README.md | 0 dotnet/samples/04-hosting/A2A/README.md | 2 +- dotnet/samples/README.md | 6 +- 283 files changed, 173 insertions(+), 174 deletions(-) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Client/Client.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Client/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Server/Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Server/appsettings.Development.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step01_GettingStarted/Server/appsettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Client/Client.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Client/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Server/Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Server/appsettings.Development.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step02_BackendTools/Server/appsettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Client/Client.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Client/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Server/Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Server/appsettings.Development.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step03_FrontendTools/Server/appsettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Client/Client.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Client/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Client/ServerFunctionApprovalClientAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/ServerFunctionApprovalServerAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/appsettings.Development.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step04_HumanInLoop/Server/appsettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Client/Client.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Client/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Client/StatefulAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/RecipeModels.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/SharedStateAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/appsettings.Development.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AGUI/Step05_StateManagement/Server/appsettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentOpenTelemetry/AgentOpenTelemetry.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentOpenTelemetry/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentOpenTelemetry/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentOpenTelemetry/start-demo.ps1 (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_A2A/Agent_With_A2A.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_A2A/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_A2A/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Anthropic/Agent_With_Anthropic.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Anthropic/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Anthropic/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIAgentsPersistent/Agent_With_AzureAIAgentsPersistent.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIProject/Agent_With_AzureAIProject.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIProject/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureAIProject/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureFoundryModel/Agent_With_AzureFoundryModel.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureFoundryModel/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureFoundryModel/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Agent_With_AzureOpenAIChatCompletion.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIChatCompletion/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIResponses/Agent_With_AzureOpenAIResponses.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIResponses/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_AzureOpenAIResponses/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_CustomImplementation/Agent_With_CustomImplementation.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_CustomImplementation/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_CustomImplementation/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GitHubCopilot/Agent_With_GitHubCopilot.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GitHubCopilot/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GitHubCopilot/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GoogleGemini/Agent_With_GoogleGemini.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GoogleGemini/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_GoogleGemini/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_ONNX/Agent_With_ONNX.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_ONNX/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_ONNX/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Ollama/Agent_With_Ollama.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Ollama/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_Ollama/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIAssistants/Agent_With_OpenAIAssistants.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIAssistants/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIAssistants/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIChatCompletion/Agent_With_OpenAIChatCompletion.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIChatCompletion/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIResponses/Agent_With_OpenAIResponses.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIResponses/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/Agent_With_OpenAIResponses/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentProviders/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Agent_Anthropic_Step01_Running.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md (95%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Agent_Anthropic_Step02_Reasoning.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md (96%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Agent_Anthropic_Step03_UsingFunctionTools.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md (96%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Agent_Anthropic_Step04_UsingSkills.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithAnthropic/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/AgentWithMemory_Step01_ChatHistoryMemory.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/AgentWithMemory_Step02_MemoryUsingMem0.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Agent_OpenAI_Step01_Running.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Agent_OpenAI_Step02_Reasoning.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Agent_OpenAI_Step03_CreateFromChatClient.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/OpenAIChatClientAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/OpenAIResponseClientAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Agent_OpenAI_Step05_Conversation.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithOpenAI/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/AgentWithRAG_Step01_BasicTextRAG.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchDocument.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStore.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreOptions.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreUpsertOptions.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/AgentWithRAG_Step02_CustomVectorStoreRAG.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/AgentWithRAG_Step03_CustomRAGDataSource.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/AgentWithRAG_Step04_FoundryServiceRAG.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/contoso-outdoors-knowledge-base.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithRAG/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step06_PersistedConversations/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step08_Observability/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step09_DependencyInjection/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step10_AsMcpTool/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step10_AsMcpTool/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step11_UsingImages/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step11_UsingImages/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step12_AsFunctionTool/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step14_Middleware/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step14_Middleware/README.md (95%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step15_Plugins/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step16_ChatReduction/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step17_BackgroundResponses/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step17_BackgroundResponses/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step18_DeepResearch/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step18_DeepResearch/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step19_Declarative/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/Agent_Step20_AdditionalAIContext/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/Agents/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DeclarativeAgents/ChatClient/DeclarativeChatClientAgents.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DeclarativeAgents/ChatClient/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DeclarativeAgents/ChatClient/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DevUI/DevUI_Step01_BasicUsage/DevUI_Step01_BasicUsage.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DevUI/DevUI_Step01_BasicUsage/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DevUI/DevUI_Step01_BasicUsage/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/DevUI/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/FoundryAgents_Evaluations_Step01_RedTeaming.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/FoundryAgents_Evaluations_Step02_SelfReflection.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.1_Basics/FoundryAgents_Step01.1_Basics.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.2_Running/FoundryAgents_Step01.2_Running.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step01.2_Running/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/FoundryAgents_Step02_MultiturnConversation.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/FoundryAgents_Step03_UsingFunctionTools.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/FoundryAgents_Step04_UsingFunctionToolsWithApprovals.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step05_StructuredOutput/FoundryAgents_Step05_StructuredOutput.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step06_PersistedConversations/FoundryAgents_Step06_PersistedConversations.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step07_Observability/FoundryAgents_Step07_Observability.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step07_Observability/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step08_DependencyInjection/FoundryAgents_Step08_DependencyInjection.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/FoundryAgents_Step09_UsingMcpClientAsTools.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step10_UsingImages/Assets/walkway.jpg (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step10_UsingImages/FoundryAgents_Step10_UsingImages.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/FoundryAgents_Step11_AsFunctionTool.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step12_Middleware/FoundryAgents_Step12_Middleware.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step12_Middleware/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step13_Plugins/FoundryAgents_Step13_Plugins.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step13_Plugins/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/FoundryAgents_Step14_CodeInterpreter.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_browser_search.png (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_results.png (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_typed.png (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/ComputerUseUtil.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/FoundryAgents_Step15_ComputerUse.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md (98%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md (95%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md (97%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server/Agent_MCP_Server.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server_Auth/Agent_MCP_Server_Auth.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server_Auth/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/Agent_MCP_Server_Auth/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/FoundryAgent_Hosted_MCP/FoundryAgent_Hosted_MCP.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/ResponseAgent_Hosted_MCP/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/ResponseAgent_Hosted_MCP/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/ModelContextProtocol/ResponseAgent_Hosted_MCP/ResponseAgent_Hosted_MCP.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/README.md (100%) diff --git a/.github/labeler.yml b/.github/labeler.yml index 5663961c58..5304c9b8ce 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -23,7 +23,7 @@ workflows: - any-glob-to-any-file: - dotnet/src/Microsoft.Agents.AI.Workflows/** - dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/** - - dotnet/samples/GettingStarted/Workflow/** + - dotnet/samples/02-agents/Workflow/** - python/packages/main/agent_framework/_workflow/** - python/samples/getting_started/workflow/** diff --git a/README.md b/README.md index 2bcdf6e831..93787d8eb5 100644 --- a/README.md +++ b/README.md @@ -73,11 +73,11 @@ Still have questions? Join our [weekly office hours](./COMMUNITY.md#public-commu - **Python and C#/.NET Support**: Full framework support for both Python and C#/.NET implementations with consistent APIs - [Python packages](./python/packages/) | [.NET source](./dotnet/src/) - **Observability**: Built-in OpenTelemetry integration for distributed tracing, monitoring, and debugging - - [Python observability](./python/samples/02-agents/observability/) | [.NET telemetry](./dotnet/samples/GettingStarted/AgentOpenTelemetry/) + - [Python observability](./python/samples/02-agents/observability/) | [.NET telemetry](./dotnet/samples/02-agents/AgentOpenTelemetry/) - **Multiple Agent Provider Support**: Support for various LLM providers with more being added continuously - - [Python examples](./python/samples/02-agents/providers/) | [.NET examples](./dotnet/samples/GettingStarted/AgentProviders/) + - [Python examples](./python/samples/02-agents/providers/) | [.NET examples](./dotnet/samples/02-agents/AgentProviders/) - **Middleware**: Flexible middleware system for request/response processing, exception handling, and custom pipelines - - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/) + - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/) ### 💬 **We want your feedback!** @@ -165,8 +165,8 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram ### .NET -- [Getting Started with Agents](./dotnet/samples/GettingStarted/Agents): basic agent creation and tool usage -- [Agent Provider Samples](./dotnet/samples/GettingStarted/AgentProviders): samples showing different agent providers +- [Getting Started with Agents](./dotnet/samples/02-agents/Agents): basic agent creation and tool usage +- [Agent Provider Samples](./dotnet/samples/02-agents/AgentProviders): samples showing different agent providers - [Workflow Samples](./dotnet/samples/03-workflows): advanced multi-agent patterns and workflow orchestration ## Contributor Resources diff --git a/dotnet/README.md b/dotnet/README.md index 3ac82b3a6c..7677e04a8e 100644 --- a/dotnet/README.md +++ b/dotnet/README.md @@ -22,8 +22,8 @@ Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Fram ## Examples & Samples -- [Getting Started with Agents](./samples/GettingStarted/Agents): basic agent creation and tool usage -- [Agent Provider Samples](./samples/GettingStarted/AgentProviders): samples showing different agent providers +- [Getting Started with Agents](./samples/02-agents/Agents): basic agent creation and tool usage +- [Agent Provider Samples](./samples/02-agents/AgentProviders): samples showing different agent providers - [Workflow Samples](./samples/03-workflows): advanced multi-agent patterns and workflow orchestration ## Agent Framework Documentation diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index e0719d8a2b..bcb5ad0917 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -15,8 +15,138 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -143,138 +273,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/dotnet/samples/GettingStarted/AGUI/README.md b/dotnet/samples/02-agents/AGUI/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/README.md rename to dotnet/samples/02-agents/AGUI/README.md diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Client/Client.csproj b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Client/Client.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Client/Client.csproj rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Client/Client.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Client/Program.cs b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Client/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Client/Program.cs rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Client/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Program.cs b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Program.cs rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Properties/launchSettings.json b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Properties/launchSettings.json rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Server.csproj b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/Server.csproj rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/Server.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/appsettings.Development.json b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/appsettings.Development.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/appsettings.Development.json rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/appsettings.Development.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/appsettings.json b/dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/appsettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step01_GettingStarted/Server/appsettings.json rename to dotnet/samples/02-agents/AGUI/Step01_GettingStarted/Server/appsettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Client/Client.csproj b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Client/Client.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Client/Client.csproj rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Client/Client.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Client/Program.cs b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Client/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Client/Program.cs rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Client/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Program.cs b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Program.cs rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Properties/launchSettings.json b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Properties/launchSettings.json rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Server.csproj b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/Server.csproj rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/Server.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/appsettings.Development.json b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/appsettings.Development.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/appsettings.Development.json rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/appsettings.Development.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/appsettings.json b/dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/appsettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step02_BackendTools/Server/appsettings.json rename to dotnet/samples/02-agents/AGUI/Step02_BackendTools/Server/appsettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Client/Client.csproj b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Client/Client.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Client/Client.csproj rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Client/Client.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Client/Program.cs b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Client/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Client/Program.cs rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Client/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Program.cs b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Program.cs rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Properties/launchSettings.json b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Properties/launchSettings.json rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Server.csproj b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/Server.csproj rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/Server.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/appsettings.Development.json b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/appsettings.Development.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/appsettings.Development.json rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/appsettings.Development.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/appsettings.json b/dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/appsettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step03_FrontendTools/Server/appsettings.json rename to dotnet/samples/02-agents/AGUI/Step03_FrontendTools/Server/appsettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/Client.csproj b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/Client.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/Client.csproj rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/Client.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/Program.cs b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/Program.cs rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/ServerFunctionApprovalClientAgent.cs b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/ServerFunctionApprovalClientAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Client/ServerFunctionApprovalClientAgent.cs rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Client/ServerFunctionApprovalClientAgent.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Program.cs b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Program.cs rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Properties/launchSettings.json b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Properties/launchSettings.json rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Server.csproj b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/Server.csproj rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/Server.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/ServerFunctionApprovalServerAgent.cs b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/ServerFunctionApprovalServerAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/ServerFunctionApprovalServerAgent.cs rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/ServerFunctionApprovalServerAgent.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/appsettings.Development.json b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/appsettings.Development.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/appsettings.Development.json rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/appsettings.Development.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/appsettings.json b/dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/appsettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step04_HumanInLoop/Server/appsettings.json rename to dotnet/samples/02-agents/AGUI/Step04_HumanInLoop/Server/appsettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/Client.csproj b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/Client.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/Client.csproj rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/Client.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/Program.cs b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/Program.cs rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/StatefulAgent.cs b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/StatefulAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Client/StatefulAgent.cs rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Client/StatefulAgent.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Program.cs b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Program.cs rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Program.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Properties/launchSettings.json b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Properties/launchSettings.json rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/RecipeModels.cs b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/RecipeModels.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/RecipeModels.cs rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/RecipeModels.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Server.csproj b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/Server.csproj rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/Server.csproj diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/SharedStateAgent.cs b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/SharedStateAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/SharedStateAgent.cs rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/SharedStateAgent.cs diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/appsettings.Development.json b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/appsettings.Development.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/appsettings.Development.json rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/appsettings.Development.json diff --git a/dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/appsettings.json b/dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/appsettings.json similarity index 100% rename from dotnet/samples/GettingStarted/AGUI/Step05_StateManagement/Server/appsettings.json rename to dotnet/samples/02-agents/AGUI/Step05_StateManagement/Server/appsettings.json diff --git a/dotnet/samples/GettingStarted/AgentOpenTelemetry/AgentOpenTelemetry.csproj b/dotnet/samples/02-agents/AgentOpenTelemetry/AgentOpenTelemetry.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentOpenTelemetry/AgentOpenTelemetry.csproj rename to dotnet/samples/02-agents/AgentOpenTelemetry/AgentOpenTelemetry.csproj diff --git a/dotnet/samples/GettingStarted/AgentOpenTelemetry/Program.cs b/dotnet/samples/02-agents/AgentOpenTelemetry/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentOpenTelemetry/Program.cs rename to dotnet/samples/02-agents/AgentOpenTelemetry/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentOpenTelemetry/README.md b/dotnet/samples/02-agents/AgentOpenTelemetry/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentOpenTelemetry/README.md rename to dotnet/samples/02-agents/AgentOpenTelemetry/README.md diff --git a/dotnet/samples/GettingStarted/AgentOpenTelemetry/start-demo.ps1 b/dotnet/samples/02-agents/AgentOpenTelemetry/start-demo.ps1 similarity index 100% rename from dotnet/samples/GettingStarted/AgentOpenTelemetry/start-demo.ps1 rename to dotnet/samples/02-agents/AgentOpenTelemetry/start-demo.ps1 diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/Agent_With_A2A.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/Agent_With_A2A.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/Agent_With_A2A.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/Agent_With_A2A.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_A2A/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_A2A/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/Agent_With_Anthropic.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Agent_With_Anthropic.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/Agent_With_Anthropic.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Agent_With_Anthropic.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Anthropic/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/Agent_With_AzureAIAgentsPersistent.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Agent_With_AzureAIAgentsPersistent.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/Agent_With_AzureAIAgentsPersistent.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Agent_With_AzureAIAgentsPersistent.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/Agent_With_AzureAIProject.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Agent_With_AzureAIProject.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/Agent_With_AzureAIProject.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Agent_With_AzureAIProject.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureAIProject/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/Agent_With_AzureFoundryModel.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Agent_With_AzureFoundryModel.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/Agent_With_AzureFoundryModel.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Agent_With_AzureFoundryModel.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureFoundryModel/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Agent_With_AzureOpenAIChatCompletion.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Agent_With_AzureOpenAIChatCompletion.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Agent_With_AzureOpenAIChatCompletion.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Agent_With_AzureOpenAIChatCompletion.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIChatCompletion/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIChatCompletion/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/Agent_With_AzureOpenAIResponses.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/Agent_With_AzureOpenAIResponses.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/Agent_With_AzureOpenAIResponses.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/Agent_With_AzureOpenAIResponses.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_AzureOpenAIResponses/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_AzureOpenAIResponses/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/Agent_With_CustomImplementation.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/Agent_With_CustomImplementation.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/Agent_With_CustomImplementation.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/Agent_With_CustomImplementation.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_CustomImplementation/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_CustomImplementation/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/Agent_With_GitHubCopilot.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/Agent_With_GitHubCopilot.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/Agent_With_GitHubCopilot.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/Agent_With_GitHubCopilot.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GitHubCopilot/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GitHubCopilot/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/Agent_With_GoogleGemini.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/Agent_With_GoogleGemini.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/Agent_With_GoogleGemini.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/Agent_With_GoogleGemini.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_GoogleGemini/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_GoogleGemini/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/Agent_With_ONNX.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/Agent_With_ONNX.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/Agent_With_ONNX.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/Agent_With_ONNX.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_ONNX/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_ONNX/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/Agent_With_Ollama.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/Agent_With_Ollama.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/Agent_With_Ollama.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/Agent_With_Ollama.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_Ollama/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_Ollama/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/Agent_With_OpenAIAssistants.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Agent_With_OpenAIAssistants.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/Agent_With_OpenAIAssistants.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Agent_With_OpenAIAssistants.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIAssistants/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/Agent_With_OpenAIChatCompletion.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Agent_With_OpenAIChatCompletion.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/Agent_With_OpenAIChatCompletion.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Agent_With_OpenAIChatCompletion.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIChatCompletion/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/Agent_With_OpenAIResponses.csproj b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Agent_With_OpenAIResponses.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/Agent_With_OpenAIResponses.csproj rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Agent_With_OpenAIResponses.csproj diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/Program.cs rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/Agent_With_OpenAIResponses/README.md rename to dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md diff --git a/dotnet/samples/GettingStarted/AgentProviders/README.md b/dotnet/samples/02-agents/AgentProviders/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentProviders/README.md rename to dotnet/samples/02-agents/AgentProviders/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Agent_Anthropic_Step01_Running.csproj b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Agent_Anthropic_Step01_Running.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Agent_Anthropic_Step01_Running.csproj rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Agent_Anthropic_Step01_Running.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md similarity index 95% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md index 4800650bd9..9e7a59a663 100644 --- a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md @@ -29,7 +29,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples\GettingStarted\AgentWithAnthropic +cd dotnet\samples/02-agents/AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step01_Running ``` diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Agent_Anthropic_Step02_Reasoning.csproj b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Agent_Anthropic_Step02_Reasoning.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Agent_Anthropic_Step02_Reasoning.csproj rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Agent_Anthropic_Step02_Reasoning.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md similarity index 96% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md index ae088b2386..ee753baccb 100644 --- a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md @@ -31,7 +31,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples\GettingStarted\AgentWithAnthropic +cd dotnet\samples/02-agents/AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step02_Reasoning ``` diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Agent_Anthropic_Step03_UsingFunctionTools.csproj b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Agent_Anthropic_Step03_UsingFunctionTools.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Agent_Anthropic_Step03_UsingFunctionTools.csproj rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Agent_Anthropic_Step03_UsingFunctionTools.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md similarity index 96% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md index 6c905864ef..1e6921a2f8 100644 --- a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md @@ -31,7 +31,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples\GettingStarted\AgentWithAnthropic +cd dotnet\samples/02-agents/AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step03_UsingFunctionTools ``` diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Agent_Anthropic_Step04_UsingSkills.csproj b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Agent_Anthropic_Step04_UsingSkills.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Agent_Anthropic_Step04_UsingSkills.csproj rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Agent_Anthropic_Step04_UsingSkills.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md similarity index 98% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md rename to dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md index f94b16cac9..db9620a0cb 100644 --- a/dotnet/samples/GettingStarted/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md @@ -32,7 +32,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples\GettingStarted\AgentWithAnthropic +cd dotnet\samples/02-agents/AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step04_UsingSkills ``` diff --git a/dotnet/samples/GettingStarted/AgentWithAnthropic/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithAnthropic/README.md rename to dotnet/samples/02-agents/AgentWithAnthropic/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/AgentWithMemory_Step01_ChatHistoryMemory.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/AgentWithMemory_Step01_ChatHistoryMemory.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/AgentWithMemory_Step01_ChatHistoryMemory.csproj rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/AgentWithMemory_Step01_ChatHistoryMemory.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/Program.cs rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step01_ChatHistoryMemory/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/AgentWithMemory_Step02_MemoryUsingMem0.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/AgentWithMemory_Step02_MemoryUsingMem0.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/AgentWithMemory_Step02_MemoryUsingMem0.csproj rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/AgentWithMemory_Step02_MemoryUsingMem0.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/README.md b/dotnet/samples/02-agents/AgentWithMemory/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/README.md rename to dotnet/samples/02-agents/AgentWithMemory/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Agent_OpenAI_Step01_Running.csproj b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Agent_OpenAI_Step01_Running.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Agent_OpenAI_Step01_Running.csproj rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Agent_OpenAI_Step01_Running.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Agent_OpenAI_Step02_Reasoning.csproj b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Agent_OpenAI_Step02_Reasoning.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Agent_OpenAI_Step02_Reasoning.csproj rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Agent_OpenAI_Step02_Reasoning.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Agent_OpenAI_Step03_CreateFromChatClient.csproj b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Agent_OpenAI_Step03_CreateFromChatClient.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Agent_OpenAI_Step03_CreateFromChatClient.csproj rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Agent_OpenAI_Step03_CreateFromChatClient.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/OpenAIChatClientAgent.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/OpenAIChatClientAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/OpenAIChatClientAgent.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/OpenAIChatClientAgent.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient.csproj b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient.csproj rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/OpenAIResponseClientAgent.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/OpenAIResponseClientAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/OpenAIResponseClientAgent.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/OpenAIResponseClientAgent.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Agent_OpenAI_Step05_Conversation.csproj b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Agent_OpenAI_Step05_Conversation.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Agent_OpenAI_Step05_Conversation.csproj rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Agent_OpenAI_Step05_Conversation.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md rename to dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithOpenAI/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithOpenAI/README.md rename to dotnet/samples/02-agents/AgentWithOpenAI/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/AgentWithRAG_Step01_BasicTextRAG.csproj b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/AgentWithRAG_Step01_BasicTextRAG.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/AgentWithRAG_Step01_BasicTextRAG.csproj rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/AgentWithRAG_Step01_BasicTextRAG.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/Program.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/Program.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchDocument.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchDocument.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchDocument.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchDocument.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStore.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStore.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStore.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStore.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreOptions.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreOptions.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreOptions.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreOptions.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreUpsertOptions.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreUpsertOptions.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreUpsertOptions.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step01_BasicTextRAG/TextSearchStore/TextSearchStoreUpsertOptions.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/AgentWithRAG_Step02_CustomVectorStoreRAG.csproj b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/AgentWithRAG_Step02_CustomVectorStoreRAG.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/AgentWithRAG_Step02_CustomVectorStoreRAG.csproj rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/AgentWithRAG_Step02_CustomVectorStoreRAG.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/Program.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/Program.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/README.md b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/README.md rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step02_CustomVectorStoreRAG/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/AgentWithRAG_Step03_CustomRAGDataSource.csproj b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/AgentWithRAG_Step03_CustomRAGDataSource.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/AgentWithRAG_Step03_CustomRAGDataSource.csproj rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/AgentWithRAG_Step03_CustomRAGDataSource.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/Program.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/Program.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step03_CustomRAGDataSource/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/AgentWithRAG_Step04_FoundryServiceRAG.csproj b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/AgentWithRAG_Step04_FoundryServiceRAG.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/AgentWithRAG_Step04_FoundryServiceRAG.csproj rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/AgentWithRAG_Step04_FoundryServiceRAG.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/contoso-outdoors-knowledge-base.md b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/contoso-outdoors-knowledge-base.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/contoso-outdoors-knowledge-base.md rename to dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/contoso-outdoors-knowledge-base.md diff --git a/dotnet/samples/GettingStarted/AgentWithRAG/README.md b/dotnet/samples/02-agents/AgentWithRAG/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithRAG/README.md rename to dotnet/samples/02-agents/AgentWithRAG/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj b/dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/README.md b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md similarity index 97% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md index 2471e92194..2eee8a6765 100644 --- a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md @@ -36,7 +36,7 @@ $env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o- Navigate to the sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput +cd dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput dotnet run ``` diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj b/dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step06_PersistedConversations/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step06_PersistedConversations/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj b/dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj b/dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step08_Observability/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step08_Observability/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj b/dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step09_DependencyInjection/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step09_DependencyInjection/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj b/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/README.md b/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step10_AsMcpTool/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj b/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/README.md b/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step11_UsingImages/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj b/dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step12_AsFunctionTool/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step12_AsFunctionTool/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj b/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md b/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj b/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/README.md b/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md similarity index 95% rename from dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md index d7193b6982..690ab7aa5e 100644 --- a/dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md @@ -36,7 +36,7 @@ Attempting to use function middleware on agents that do not wrap a ChatClientAge Use PowerShell: ```powershell -cd dotnet/samples/GettingStarted/Agents/Agent_Step14_Middleware +cd dotnet/samples/02-agents/Agents/Agent_Step14_Middleware dotnet run ``` diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj b/dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step15_Plugins/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step15_Plugins/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj b/dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step16_ChatReduction/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step16_ChatReduction/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj b/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/README.md b/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step17_BackgroundResponses/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj b/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/README.md b/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step18_DeepResearch/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/README.md diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj b/dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step19_Declarative/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step19_Declarative/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj b/dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj diff --git a/dotnet/samples/GettingStarted/Agents/Agent_Step20_AdditionalAIContext/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Agents/Agent_Step20_AdditionalAIContext/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Program.cs diff --git a/dotnet/samples/GettingStarted/Agents/README.md b/dotnet/samples/02-agents/Agents/README.md similarity index 100% rename from dotnet/samples/GettingStarted/Agents/README.md rename to dotnet/samples/02-agents/Agents/README.md diff --git a/dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/DeclarativeChatClientAgents.csproj b/dotnet/samples/02-agents/DeclarativeAgents/ChatClient/DeclarativeChatClientAgents.csproj similarity index 100% rename from dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/DeclarativeChatClientAgents.csproj rename to dotnet/samples/02-agents/DeclarativeAgents/ChatClient/DeclarativeChatClientAgents.csproj diff --git a/dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/Program.cs b/dotnet/samples/02-agents/DeclarativeAgents/ChatClient/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/Program.cs rename to dotnet/samples/02-agents/DeclarativeAgents/ChatClient/Program.cs diff --git a/dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/Properties/launchSettings.json b/dotnet/samples/02-agents/DeclarativeAgents/ChatClient/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/DeclarativeAgents/ChatClient/Properties/launchSettings.json rename to dotnet/samples/02-agents/DeclarativeAgents/ChatClient/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/DevUI_Step01_BasicUsage.csproj b/dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/DevUI_Step01_BasicUsage.csproj similarity index 100% rename from dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/DevUI_Step01_BasicUsage.csproj rename to dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/DevUI_Step01_BasicUsage.csproj diff --git a/dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/Program.cs b/dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/Program.cs rename to dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/Program.cs diff --git a/dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json b/dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json similarity index 100% rename from dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json rename to dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/Properties/launchSettings.json diff --git a/dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/README.md b/dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/README.md similarity index 100% rename from dotnet/samples/GettingStarted/DevUI/DevUI_Step01_BasicUsage/README.md rename to dotnet/samples/02-agents/DevUI/DevUI_Step01_BasicUsage/README.md diff --git a/dotnet/samples/GettingStarted/DevUI/README.md b/dotnet/samples/02-agents/DevUI/README.md similarity index 100% rename from dotnet/samples/GettingStarted/DevUI/README.md rename to dotnet/samples/02-agents/DevUI/README.md diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/FoundryAgents_Evaluations_Step01_RedTeaming.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/FoundryAgents_Evaluations_Step01_RedTeaming.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/FoundryAgents_Evaluations_Step01_RedTeaming.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/FoundryAgents_Evaluations_Step01_RedTeaming.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md index f46c7af8ef..5c91f33992 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md @@ -41,7 +41,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming +cd dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming dotnet run ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/FoundryAgents_Evaluations_Step02_SelfReflection.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/FoundryAgents_Evaluations_Step02_SelfReflection.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/FoundryAgents_Evaluations_Step02_SelfReflection.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/FoundryAgents_Evaluations_Step02_SelfReflection.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md index 8dcb22bd3c..a5caade60b 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md @@ -49,7 +49,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Mod Navigate to the sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection +cd dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection dotnet run ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/FoundryAgents_Step01.1_Basics.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/FoundryAgents_Step01.1_Basics.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/FoundryAgents_Step01.1_Basics.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/FoundryAgents_Step01.1_Basics.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md index ce56e05755..1423227772 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md @@ -28,7 +28,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step01.1_Basics ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/FoundryAgents_Step01.2_Running.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/FoundryAgents_Step01.2_Running.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/FoundryAgents_Step01.2_Running.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/FoundryAgents_Step01.2_Running.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md index 53254e1975..0e55500ace 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step01.2_Running/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md @@ -31,7 +31,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step01.2_Running ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/FoundryAgents_Step02_MultiturnConversation.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/FoundryAgents_Step02_MultiturnConversation.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/FoundryAgents_Step02_MultiturnConversation.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/FoundryAgents_Step02_MultiturnConversation.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md index 6611287bd9..deede817bc 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md @@ -33,7 +33,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step02_MultiturnConversation ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/FoundryAgents_Step03_UsingFunctionTools.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/FoundryAgents_Step03_UsingFunctionTools.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/FoundryAgents_Step03_UsingFunctionTools.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/FoundryAgents_Step03_UsingFunctionTools.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md index 35bef8a999..b428b05ca1 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step03.1_UsingFunctionTools ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/FoundryAgents_Step04_UsingFunctionToolsWithApprovals.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/FoundryAgents_Step04_UsingFunctionToolsWithApprovals.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/FoundryAgents_Step04_UsingFunctionToolsWithApprovals.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/FoundryAgents_Step04_UsingFunctionToolsWithApprovals.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md index 5a797acd0f..eedf3dd854 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step04_UsingFunctionToolsWithApprovals ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/FoundryAgents_Step05_StructuredOutput.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/FoundryAgents_Step05_StructuredOutput.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/FoundryAgents_Step05_StructuredOutput.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/FoundryAgents_Step05_StructuredOutput.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md index 956a2542e9..ac29f46645 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step05_StructuredOutput ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/FoundryAgents_Step06_PersistedConversations.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/FoundryAgents_Step06_PersistedConversations.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/FoundryAgents_Step06_PersistedConversations.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/FoundryAgents_Step06_PersistedConversations.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md index 29c2233748..f0dd76eb53 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step06_PersistedConversations ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/FoundryAgents_Step07_Observability.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/FoundryAgents_Step07_Observability.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/FoundryAgents_Step07_Observability.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/FoundryAgents_Step07_Observability.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md index 30f7014dff..1d09c14e9e 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step07_Observability/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md @@ -35,7 +35,7 @@ $env:APPLICATIONINSIGHTS_CONNECTION_STRING="your-connection-string" # Optional, Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step07_Observability ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/FoundryAgents_Step08_DependencyInjection.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/FoundryAgents_Step08_DependencyInjection.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/FoundryAgents_Step08_DependencyInjection.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/FoundryAgents_Step08_DependencyInjection.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md index 580821bb0a..6cc0563191 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md @@ -33,7 +33,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step08_DependencyInjection ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/FoundryAgents_Step09_UsingMcpClientAsTools.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/FoundryAgents_Step09_UsingMcpClientAsTools.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/FoundryAgents_Step09_UsingMcpClientAsTools.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/FoundryAgents_Step09_UsingMcpClientAsTools.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md index b2d923fc2f..67c4a7f4d1 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md @@ -33,7 +33,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step09_UsingMcpClientAsTools ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/Assets/walkway.jpg b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Assets/walkway.jpg similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/Assets/walkway.jpg rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Assets/walkway.jpg diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/FoundryAgents_Step10_UsingImages.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/FoundryAgents_Step10_UsingImages.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/FoundryAgents_Step10_UsingImages.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/FoundryAgents_Step10_UsingImages.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md index d90f5cf208..3b1039b84a 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md @@ -38,7 +38,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o" # Replace with your model de Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step10_UsingImages ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/FoundryAgents_Step11_AsFunctionTool.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/FoundryAgents_Step11_AsFunctionTool.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/FoundryAgents_Step11_AsFunctionTool.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/FoundryAgents_Step11_AsFunctionTool.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md index 4b64b7e712..4e5a213bc6 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step11_AsFunctionTool ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/FoundryAgents_Step12_Middleware.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/FoundryAgents_Step12_Middleware.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/FoundryAgents_Step12_Middleware.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/FoundryAgents_Step12_Middleware.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md index eaaafe7ab1..ff5e82b6bc 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step12_Middleware/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md @@ -39,7 +39,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step12_Middleware ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/FoundryAgents_Step13_Plugins.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/FoundryAgents_Step13_Plugins.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/FoundryAgents_Step13_Plugins.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/FoundryAgents_Step13_Plugins.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md index 0aeccf5789..56678b47a6 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step13_Plugins/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step13_Plugins ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/FoundryAgents_Step14_CodeInterpreter.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/FoundryAgents_Step14_CodeInterpreter.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/FoundryAgents_Step14_CodeInterpreter.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/FoundryAgents_Step14_CodeInterpreter.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md index a3dd4d50b9..bc332cd647 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md @@ -33,7 +33,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step14_CodeInterpreter ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_browser_search.png b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_browser_search.png similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_browser_search.png rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_browser_search.png diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_results.png b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_results.png similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_results.png rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_results.png diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_typed.png b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_typed.png similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_typed.png rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Assets/cua_search_typed.png diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/ComputerUseUtil.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/ComputerUseUtil.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/ComputerUseUtil.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/ComputerUseUtil.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/FoundryAgents_Step15_ComputerUse.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/FoundryAgents_Step15_ComputerUse.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/FoundryAgents_Step15_ComputerUse.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/FoundryAgents_Step15_ComputerUse.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md index a44227f6c7..5cb34a1ed6 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md @@ -44,7 +44,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="computer-use-preview" # Optional, d Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step15_ComputerUse ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md index e8f431ba44..8ef4111239 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md @@ -33,7 +33,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step18_FileSearch ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md similarity index 95% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md index e7a2f2cb52..f866eefbdb 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md @@ -1,4 +1,4 @@ -# Using OpenAPI Tools with AI Agents +# Using OpenAPI Tools with AI Agents This sample demonstrates how to use OpenAPI tools with AI agents. OpenAPI tools allow agents to call external REST APIs defined by OpenAPI specifications. @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step19_OpenAPITools ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md similarity index 97% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md index e8883b7e95..6f426d89b6 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md @@ -32,7 +32,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step27_LocalMCP ``` diff --git a/dotnet/samples/GettingStarted/FoundryAgents/README.md b/dotnet/samples/02-agents/FoundryAgents/README.md similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/README.md rename to dotnet/samples/02-agents/FoundryAgents/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/Agent_MCP_Server.csproj b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/Agent_MCP_Server.csproj similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/Agent_MCP_Server.csproj rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/Agent_MCP_Server.csproj diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/Program.cs b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/Program.cs rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/Program.cs diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/README.md b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/README.md similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server/README.md rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/Agent_MCP_Server_Auth.csproj b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/Agent_MCP_Server_Auth.csproj similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/Agent_MCP_Server_Auth.csproj rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/Agent_MCP_Server_Auth.csproj diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/Program.cs b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/Program.cs rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/Program.cs diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/README.md b/dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/README.md similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/Agent_MCP_Server_Auth/README.md rename to dotnet/samples/02-agents/ModelContextProtocol/Agent_MCP_Server_Auth/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/FoundryAgent_Hosted_MCP.csproj b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/FoundryAgent_Hosted_MCP.csproj similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/FoundryAgent_Hosted_MCP.csproj rename to dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/FoundryAgent_Hosted_MCP.csproj diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs rename to dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md rename to dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/README.md b/dotnet/samples/02-agents/ModelContextProtocol/README.md similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/README.md rename to dotnet/samples/02-agents/ModelContextProtocol/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/Program.cs b/dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/Program.cs rename to dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/Program.cs diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/README.md b/dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/README.md similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/README.md rename to dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/README.md diff --git a/dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/ResponseAgent_Hosted_MCP.csproj b/dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/ResponseAgent_Hosted_MCP.csproj similarity index 100% rename from dotnet/samples/GettingStarted/ModelContextProtocol/ResponseAgent_Hosted_MCP/ResponseAgent_Hosted_MCP.csproj rename to dotnet/samples/02-agents/ModelContextProtocol/ResponseAgent_Hosted_MCP/ResponseAgent_Hosted_MCP.csproj diff --git a/dotnet/samples/GettingStarted/README.md b/dotnet/samples/02-agents/README.md similarity index 100% rename from dotnet/samples/GettingStarted/README.md rename to dotnet/samples/02-agents/README.md diff --git a/dotnet/samples/04-hosting/A2A/README.md b/dotnet/samples/04-hosting/A2A/README.md index 82cb765203..55539a8322 100644 --- a/dotnet/samples/04-hosting/A2A/README.md +++ b/dotnet/samples/04-hosting/A2A/README.md @@ -3,7 +3,7 @@ These samples demonstrate how to work with Agent-to-Agent (A2A) specific features in the Agent Framework. For other samples that demonstrate how to use AIAgent instances, -see the [Getting Started With Agents](../../GettingStarted/Agents/README.md) samples. +see the [Getting Started With Agents](../../02-agents/Agents/README.md) samples. ## Prerequisites diff --git a/dotnet/samples/README.md b/dotnet/samples/README.md index e9971ce976..5170f33d2b 100644 --- a/dotnet/samples/README.md +++ b/dotnet/samples/README.md @@ -13,11 +13,11 @@ were local agents. These are supported using various `AIAgent` subclasses. The samples are subdivided into the following categories: -- [Getting Started - Agents](./GettingStarted/Agents/README.md): Basic steps to get started with the agent framework. +- [Getting Started - Agents](./02-agents/Agents/README.md): Basic steps to get started with the agent framework. These samples demonstrate the fundamental concepts and functionalities of the agent framework when using the `AIAgent` and can be used with any underlying service that provides an `AIAgent` implementation. -- [Getting Started - Agent Providers](./GettingStarted/AgentProviders/README.md): Shows how to create an AIAgent instance for a selection of providers. -- [Getting Started - Agent Telemetry](./GettingStarted/AgentOpenTelemetry/README.md): Demo which showcases the integration of OpenTelemetry with the Microsoft Agent Framework using Azure OpenAI and .NET Aspire Dashboard for telemetry visualization. +- [Getting Started - Agent Providers](./02-agents/AgentProviders/README.md): Shows how to create an AIAgent instance for a selection of providers. +- [Getting Started - Agent Telemetry](./02-agents/AgentOpenTelemetry/README.md): Demo which showcases the integration of OpenTelemetry with the Microsoft Agent Framework using Azure OpenAI and .NET Aspire Dashboard for telemetry visualization. - [Semantic Kernel to Agent Framework Migration](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/AgentFrameworkMigration): For instructions and samples describing how to migrate from Semantic Kernel to Microsoft Agent Framework - [Durable Agents - Azure Functions](./04-hosting/DurableAgents/AzureFunctions/README.md): Samples for using the Microsoft Agent Framework with Azure Functions via the durable task extension. - [Durable Agents - Console Apps](./04-hosting/DurableAgents/ConsoleApps/README.md): Samples demonstrating durable agents in console applications. From 2f606d2f6ec39897c704a321bac2b8dbd37a6a54 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 15:06:11 -0800 Subject: [PATCH 12/36] .NET: Fix broken relative link in GroupChatToolApproval README (#4108) * Initial plan * Fix broken link in GroupChatToolApproval README Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --- .../samples/03-workflows/Agents/GroupChatToolApproval/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md index eee52459da..ce97694972 100644 --- a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md +++ b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md @@ -65,6 +65,6 @@ The sample will show: ## Related Samples -- [Agent Function Tools with Approvals](../../../GettingStarted/Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern +- [Agent Function Tools with Approvals](../../../02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern - [Agent Workflow Patterns](../../_StartHere/03_AgentWorkflowPatterns) - Group chat without approvals - [Human-in-the-Loop Basic](../../HumanInTheLoop/HumanInTheLoopBasic) - Workflow-level human interaction From af1ad6015551bedbe9554b72de7daec6e25a133f Mon Sep 17 00:00:00 2001 From: Chris <66376200+crickman@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:26:35 -0800 Subject: [PATCH 13/36] Update labeler configuration for workflow samples --- .github/labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 5304c9b8ce..fb55fcf926 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -23,7 +23,7 @@ workflows: - any-glob-to-any-file: - dotnet/src/Microsoft.Agents.AI.Workflows/** - dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/** - - dotnet/samples/02-agents/Workflow/** + - dotnet/samples/03-workflows/** - python/packages/main/agent_framework/_workflow/** - python/samples/getting_started/workflow/** From 76cc94cf8fc91098128f8bcffdc431f60cd9efea Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:31:00 -0800 Subject: [PATCH 14/36] .NET - Reorder Agents samples to start from Step01 instead of Step04 (#4110) --- README.md | 2 +- dotnet/agent-framework-dotnet.slnx | 34 +++++++++---------- ...01_UsingFunctionToolsWithApprovals.csproj} | 0 .../Program.cs | 0 .../AIAgentBuilderExtensions.cs | 0 .../Agent_Step02_StructuredOutput.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../StructuredOutputAgent.cs | 0 .../StructuredOutputAgentOptions.cs | 0 .../StructuredOutputAgentResponse.cs | 0 ...gent_Step03_PersistedConversations.csproj} | 0 .../Program.cs | 0 ..._Step04_3rdPartyChatHistoryStorage.csproj} | 0 .../Program.cs | 0 .../Agent_Step05_Observability.csproj} | 0 .../Program.cs | 0 .../Agent_Step06_DependencyInjection.csproj} | 0 .../Program.cs | 0 .../Agent_Step07_AsMcpTool.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../Agent_Step08_UsingImages.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../Agent_Step09_AsFunctionTool.csproj} | 0 .../Program.cs | 0 ...ndResponsesWithToolsAndPersistence.csproj} | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_Step11_Middleware.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../Agent_Step12_Plugins.csproj} | 2 +- .../Program.cs | 0 .../Agent_Step13_ChatReduction.csproj} | 0 .../Program.cs | 0 .../Agent_Step14_BackgroundResponses.csproj} | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_Step15_DeepResearch.csproj} | 0 .../Program.cs | 0 .../README.md | 0 .../Agent_Step16_Declarative.csproj} | 0 .../Program.cs | 0 .../Agent_Step17_AdditionalAIContext.csproj} | 0 .../Program.cs | 0 dotnet/samples/02-agents/Agents/README.md | 34 +++++++++---------- .../Agents/GroupChatToolApproval/README.md | 2 +- 49 files changed, 41 insertions(+), 41 deletions(-) rename dotnet/samples/02-agents/Agents/{Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj => Agent_Step01_UsingFunctionToolsWithApprovals/Agent_Step01_UsingFunctionToolsWithApprovals.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step04_UsingFunctionToolsWithApprovals => Agent_Step01_UsingFunctionToolsWithApprovals}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/AIAgentBuilderExtensions.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj => Agent_Step02_StructuredOutput/Agent_Step02_StructuredOutput.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/README.md (98%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/StructuredOutputAgent.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/StructuredOutputAgentOptions.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step05_StructuredOutput => Agent_Step02_StructuredOutput}/StructuredOutputAgentResponse.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj => Agent_Step03_PersistedConversations/Agent_Step03_PersistedConversations.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step06_PersistedConversations => Agent_Step03_PersistedConversations}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj => Agent_Step04_3rdPartyChatHistoryStorage/Agent_Step04_3rdPartyChatHistoryStorage.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step07_3rdPartyChatHistoryStorage => Agent_Step04_3rdPartyChatHistoryStorage}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step08_Observability/Agent_Step08_Observability.csproj => Agent_Step05_Observability/Agent_Step05_Observability.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step08_Observability => Agent_Step05_Observability}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj => Agent_Step06_DependencyInjection/Agent_Step06_DependencyInjection.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step09_DependencyInjection => Agent_Step06_DependencyInjection}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj => Agent_Step07_AsMcpTool/Agent_Step07_AsMcpTool.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step10_AsMcpTool => Agent_Step07_AsMcpTool}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step10_AsMcpTool => Agent_Step07_AsMcpTool}/README.md (96%) rename dotnet/samples/02-agents/Agents/{Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj => Agent_Step08_UsingImages/Agent_Step08_UsingImages.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step11_UsingImages => Agent_Step08_UsingImages}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step11_UsingImages => Agent_Step08_UsingImages}/README.md (98%) rename dotnet/samples/02-agents/Agents/{Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj => Agent_Step09_AsFunctionTool/Agent_Step09_AsFunctionTool.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step12_AsFunctionTool => Agent_Step09_AsFunctionTool}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj => Agent_Step10_BackgroundResponsesWithToolsAndPersistence/Agent_Step10_BackgroundResponsesWithToolsAndPersistence.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step13_BackgroundResponsesWithToolsAndPersistence => Agent_Step10_BackgroundResponsesWithToolsAndPersistence}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step13_BackgroundResponsesWithToolsAndPersistence => Agent_Step10_BackgroundResponsesWithToolsAndPersistence}/README.md (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step14_Middleware/Agent_Step14_Middleware.csproj => Agent_Step11_Middleware/Agent_Step11_Middleware.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step14_Middleware => Agent_Step11_Middleware}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step14_Middleware => Agent_Step11_Middleware}/README.md (95%) rename dotnet/samples/02-agents/Agents/{Agent_Step15_Plugins/Agent_Step15_Plugins.csproj => Agent_Step12_Plugins/Agent_Step12_Plugins.csproj} (92%) rename dotnet/samples/02-agents/Agents/{Agent_Step15_Plugins => Agent_Step12_Plugins}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj => Agent_Step13_ChatReduction/Agent_Step13_ChatReduction.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step16_ChatReduction => Agent_Step13_ChatReduction}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj => Agent_Step14_BackgroundResponses/Agent_Step14_BackgroundResponses.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step17_BackgroundResponses => Agent_Step14_BackgroundResponses}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step17_BackgroundResponses => Agent_Step14_BackgroundResponses}/README.md (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj => Agent_Step15_DeepResearch/Agent_Step15_DeepResearch.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step18_DeepResearch => Agent_Step15_DeepResearch}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step18_DeepResearch => Agent_Step15_DeepResearch}/README.md (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step19_Declarative/Agent_Step19_Declarative.csproj => Agent_Step16_Declarative/Agent_Step16_Declarative.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step19_Declarative => Agent_Step16_Declarative}/Program.cs (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj => Agent_Step17_AdditionalAIContext/Agent_Step17_AdditionalAIContext.csproj} (100%) rename dotnet/samples/02-agents/Agents/{Agent_Step20_AdditionalAIContext => Agent_Step17_AdditionalAIContext}/Program.cs (100%) diff --git a/README.md b/README.md index 93787d8eb5..1ea27077fa 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Still have questions? Join our [weekly office hours](./COMMUNITY.md#public-commu - **Multiple Agent Provider Support**: Support for various LLM providers with more being added continuously - [Python examples](./python/samples/02-agents/providers/) | [.NET examples](./dotnet/samples/02-agents/AgentProviders/) - **Middleware**: Flexible middleware system for request/response processing, exception handling, and custom pipelines - - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/) + - [Python middleware](./python/samples/02-agents/middleware/) | [.NET middleware](./dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/) ### 💬 **We want your feedback!** diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index bcb5ad0917..8064cd4460 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -38,23 +38,23 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj b/dotnet/samples/02-agents/Agents/Agent_Step01_UsingFunctionToolsWithApprovals/Agent_Step01_UsingFunctionToolsWithApprovals.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Agent_Step04_UsingFunctionToolsWithApprovals.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step01_UsingFunctionToolsWithApprovals/Agent_Step01_UsingFunctionToolsWithApprovals.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step01_UsingFunctionToolsWithApprovals/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step01_UsingFunctionToolsWithApprovals/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/AIAgentBuilderExtensions.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/AIAgentBuilderExtensions.cs rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/AIAgentBuilderExtensions.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/Agent_Step02_StructuredOutput.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Agent_Step05_StructuredOutput.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/Agent_Step02_StructuredOutput.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/README.md similarity index 98% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/README.md index 2eee8a6765..5652fe9b0a 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/README.md @@ -36,7 +36,7 @@ $env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o- Navigate to the sample directory and run: ```powershell -cd dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput +cd dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput dotnet run ``` diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgent.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgent.cs rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgent.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgentOptions.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentOptions.cs rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgentOptions.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs b/dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgentResponse.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step05_StructuredOutput/StructuredOutputAgentResponse.cs rename to dotnet/samples/02-agents/Agents/Agent_Step02_StructuredOutput/StructuredOutputAgentResponse.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj b/dotnet/samples/02-agents/Agents/Agent_Step03_PersistedConversations/Agent_Step03_PersistedConversations.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Agent_Step06_PersistedConversations.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step03_PersistedConversations/Agent_Step03_PersistedConversations.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step03_PersistedConversations/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step06_PersistedConversations/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step03_PersistedConversations/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj b/dotnet/samples/02-agents/Agents/Agent_Step04_3rdPartyChatHistoryStorage/Agent_Step04_3rdPartyChatHistoryStorage.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Agent_Step07_3rdPartyChatHistoryStorage.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step04_3rdPartyChatHistoryStorage/Agent_Step04_3rdPartyChatHistoryStorage.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step04_3rdPartyChatHistoryStorage/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step07_3rdPartyChatHistoryStorage/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step04_3rdPartyChatHistoryStorage/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj b/dotnet/samples/02-agents/Agents/Agent_Step05_Observability/Agent_Step05_Observability.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Agent_Step08_Observability.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step05_Observability/Agent_Step05_Observability.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step05_Observability/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step08_Observability/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step05_Observability/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj b/dotnet/samples/02-agents/Agents/Agent_Step06_DependencyInjection/Agent_Step06_DependencyInjection.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Agent_Step09_DependencyInjection.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step06_DependencyInjection/Agent_Step06_DependencyInjection.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step06_DependencyInjection/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step09_DependencyInjection/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step06_DependencyInjection/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Agent_Step07_AsMcpTool.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Agent_Step10_AsMcpTool.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Agent_Step07_AsMcpTool.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/README.md b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md similarity index 96% rename from dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md index 56701066d1..518673f04b 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step10_AsMcpTool/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md @@ -10,7 +10,7 @@ Alternatively, use the QuickstartClient sample from this repository: https://git To use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector), follow these steps: -1. Open a terminal in the Agent_Step10_AsMcpTool project directory. +1. Open a terminal in the Agent_Step07_AsMcpTool project directory. 1. Run the `npx @modelcontextprotocol/inspector dotnet run --framework net10.0` command to start the MCP Inspector. Make sure you have [node.js](https://nodejs.org/en/download/) and npm installed. ```bash npx @modelcontextprotocol/inspector dotnet run --framework net10.0 diff --git a/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj b/dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/Agent_Step08_UsingImages.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Agent_Step11_UsingImages.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/Agent_Step08_UsingImages.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/README.md b/dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/README.md similarity index 98% rename from dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/README.md index 49d1bff4a2..e70c09f513 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step11_UsingImages/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step08_UsingImages/README.md @@ -37,7 +37,7 @@ $env:AZURE_OPENAI_DEPLOYMENT_NAME="gpt-4o" # Replace with your model deployment Navigate to the sample directory and run: ```powershell -cd Agent_Step11_UsingImages +cd Agent_Step08_UsingImages dotnet run ``` diff --git a/dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj b/dotnet/samples/02-agents/Agents/Agent_Step09_AsFunctionTool/Agent_Step09_AsFunctionTool.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Agent_Step12_AsFunctionTool.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step09_AsFunctionTool/Agent_Step09_AsFunctionTool.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step09_AsFunctionTool/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step12_AsFunctionTool/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step09_AsFunctionTool/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj b/dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/Agent_Step10_BackgroundResponsesWithToolsAndPersistence.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Agent_Step13_BackgroundResponsesWithToolsAndPersistence.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/Agent_Step10_BackgroundResponsesWithToolsAndPersistence.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md b/dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/README.md similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step13_BackgroundResponsesWithToolsAndPersistence/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step10_BackgroundResponsesWithToolsAndPersistence/README.md diff --git a/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj b/dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/Agent_Step11_Middleware.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Agent_Step14_Middleware.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/Agent_Step11_Middleware.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md b/dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/README.md similarity index 95% rename from dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/README.md index 690ab7aa5e..4bce37fdc5 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step14_Middleware/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step11_Middleware/README.md @@ -36,7 +36,7 @@ Attempting to use function middleware on agents that do not wrap a ChatClientAge Use PowerShell: ```powershell -cd dotnet/samples/02-agents/Agents/Agent_Step14_Middleware +cd dotnet/samples/02-agents/Agents/Agent_Step11_Middleware dotnet run ``` diff --git a/dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj b/dotnet/samples/02-agents/Agents/Agent_Step12_Plugins/Agent_Step12_Plugins.csproj similarity index 92% rename from dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step12_Plugins/Agent_Step12_Plugins.csproj index ae2f9ac194..122c2e77a4 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Agent_Step15_Plugins.csproj +++ b/dotnet/samples/02-agents/Agents/Agent_Step12_Plugins/Agent_Step12_Plugins.csproj @@ -7,7 +7,7 @@ enable enable $(NoWarn);CA1812 - Agent_Step15_Plugins + Agent_Step12_Plugins diff --git a/dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step12_Plugins/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step15_Plugins/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step12_Plugins/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj b/dotnet/samples/02-agents/Agents/Agent_Step13_ChatReduction/Agent_Step13_ChatReduction.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Agent_Step16_ChatReduction.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step13_ChatReduction/Agent_Step13_ChatReduction.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step13_ChatReduction/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step16_ChatReduction/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step13_ChatReduction/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj b/dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/Agent_Step14_BackgroundResponses.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Agent_Step17_BackgroundResponses.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/Agent_Step14_BackgroundResponses.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/README.md b/dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/README.md similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step17_BackgroundResponses/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step14_BackgroundResponses/README.md diff --git a/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Agent_Step15_DeepResearch.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Agent_Step18_DeepResearch.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Agent_Step15_DeepResearch.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/README.md b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step18_DeepResearch/README.md rename to dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md diff --git a/dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj b/dotnet/samples/02-agents/Agents/Agent_Step16_Declarative/Agent_Step16_Declarative.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Agent_Step19_Declarative.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step16_Declarative/Agent_Step16_Declarative.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step16_Declarative/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step19_Declarative/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step16_Declarative/Program.cs diff --git a/dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj b/dotnet/samples/02-agents/Agents/Agent_Step17_AdditionalAIContext/Agent_Step17_AdditionalAIContext.csproj similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Agent_Step20_AdditionalAIContext.csproj rename to dotnet/samples/02-agents/Agents/Agent_Step17_AdditionalAIContext/Agent_Step17_AdditionalAIContext.csproj diff --git a/dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step17_AdditionalAIContext/Program.cs similarity index 100% rename from dotnet/samples/02-agents/Agents/Agent_Step20_AdditionalAIContext/Program.cs rename to dotnet/samples/02-agents/Agents/Agent_Step17_AdditionalAIContext/Program.cs diff --git a/dotnet/samples/02-agents/Agents/README.md b/dotnet/samples/02-agents/Agents/README.md index e9079210d6..cdc65c59ec 100644 --- a/dotnet/samples/02-agents/Agents/README.md +++ b/dotnet/samples/02-agents/Agents/README.md @@ -27,23 +27,23 @@ Before you begin, ensure you have the following prerequisites: |Sample|Description| |---|---| |[Using OpenAPI function tools with a simple agent](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/AgentFrameworkMigration/AzureOpenAI/Step04_ToolCall_WithOpenAPI)|This sample demonstrates how to create function tools from an OpenAPI spec and use them with a simple agent (note that this sample is in the Semantic Kernel repository)| -|[Using function tools with approvals](./Agent_Step04_UsingFunctionToolsWithApprovals/)|This sample demonstrates how to use function tools where approvals require human in the loop approvals before execution| -|[Structured output with a simple agent](./Agent_Step05_StructuredOutput/)|This sample demonstrates how to use structured output with a simple agent| -|[Persisted conversations with a simple agent](./Agent_Step06_PersistedConversations/)|This sample demonstrates how to persist conversations and reload them later. This is useful for cases where an agent is hosted in a stateless service| -|[3rd party chat history storage with a simple agent](./Agent_Step07_3rdPartyChatHistoryStorage/)|This sample demonstrates how to store chat history in a 3rd party storage solution| -|[Observability with a simple agent](./Agent_Step08_Observability/)|This sample demonstrates how to add telemetry to a simple agent| -|[Dependency injection with a simple agent](./Agent_Step09_DependencyInjection/)|This sample demonstrates how to add and resolve an agent with a dependency injection container| -|[Exposing a simple agent as MCP tool](./Agent_Step10_AsMcpTool/)|This sample demonstrates how to expose an agent as an MCP tool| -|[Using images with a simple agent](./Agent_Step11_UsingImages/)|This sample demonstrates how to use image multi-modality with an AI agent| -|[Exposing a simple agent as a function tool](./Agent_Step12_AsFunctionTool/)|This sample demonstrates how to expose an agent as a function tool| -|[Background responses with tools and persistence](./Agent_Step13_BackgroundResponsesWithToolsAndPersistence/)|This sample demonstrates advanced background response scenarios including function calling during background operations and state persistence| -|[Using middleware with an agent](./Agent_Step14_Middleware/)|This sample demonstrates how to use middleware with an agent| -|[Using plugins with an agent](./Agent_Step15_Plugins/)|This sample demonstrates how to use plugins with an agent| -|[Reducing chat history size](./Agent_Step16_ChatReduction/)|This sample demonstrates how to reduce the chat history to constrain its size, where chat history is maintained locally| -|[Background responses](./Agent_Step17_BackgroundResponses/)|This sample demonstrates how to use background responses for long-running operations with polling and resumption support| -|[Deep research with an agent](./Agent_Step18_DeepResearch/)|This sample demonstrates how to use the Deep Research Tool to perform comprehensive research on complex topics| -|[Declarative agent](./Agent_Step19_Declarative/)|This sample demonstrates how to declaratively define an agent.| -|[Providing additional AI Context to an agent using multiple AIContextProviders](./Agent_Step20_AdditionalAIContext/)|This sample demonstrates how to inject additional AI context into a ChatClientAgent using multiple custom AIContextProvider components that are attached to the agent.| +|[Using function tools with approvals](./Agent_Step01_UsingFunctionToolsWithApprovals/)|This sample demonstrates how to use function tools where approvals require human in the loop approvals before execution| +|[Structured output with a simple agent](./Agent_Step02_StructuredOutput/)|This sample demonstrates how to use structured output with a simple agent| +|[Persisted conversations with a simple agent](./Agent_Step03_PersistedConversations/)|This sample demonstrates how to persist conversations and reload them later. This is useful for cases where an agent is hosted in a stateless service| +|[3rd party chat history storage with a simple agent](./Agent_Step04_3rdPartyChatHistoryStorage/)|This sample demonstrates how to store chat history in a 3rd party storage solution| +|[Observability with a simple agent](./Agent_Step05_Observability/)|This sample demonstrates how to add telemetry to a simple agent| +|[Dependency injection with a simple agent](./Agent_Step06_DependencyInjection/)|This sample demonstrates how to add and resolve an agent with a dependency injection container| +|[Exposing a simple agent as MCP tool](./Agent_Step07_AsMcpTool/)|This sample demonstrates how to expose an agent as an MCP tool| +|[Using images with a simple agent](./Agent_Step08_UsingImages/)|This sample demonstrates how to use image multi-modality with an AI agent| +|[Exposing a simple agent as a function tool](./Agent_Step09_AsFunctionTool/)|This sample demonstrates how to expose an agent as a function tool| +|[Background responses with tools and persistence](./Agent_Step10_BackgroundResponsesWithToolsAndPersistence/)|This sample demonstrates advanced background response scenarios including function calling during background operations and state persistence| +|[Using middleware with an agent](./Agent_Step11_Middleware/)|This sample demonstrates how to use middleware with an agent| +|[Using plugins with an agent](./Agent_Step12_Plugins/)|This sample demonstrates how to use plugins with an agent| +|[Reducing chat history size](./Agent_Step13_ChatReduction/)|This sample demonstrates how to reduce the chat history to constrain its size, where chat history is maintained locally| +|[Background responses](./Agent_Step14_BackgroundResponses/)|This sample demonstrates how to use background responses for long-running operations with polling and resumption support| +|[Deep research with an agent](./Agent_Step15_DeepResearch/)|This sample demonstrates how to use the Deep Research Tool to perform comprehensive research on complex topics| +|[Declarative agent](./Agent_Step16_Declarative/)|This sample demonstrates how to declaratively define an agent.| +|[Providing additional AI Context to an agent using multiple AIContextProviders](./Agent_Step17_AdditionalAIContext/)|This sample demonstrates how to inject additional AI context into a ChatClientAgent using multiple custom AIContextProvider components that are attached to the agent.| ## Running the samples from the console diff --git a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md index ce97694972..f569b836e9 100644 --- a/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md +++ b/dotnet/samples/03-workflows/Agents/GroupChatToolApproval/README.md @@ -65,6 +65,6 @@ The sample will show: ## Related Samples -- [Agent Function Tools with Approvals](../../../02-agents/Agents/Agent_Step04_UsingFunctionToolsWithApprovals) - Basic function approval pattern +- [Agent Function Tools with Approvals](../../../02-agents/Agents/Agent_Step01_UsingFunctionToolsWithApprovals) - Basic function approval pattern - [Agent Workflow Patterns](../../_StartHere/03_AgentWorkflowPatterns) - Group chat without approvals - [Human-in-the-Loop Basic](../../HumanInTheLoop/HumanInTheLoopBasic) - Workflow-level human interaction From a9c6675ef274440481e93c3dedc9e8d96f2250be Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Sat, 21 Feb 2026 11:32:05 -0800 Subject: [PATCH 15/36] Fix solution --- dotnet/agent-framework-dotnet.slnx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 601c6e88d5..062a439657 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -77,6 +77,7 @@ + @@ -151,6 +152,7 @@ + From 54f9593c6b9fae96bd13a1b76f4c4efda6a31927 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Sat, 21 Feb 2026 11:45:52 -0800 Subject: [PATCH 16/36] Resolve new sample paths --- dotnet/agent-framework-dotnet.slnx | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 062a439657..702086940a 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -78,13 +78,11 @@ + - - - @@ -104,6 +102,7 @@ + @@ -152,13 +151,6 @@ - - - - - - - From a96021abe09fdabbff00b0c59ed340cf984cf938 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Feb 2026 12:39:18 -0800 Subject: [PATCH 17/36] Move new AgentSkills and AgentWithMemory_Step04 samples --- dotnet/agent-framework-dotnet.slnx | 9 ++++----- .../Agent_Step01_BasicSkills.csproj | 0 .../AgentSkills/Agent_Step01_BasicSkills/Program.cs | 0 .../AgentSkills/Agent_Step01_BasicSkills/README.md | 0 .../skills/expense-report/SKILL.md | 0 .../expense-report/assets/expense-report-template.md | 0 .../skills/expense-report/references/POLICY_FAQ.md | 0 .../{GettingStarted => 02-agents}/AgentSkills/README.md | 0 .../AgentWithMemory_Step04_MemoryUsingFoundry.csproj | 0 .../AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs | 2 +- .../AgentWithMemory_Step04_MemoryUsingFoundry/README.md | 0 11 files changed, 5 insertions(+), 6 deletions(-) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/Agent_Step01_BasicSkills.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/SKILL.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/assets/expense-report-template.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/references/POLICY_FAQ.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentSkills/README.md (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/AgentWithMemory_Step04_MemoryUsingFoundry.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs (99%) rename dotnet/samples/{GettingStarted => 02-agents}/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md (100%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 702086940a..dbd542ee1b 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -78,10 +78,9 @@ - - - - + + + @@ -102,7 +101,7 @@ - + diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/Agent_Step01_BasicSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/Agent_Step01_BasicSkills.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/Agent_Step01_BasicSkills.csproj rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/Agent_Step01_BasicSkills.csproj diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/Program.cs b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/Program.cs rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/Program.cs diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/README.md b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/README.md rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/README.md diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/SKILL.md b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/SKILL.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/SKILL.md rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/SKILL.md diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/assets/expense-report-template.md b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/assets/expense-report-template.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/assets/expense-report-template.md rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/assets/expense-report-template.md diff --git a/dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/references/POLICY_FAQ.md b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/references/POLICY_FAQ.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/references/POLICY_FAQ.md rename to dotnet/samples/02-agents/AgentSkills/Agent_Step01_BasicSkills/skills/expense-report/references/POLICY_FAQ.md diff --git a/dotnet/samples/GettingStarted/AgentSkills/README.md b/dotnet/samples/02-agents/AgentSkills/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentSkills/README.md rename to dotnet/samples/02-agents/AgentSkills/README.md diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/AgentWithMemory_Step04_MemoryUsingFoundry.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/AgentWithMemory_Step04_MemoryUsingFoundry.csproj similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/AgentWithMemory_Step04_MemoryUsingFoundry.csproj rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/AgentWithMemory_Step04_MemoryUsingFoundry.csproj diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs similarity index 99% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs index b3533e6d1d..3c805f2399 100644 --- a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs @@ -15,7 +15,7 @@ string foundryEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set."); string memoryStoreName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_MEMORY_STORE_NAME") ?? "memory-store-sample"; -string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_MODEL") ?? "gpt-4.1-mini"; +string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_MODEL") ?? "gpt-4o-mini"; string embeddingModelName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_EMBEDDING_MODEL") ?? "text-embedding-ada-002"; // Create an AIProjectClient for Foundry with Azure Identity authentication. diff --git a/dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md similarity index 100% rename from dotnet/samples/GettingStarted/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md rename to dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md From 06fb0f7140f80541bca01dcefa0644c81d5e26df Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Sat, 21 Feb 2026 12:45:32 -0800 Subject: [PATCH 18/36] Fix link --- dotnet/samples/02-agents/AgentWithMemory/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/dotnet/samples/02-agents/AgentWithMemory/README.md b/dotnet/samples/02-agents/AgentWithMemory/README.md index 8bbb3f4f6f..82e50e10b3 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/README.md @@ -7,5 +7,4 @@ These samples show how to create an agent with the Agent Framework that uses Mem |[Chat History memory](./AgentWithMemory_Step01_ChatHistoryMemory/)|This sample demonstrates how to enable an agent to remember messages from previous conversations.| |[Memory with MemoryStore](./AgentWithMemory_Step02_MemoryUsingMem0/)|This sample demonstrates how to create and run an agent that uses the Mem0 service to extract and retrieve individual memories.| |[Custom Memory Implementation](../../01-get-started/04_memory/)|This sample demonstrates how to create a custom memory component and attach it to an agent.| -|[Custom Memory Implementation](./AgentWithMemory_Step03_CustomMemory/)|This sample demonstrates how to create a custom memory component and attach it to an agent.| |[Memory with Azure AI Foundry](./AgentWithMemory_Step04_MemoryUsingFoundry/)|This sample demonstrates how to create and run an agent that uses Azure AI Foundry's managed memory service to extract and retrieve individual memories.| From ae287982e99b257a56ef11362872f5d8a5f54ea8 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Sun, 22 Feb 2026 12:36:55 -0800 Subject: [PATCH 19/36] Fix readme path --- .../DurableAgents/ConsoleApps/01_SingleAgent/README.md | 2 +- .../ConsoleApps/02_AgentOrchestration_Chaining/README.md | 2 +- .../ConsoleApps/03_AgentOrchestration_Concurrency/README.md | 2 +- .../ConsoleApps/04_AgentOrchestration_Conditionals/README.md | 2 +- .../ConsoleApps/05_AgentOrchestration_HITL/README.md | 2 +- .../DurableAgents/ConsoleApps/06_LongRunningTools/README.md | 2 +- .../DurableAgents/ConsoleApps/07_ReliableStreaming/README.md | 2 +- dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md index 7c921b0d87..927cd80e0a 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/README.md @@ -17,7 +17,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/01_SingleAgent +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md index 504f036dae..83a69b37a4 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/README.md @@ -18,7 +18,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md index 2ac1a504c8..da75416bea 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/README.md @@ -18,7 +18,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md index 646e5eda4e..c10b33145a 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/README.md @@ -18,7 +18,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md index 1386dfbcb1..ec0fe9911e 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/README.md @@ -18,7 +18,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md index b0dd69b129..1c87ab50ed 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/README.md @@ -19,7 +19,7 @@ See the [README.md](../README.md) file in the parent directory for more informat With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/06_LongRunningTools +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md index c1956157e8..4b887978d0 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md @@ -32,7 +32,7 @@ docker ps | grep redis With the environment setup, you can run the sample: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/07_ReliableStreaming +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming dotnet run --framework net10.0 ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md index 1bd2b0d224..bc3a09b3a1 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md @@ -93,7 +93,7 @@ export AZURE_OPENAI_DEPLOYMENT="your-deployment-name" Navigate to the sample directory and run the console app: ```bash -cd dotnet/samples/DurableAgents/ConsoleApps/01_SingleAgent +cd dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent dotnet run --framework net10.0 ``` From 72c3727c040d4fdb1466bbf4e475d1fded78b012 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Feb 2026 20:47:34 +0000 Subject: [PATCH 20/36] fix: update stale dotnet/samples/Durable path reference in AGENTS.md Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> --- docs/features/durable-agents/AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/durable-agents/AGENTS.md b/docs/features/durable-agents/AGENTS.md index 53c055a216..db6c06df73 100644 --- a/docs/features/durable-agents/AGENTS.md +++ b/docs/features/durable-agents/AGENTS.md @@ -8,7 +8,7 @@ This directory contains feature documentation for the durable agents integration - .NET implementation: `dotnet/src/Microsoft.Agents.AI.DurableTask/` and `dotnet/src/Microsoft.Agents.AI.Hosting.AzureFunctions/` - Python implementation: `python/packages/durabletask/` and `python/packages/azurefunctions/` (package `agent-framework-azurefunctions`) -- .NET samples: `dotnet/samples/Durable/Agents/` +- .NET samples: `dotnet/samples/04-hosting/DurableAgents/` - Python samples: `python/samples/04-hosting/durabletask/` - Official docs (Microsoft Learn): From 4aa68c0d2b7cf7746c2936f01ed71e8e65f45044 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Mon, 23 Feb 2026 10:24:09 -0800 Subject: [PATCH 21/36] Moved new sample --- dotnet/agent-framework-dotnet.slnx | 2 +- .../FoundryAgents_Step26_MemorySearch.csproj | 0 .../FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs | 0 .../FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md (98%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 34993cf01d..242205f477 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -152,7 +152,7 @@ - + diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md index 316509d32c..50a554f6d5 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md @@ -70,7 +70,7 @@ $env:AZURE_AI_MEMORY_STORE_NAME="your-memory-store-name" # Required - name of p Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step26_MemorySearch ``` From aab01ebbe8f937ea3b8838b76e74046d2c3f9a8b Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Mon, 23 Feb 2026 10:30:51 -0800 Subject: [PATCH 22/36] Update solution --- dotnet/agent-framework-dotnet.slnx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 242205f477..b435eca0cb 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -140,6 +140,8 @@ + + @@ -151,9 +153,6 @@ - - - From 662ffdc52ef0ae9eee6d17a938755419f948ec93 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Mon, 23 Feb 2026 10:41:18 -0800 Subject: [PATCH 23/36] Resolve merge (new sample) --- dotnet/agent-framework-dotnet.slnx | 1 + .../FoundryAgents_Step25_WebSearch.csproj | 0 .../FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs | 0 .../FoundryAgents/FoundryAgents_Step25_WebSearch/README.md | 2 +- 4 files changed, 2 insertions(+), 1 deletion(-) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md (98%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index b435eca0cb..27e12d8ce1 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -140,6 +140,7 @@ + diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md index 95de275e8d..aed939c555 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md @@ -34,7 +34,7 @@ $env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults t Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step25_WebSearch ``` From c56b50e93aa8ecb937a554a1a399f21d1c7625b0 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 08:38:12 -0800 Subject: [PATCH 24/36] Sync to new sample - FoundryAgents_Step21_BingCustomSearch --- dotnet/agent-framework-dotnet.slnx | 1 + .../FoundryAgents_Step21_BingCustomSearch.csproj | 0 .../FoundryAgents_Step21_BingCustomSearch/Program.cs | 0 .../FoundryAgents_Step21_BingCustomSearch/README.md | 2 +- 4 files changed, 2 insertions(+), 1 deletion(-) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs (100%) rename dotnet/samples/{GettingStarted => 02-agents}/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md (98%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 27e12d8ce1..528b3f1be0 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -140,6 +140,7 @@ + diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs diff --git a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md similarity index 98% rename from dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md index 86f12c71bd..dbfb7499b7 100644 --- a/dotnet/samples/GettingStarted/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md @@ -49,7 +49,7 @@ $env:BING_CUSTOM_SEARCH_INSTANCE_NAME="your-configuration-name" Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step21_BingCustomSearch ``` From b01ea01f67fd426b2d77fb3b9cd787992808878e Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 10:12:56 -0800 Subject: [PATCH 25/36] Updated README --- .../Agent_Anthropic_Step01_Running/README.md | 2 +- .../README.md | 2 +- .../README.md | 2 +- .../README.md | 2 +- dotnet/samples/02-agents/Agents/README.md | 2 +- dotnet/samples/02-agents/README.md | 4 +- dotnet/samples/README.md | 39 ++++++++++++++++--- 7 files changed, 41 insertions(+), 12 deletions(-) diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md index 9e7a59a663..0ac9efbda9 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md @@ -29,7 +29,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples/02-agents/AgentWithAnthropic +cd dotnet\samples\02-agents\AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step01_Running ``` diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md index ee753baccb..083b27fc5d 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md @@ -31,7 +31,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples/02-agents/AgentWithAnthropic +cd dotnet\samples\02-agents\AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step02_Reasoning ``` diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md index 1e6921a2f8..98cfa0f69e 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md @@ -31,7 +31,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples/02-agents/AgentWithAnthropic +cd dotnet\samples\02-agents\AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step03_UsingFunctionTools ``` diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md index db9620a0cb..00860032ca 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md @@ -32,7 +32,7 @@ $env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model Navigate to the AgentWithAnthropic sample directory and run: ```powershell -cd dotnet\samples/02-agents/AgentWithAnthropic +cd dotnet\samples\02-agents\AgentWithAnthropic dotnet run --project .\Agent_Anthropic_Step04_UsingSkills ``` diff --git a/dotnet/samples/02-agents/Agents/README.md b/dotnet/samples/02-agents/Agents/README.md index cdc65c59ec..116cbfc06b 100644 --- a/dotnet/samples/02-agents/Agents/README.md +++ b/dotnet/samples/02-agents/Agents/README.md @@ -50,7 +50,7 @@ Before you begin, ensure you have the following prerequisites: To run the samples, navigate to the desired sample directory, e.g. ```powershell -cd Agents_Step01_Running +cd Agent_Step01_UsingFunctionToolsWithApprovals ``` Set the following environment variables: diff --git a/dotnet/samples/02-agents/README.md b/dotnet/samples/02-agents/README.md index ee960a09a4..b901645f88 100644 --- a/dotnet/samples/02-agents/README.md +++ b/dotnet/samples/02-agents/README.md @@ -15,6 +15,8 @@ of the agent framework. |[Agent Open Telemetry](./AgentOpenTelemetry/README.md)|Getting started with OpenTelemetry for agents| |[Agent With OpenAI exchange types](./AgentWithOpenAI/README.md)|Using OpenAI exchange types with agents| |[Agent With Anthropic](./AgentWithAnthropic/README.md)|Getting started with agents using Anthropic Claude| -|[Workflow](../03-workflows/README.md)|Getting started with Workflow| |[Model Context Protocol](./ModelContextProtocol/README.md)|Getting started with Model Context Protocol| |[Agent Skills](./AgentSkills/README.md)|Getting started with Agent Skills| +|[Declarative Agents](./DeclarativeAgents)|Loading and executing AI agents from YAML configuration files| │ +|[AG-UI](./AGUI/README.md)|Getting started with AG-UI (Agent UI Protocol) servers and clients| │ +|[Dev UI](./DevUI/README.md)|Interactive web interface for testing and debugging AI agents during development| \ No newline at end of file diff --git a/dotnet/samples/README.md b/dotnet/samples/README.md index 5170f33d2b..3a2b45a09a 100644 --- a/dotnet/samples/README.md +++ b/dotnet/samples/README.md @@ -9,19 +9,46 @@ All these are supported using the single `ChatClientAgent` class. The Agent Framework also supports creating proxy agents, that allow accessing remote agents as if they were local agents. These are supported using various `AIAgent` subclasses. -## Sample Categories +## Sample Structure -The samples are subdivided into the following categories: +| Folder | Description | +|--------|-------------| +| [`01-get-started/`](./01-get-started/) | Progressive tutorial: hello agent → hosting | +| [`02-agents/`](./02-agents/) | Deep-dive by concept: tools, middleware, providers, orchestrations | +| [`03-workflows/`](./03-workflows/) | Workflow patterns: sequential, concurrent, state, declarative | +| [`04-hosting/`](./04-hosting/) | Deployment: Azure Functions, Durable Tasks, A2A | +| [`05-end-to-end/`](./05-end-to-end/) | Full applications, evaluation, demos | -- [Getting Started - Agents](./02-agents/Agents/README.md): Basic steps to get started with the agent framework. +## Getting Started + +Start with `01-get-started/` and work through the numbered files: + +1. **[01_hello_agent](./01-get-started/01_hello_agent/Program.cs)** — Create and run your first agent +2. **[02_add_tools](./01-get-started/02_add_tools/Program.cs)** — Add function tools +3. **[03_multi_turn](./01-get-started/03_multi_turn/Program.cs)** — Multi-turn conversations with `AgentSession` +4. **[04_memory](./01-get-started/04_memory/Program.cs)** — Agent memory with `AIContextProvider` +5. **[05_first_workflow](./01-get-started/05_first_workflow/Program.cs)** — Build a workflow with executors and edges +6. **[06_host_your_agent](./01-get-started/06_host_your_agent/Program.cs)** — Host your agent via A2A + +## Additional Samples + +Some additional samples of note include: + +- [Agents](./02-agents/Agents/README.md): Basic steps to get started with the agent framework. These samples demonstrate the fundamental concepts and functionalities of the agent framework when using the `AIAgent` and can be used with any underlying service that provides an `AIAgent` implementation. -- [Getting Started - Agent Providers](./02-agents/AgentProviders/README.md): Shows how to create an AIAgent instance for a selection of providers. -- [Getting Started - Agent Telemetry](./02-agents/AgentOpenTelemetry/README.md): Demo which showcases the integration of OpenTelemetry with the Microsoft Agent Framework using Azure OpenAI and .NET Aspire Dashboard for telemetry visualization. -- [Semantic Kernel to Agent Framework Migration](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/AgentFrameworkMigration): For instructions and samples describing how to migrate from Semantic Kernel to Microsoft Agent Framework +- [Agent Providers](./02-agents/AgentProviders/README.md): Shows how to create an AIAgent instance for a selection of providers. +- [Agent Telemetry](./02-agents/AgentOpenTelemetry/README.md): Demo which showcases the integration of OpenTelemetry with the Microsoft Agent Framework using Azure OpenAI and .NET Aspire Dashboard for telemetry visualization. - [Durable Agents - Azure Functions](./04-hosting/DurableAgents/AzureFunctions/README.md): Samples for using the Microsoft Agent Framework with Azure Functions via the durable task extension. - [Durable Agents - Console Apps](./04-hosting/DurableAgents/ConsoleApps/README.md): Samples demonstrating durable agents in console applications. +## Migration from Semantic Kernel + +If you are migrating from Semantic Kernel to the Microsoft Agent Framework, the following resources provide guidance and side-by-side examples to help you transition your existing agents, tools, and orchestration patterns. +The migration samples map Semantic Kernel primitives (such as `ChatCompletionAgent` and Team orchestrations) to their Agent Framework equivalents (such as `ChatClientAgent` and workflow builders). + +For an in-depth migration guide, see the [official migration documentation](https://learn.microsoft.com/en-us/agent-framework/migration-guide/from-semantic-kernel). + ## Prerequisites For prerequisites see each set of samples for their specific requirements. From 1b6b2d8da82e569fafd5b898ddde617bd0caffd0 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:46:30 -0800 Subject: [PATCH 26/36] .NET Samples - Configuration Naming Update (#4149) --- .github/workflows/dotnet-build-and-test.yml | 23 +++++------- .../06_host_your_agent/Program.cs | 6 +-- .../06_host_your_agent/local.settings.json | 10 +++++ .../Agent_With_Anthropic/Program.cs | 2 +- .../Agent_With_Anthropic/README.md | 6 +-- .../Program.cs | 4 +- .../README.md | 4 +- .../Agent_With_AzureAIProject/Program.cs | 4 +- .../Agent_With_AzureAIProject/README.md | 4 +- .../Agent_With_AzureFoundryModel/Program.cs | 6 +-- .../Agent_With_AzureFoundryModel/README.md | 8 ++-- .../Agent_With_OpenAIAssistants/Program.cs | 2 +- .../Agent_With_OpenAIAssistants/README.md | 2 +- .../Program.cs | 2 +- .../Agent_With_OpenAIChatCompletion/README.md | 2 +- .../Agent_With_OpenAIResponses/Program.cs | 2 +- .../Agent_With_OpenAIResponses/README.md | 2 +- .../Agent_Anthropic_Step01_Running/Program.cs | 2 +- .../Agent_Anthropic_Step01_Running/README.md | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 2 +- .../Program.cs | 8 ++-- .../README.md | 8 ++-- .../Agent_OpenAI_Step01_Running/Program.cs | 2 +- .../Agent_OpenAI_Step02_Reasoning/Program.cs | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 2 +- .../README.md | 2 +- .../Program.cs | 4 +- .../Agents/Agent_Step07_AsMcpTool/Program.cs | 4 +- .../Agents/Agent_Step07_AsMcpTool/README.md | 4 +- .../Agent_Step15_DeepResearch/Program.cs | 8 ++-- .../Agent_Step15_DeepResearch/README.md | 8 ++-- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../FoundryAgents_Step01.1_Basics/Program.cs | 4 +- .../FoundryAgents_Step01.1_Basics/README.md | 4 +- .../FoundryAgents_Step01.2_Running/Program.cs | 4 +- .../FoundryAgents_Step01.2_Running/README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../FoundryAgents_Step12_Middleware/README.md | 4 +- .../FoundryAgents_Step13_Plugins/Program.cs | 4 +- .../FoundryAgents_Step13_Plugins/README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 4 +- .../FoundryAgents_Step18_FileSearch/README.md | 4 +- .../Program.cs | 4 +- .../README.md | 4 +- .../Program.cs | 8 ++-- .../FoundryAgents_Step25_WebSearch/Program.cs | 4 +- .../Program.cs | 6 +-- .../FoundryAgents_Step27_LocalMCP/Program.cs | 4 +- .../FoundryAgents_Step27_LocalMCP/README.md | 4 +- .../samples/02-agents/FoundryAgents/README.md | 4 +- .../FoundryAgent_Hosted_MCP/Program.cs | 4 +- .../FoundryAgent_Hosted_MCP/README.md | 4 +- .../Agents/FoundryAgent/Program.cs | 6 +-- .../Declarative/CustomerSupport/Program.cs | 12 +++--- .../Declarative/DeepResearch/Program.cs | 14 +++---- .../Declarative/ExecuteCode/Program.cs | 2 +- .../Declarative/ExecuteWorkflow/Program.cs | 2 +- .../Declarative/FunctionTools/Program.cs | 2 +- .../Declarative/HostedWorkflow/Program.cs | 6 +-- .../Declarative/InputArguments/Program.cs | 6 +-- .../Declarative/InvokeFunctionTool/Program.cs | 2 +- .../Declarative/Marketing/Program.cs | 6 +-- .../03-workflows/Declarative/README.md | 18 ++++----- .../Declarative/StudentTeacher/Program.cs | 4 +- .../Declarative/ToolApproval/Program.cs | 2 +- .../Observability/AspireDashboard/Program.cs | 2 +- .../WorkflowAsAnAgent/Program.cs | 2 +- .../04_MultiModelService/Program.cs | 6 +-- .../01_AgentOrchestration_Chaining/Program.cs | 6 +-- .../local.settings.json | 10 +++++ .../Program.cs | 6 +-- .../local.settings.json | 10 +++++ .../Program.cs | 6 +-- .../local.settings.json | 10 +++++ .../04_AgentOrchestration_HITL/Program.cs | 6 +-- .../local.settings.json | 10 +++++ .../05_LongRunningTools/Program.cs | 6 +-- .../05_LongRunningTools/local.settings.json | 10 +++++ .../06_AgentAsMcpTool/Program.cs | 6 +-- .../06_AgentAsMcpTool/README.md | 4 +- .../06_AgentAsMcpTool/local.settings.json | 10 +++++ .../07_ReliableStreaming/Program.cs | 6 +-- .../07_ReliableStreaming/README.md | 4 +- .../07_ReliableStreaming/local.settings.json | 12 ++++++ .../DurableAgents/AzureFunctions/README.md | 12 +++--- .../ConsoleApps/01_SingleAgent/Program.cs | 6 +-- .../02_AgentOrchestration_Chaining/Program.cs | 6 +-- .../Program.cs | 6 +-- .../Program.cs | 6 +-- .../05_AgentOrchestration_HITL/Program.cs | 6 +-- .../06_LongRunningTools/Program.cs | 6 +-- .../07_ReliableStreaming/Program.cs | 6 +-- .../07_ReliableStreaming/README.md | 4 +- .../DurableAgents/ConsoleApps/README.md | 8 ++-- .../A2AClientServer/A2AClient/README.md | 2 +- .../A2AClientServer/A2AServer/Program.cs | 4 +- .../05-end-to-end/A2AClientServer/README.md | 2 +- .../AGUIWebChat/Client/Program.cs | 2 +- .../Client/Properties/launchSettings.json | 2 +- .../05-end-to-end/AGUIWebChat/README.md | 8 ++-- .../AnthropicConfiguration.cs | 17 --------- .../IntegrationTests/AzureAIConfiguration.cs | 15 -------- .../FoundryMemoryConfiguration.cs | 13 ------- .../IntegrationTests/Mem0Configuration.cs | 12 ------ .../IntegrationTests/OpenAIConfiguration.cs | 17 --------- dotnet/src/Shared/IntegrationTests/README.md | 27 ++++++++++++++ .../Shared/IntegrationTests/TestSettings.cs | 37 +++++++++++++++++++ .../Shared/Workflows/Settings/Application.cs | 7 ++-- .../Support/TestConfiguration.cs | 30 ++++++--------- .../AnthropicChatCompletionFixture.cs | 11 +++--- .../AnthropicSkillsIntegrationTests.cs | 10 ++--- .../AIProjectClientCreateTests.cs | 17 ++++----- .../AIProjectClientFixture.cs | 10 ++--- .../AzureAIAgentsPersistentCreateTests.cs | 17 ++++----- .../AzureAIAgentsPersistentFixture.cs | 6 +-- .../CopilotStudioFixture.cs | 10 +++-- .../CopilotStudioAgentConfiguration.cs | 15 -------- .../CosmosChatHistoryProviderTests.cs | 20 +++++----- .../CosmosCheckpointStoreTests.cs | 12 +++--- .../ConsoleAppSamplesValidation.cs | 8 ++-- ...nts.AI.DurableTask.IntegrationTests.csproj | 1 - .../TestHelper.cs | 8 ++-- ...oft.Agents.AI.DurableTask.UnitTests.csproj | 1 - .../FoundryMemoryProviderTests.cs | 16 ++++---- ...s.AI.FoundryMemory.IntegrationTests.csproj | 1 - ...ing.AzureFunctions.IntegrationTests.csproj | 1 - .../SamplesValidation.cs | 30 ++++++++------- .../Mem0ProviderTests.cs | 11 +++--- ...oft.Agents.AI.Mem0.IntegrationTests.csproj | 1 - .../Agents/AgentProvider.cs | 11 +----- .../Agents/FunctionToolAgentProvider.cs | 3 +- .../Agents/MarketingAgentProvider.cs | 7 ++-- .../Agents/MathChatAgentProvider.cs | 5 ++- .../Agents/PoemAgentProvider.cs | 3 +- .../Agents/TestAgentProvider.cs | 3 +- .../Agents/VisionAgentProvider.cs | 3 +- .../Framework/IntegrationTest.cs | 5 ++- ...kflows.Declarative.IntegrationTests.csproj | 1 - .../OpenAIAssistantClientExtensionsTests.cs | 25 ++++++------- .../OpenAIAssistantFixture.cs | 6 +-- .../OpenAIChatCompletionFixture.cs | 5 +-- .../OpenAIResponseFixture.cs | 6 +-- 179 files changed, 581 insertions(+), 548 deletions(-) create mode 100644 dotnet/samples/01-get-started/06_host_your_agent/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json delete mode 100644 dotnet/src/Shared/IntegrationTests/AnthropicConfiguration.cs delete mode 100644 dotnet/src/Shared/IntegrationTests/AzureAIConfiguration.cs delete mode 100644 dotnet/src/Shared/IntegrationTests/FoundryMemoryConfiguration.cs delete mode 100644 dotnet/src/Shared/IntegrationTests/Mem0Configuration.cs delete mode 100644 dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs create mode 100644 dotnet/src/Shared/IntegrationTests/TestSettings.cs delete mode 100644 dotnet/tests/CopilotStudio.IntegrationTests/Support/CopilotStudioAgentConfiguration.cs diff --git a/.github/workflows/dotnet-build-and-test.yml b/.github/workflows/dotnet-build-and-test.yml index 95842e703a..22047407a7 100644 --- a/.github/workflows/dotnet-build-and-test.yml +++ b/.github/workflows/dotnet-build-and-test.yml @@ -92,7 +92,7 @@ jobs: Write-Host "Launching Azure Cosmos DB Emulator" Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator" Start-CosmosDbEmulator -NoUI -Key "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==" - echo "COSMOS_EMULATOR_AVAILABLE=true" >> $env:GITHUB_ENV + echo "COSMOSDB_EMULATOR_AVAILABLE=true" >> $env:GITHUB_ENV - name: Setup dotnet uses: actions/setup-dotnet@v5.1.0 @@ -205,20 +205,17 @@ jobs: COSMOSDB_ENDPOINT: https://localhost:8081 COSMOSDB_KEY: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== # OpenAI Models - OpenAI__ApiKey: ${{ secrets.OPENAI__APIKEY }} - OpenAI__ChatModelId: ${{ vars.OPENAI__CHATMODELID }} - OpenAI__ChatReasoningModelId: ${{ vars.OPENAI__CHATREASONINGMODELID }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + OPENAI_CHAT_MODEL_NAME: ${{ vars.OPENAI_CHAT_MODEL_NAME }} + OPENAI_REASONING_MODEL_NAME: ${{ vars.OPENAI_REASONING_MODEL_NAME }} # Azure OpenAI Models - AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }} - AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }} + AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }} + AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }} + AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }} # Azure AI Foundry - AzureAI__Endpoint: ${{ secrets.AZUREAI__ENDPOINT }} - AzureAI__DeploymentName: ${{ vars.AZUREAI__DEPLOYMENTNAME }} - AzureAI__BingConnectionId: ${{ vars.AZUREAI__BINGCONECTIONID }} - FOUNDRY_PROJECT_ENDPOINT: ${{ vars.FOUNDRY_PROJECT_ENDPOINT }} - FOUNDRY_MEDIA_DEPLOYMENT_NAME: ${{ vars.FOUNDRY_MEDIA_DEPLOYMENT_NAME }} - FOUNDRY_MODEL_DEPLOYMENT_NAME: ${{ vars.FOUNDRY_MODEL_DEPLOYMENT_NAME }} - FOUNDRY_CONNECTION_GROUNDING_TOOL: ${{ vars.FOUNDRY_CONNECTION_GROUNDING_TOOL }} + AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }} + AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_MODEL_DEPLOYMENT_NAME }} + AZURE_AI_BING_CONNECTION_ID: ${{ vars.AZURE_AI_BING_CONNECTION_ID }} # Generate test reports and check coverage - name: Generate test reports diff --git a/dotnet/samples/01-get-started/06_host_your_agent/Program.cs b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs index cc000bd815..d1fd3ced05 100644 --- a/dotnet/samples/01-get-started/06_host_your_agent/Program.cs +++ b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs @@ -14,11 +14,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json b/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs index a099d5aad3..da26d65cfe 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/Program.cs @@ -7,7 +7,7 @@ using Azure.Identity; using Microsoft.Agents.AI; -string deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_DEPLOYMENT_NAME") ?? "claude-haiku-4-5"; +string deploymentName = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5"; // The resource is the subdomain name / first name coming before '.services.ai.azure.com' in the endpoint Uri // ie: https://(resource name).services.ai.azure.com/anthropic/v1/chat/completions diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md index afcf391572..c1a569874b 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_Anthropic/README.md @@ -22,7 +22,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 +$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 ``` ### For Azure Foundry with API Key @@ -35,7 +35,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Replace with your Azure Foundry resource name (subdomain before .services.ai.azure.com) $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 +$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 ``` ### For Azure Foundry with Azure CLI @@ -47,7 +47,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_RESOURCE="your-foundry-resource-name" # Replace with your Azure Foundry resource name (subdomain before .services.ai.azure.com) -$env:ANTHROPIC_DEPLOYMENT_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 +$env:ANTHROPIC_CHAT_MODEL_NAME="claude-haiku-4-5" # Optional, defaults to claude-haiku-4-5 ``` **Note**: When using Azure Foundry with Azure CLI, make sure you're logged in with `az login` and have access to the Azure Foundry resource. For more information, see the [Azure CLI documentation](https://learn.microsoft.com/cli/azure/authenticate-azure-cli-interactively). diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs index 20da6b3720..691fb20328 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/Program.cs @@ -6,8 +6,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerName = "Joker"; const string JokerInstructions = "You are good at telling jokes."; diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md index d6b5497601..969795d87f 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIAgentsPersistent/README.md @@ -21,6 +21,6 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs index ced1665951..acdd0829ab 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/Program.cs @@ -7,8 +7,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md index 7e4a28f6a1..66fcbf8297 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureAIProject/README.md @@ -21,6 +21,6 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs index 752b6d0ec1..fe682d388a 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/Program.cs @@ -11,9 +11,9 @@ using OpenAI; using OpenAI.Chat; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_OPENAI_ENDPOINT is not set."); -var apiKey = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_OPENAI_API_KEY"); -var model = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_MODEL_DEPLOYMENT") ?? "Phi-4-mini-instruct"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); +var apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); +var model = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "Phi-4-mini-instruct"; // Since we are using the OpenAI Client SDK, we need to override the default endpoint to point to Azure Foundry. var clientOptions = new OpenAIClientOptions() { Endpoint = new Uri(endpoint) }; diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md index b5e65ea209..6d5b6badd7 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_AzureFoundryModel/README.md @@ -13,7 +13,7 @@ Before you begin, ensure you have the following prerequisites: - .NET 10 SDK or later - Azure AI Foundry resource - A model deployment in your Azure AI Foundry resource. This example defaults to using the `Phi-4-mini-instruct` model, -so if you want to use a different model, ensure that you set your `AZURE_FOUNDRY_MODEL_DEPLOYMENT` environment +so if you want to use a different model, ensure that you set your `AZURE_AI_MODEL_DEPLOYMENT_NAME` environment variable to the name of your deployed model. - An API key or role based authentication to access the Azure AI Foundry resource @@ -24,11 +24,11 @@ Set the following environment variables: ```powershell # Replace with your Azure AI Foundry resource endpoint # Ensure that you have the "/openai/v1/" path in the URL, since this is required when using the OpenAI SDK to access Azure Foundry models. -$env:AZURE_FOUNDRY_OPENAI_ENDPOINT="https://ai-foundry-.services.ai.azure.com/openai/v1/" +$env:AZURE_OPENAI_ENDPOINT="https://ai-foundry-.services.ai.azure.com/openai/v1/" # Optional, defaults to using Azure CLI for authentication if not provided -$env:AZURE_FOUNDRY_OPENAI_API_KEY="************" +$env:AZURE_OPENAI_API_KEY="************" # Optional, defaults to Phi-4-mini-instruct -$env:AZURE_FOUNDRY_MODEL_DEPLOYMENT="Phi-4-mini-instruct" +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="Phi-4-mini-instruct" ``` diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs index fa7edfb52c..02d19ab52c 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/Program.cs @@ -12,7 +12,7 @@ using OpenAI.Assistants; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; const string JokerName = "Joker"; const string JokerInstructions = "You are good at telling jokes."; diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md index 05d2380b78..b0a7638ab5 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIAssistants/README.md @@ -12,5 +12,5 @@ Set the following environment variables: ```powershell $env:OPENAI_API_KEY="*****" # Replace with your OpenAI API key -$env:OPENAI_MODEL="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs index 3b22c21b3b..f5af4d2369 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/Program.cs @@ -8,7 +8,7 @@ using OpenAI.Chat; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; AIAgent agent = new OpenAIClient( apiKey) diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md index 70fc472214..ef7ce3ae02 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIChatCompletion/README.md @@ -9,5 +9,5 @@ Set the following environment variables: ```powershell $env:OPENAI_API_KEY="*****" # Replace with your OpenAI api key -$env:OPENAI_MODEL="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs index 1e5883c67d..611f3f9a9a 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/Program.cs @@ -7,7 +7,7 @@ using OpenAI.Responses; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; AIAgent agent = new OpenAIClient( apiKey) diff --git a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md index 70fc472214..ef7ce3ae02 100644 --- a/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md +++ b/dotnet/samples/02-agents/AgentProviders/Agent_With_OpenAIResponses/README.md @@ -9,5 +9,5 @@ Set the following environment variables: ```powershell $env:OPENAI_API_KEY="*****" # Replace with your OpenAI api key -$env:OPENAI_MODEL="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs index 7aee814c0c..3d9c715588 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/Program.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.AI; var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("ANTHROPIC_MODEL") ?? "claude-haiku-4-5"; +var model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5"; AIAgent agent = new AnthropicClient(new ClientOptions { ApiKey = apiKey }) .AsAIAgent(model: model, instructions: "You are good at telling jokes.", name: "Joker"); diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md index 0ac9efbda9..5f58a43765 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step01_Running/README.md @@ -21,7 +21,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model +$env:ANTHROPIC_CHAT_MODEL_NAME="your-anthropic-model" # Replace with your Anthropic model ``` ## Run the sample diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs index 78633cb7a8..e88bbd9ac7 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/Program.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.AI; var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("ANTHROPIC_MODEL") ?? "claude-haiku-4-5"; +var model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5"; var maxTokens = 4096; var thinkingTokens = 2048; diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md index 083b27fc5d..4242111122 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step02_Reasoning/README.md @@ -23,7 +23,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model +$env:ANTHROPIC_CHAT_MODEL_NAME="your-anthropic-model" # Replace with your Anthropic model ``` ## Run the sample diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs index c58c7ebcc8..1727c43825 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/Program.cs @@ -9,7 +9,7 @@ using Microsoft.Extensions.AI; var apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("ANTHROPIC_MODEL") ?? "claude-haiku-4-5"; +var model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-haiku-4-5"; [Description("Get the weather for a given location.")] static string GetWeather([Description("The location to get the weather for.")] string location) diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md index 98cfa0f69e..9160a97d02 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step03_UsingFunctionTools/README.md @@ -23,7 +23,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model +$env:ANTHROPIC_CHAT_MODEL_NAME="your-anthropic-model" # Replace with your Anthropic model ``` ## Run the sample diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs index f67c25214f..9d356a8598 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/Program.cs @@ -19,7 +19,7 @@ string apiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") ?? throw new InvalidOperationException("ANTHROPIC_API_KEY is not set."); // Skills require Claude 4.5 models (Sonnet 4.5, Haiku 4.5, or Opus 4.5) -string model = Environment.GetEnvironmentVariable("ANTHROPIC_MODEL") ?? "claude-sonnet-4-5-20250929"; +string model = Environment.GetEnvironmentVariable("ANTHROPIC_CHAT_MODEL_NAME") ?? "claude-sonnet-4-5-20250929"; // Create the Anthropic client AnthropicClient anthropicClient = new() { ApiKey = apiKey }; diff --git a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md index 00860032ca..322d475008 100644 --- a/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md +++ b/dotnet/samples/02-agents/AgentWithAnthropic/Agent_Anthropic_Step04_UsingSkills/README.md @@ -24,7 +24,7 @@ Set the following environment variables: ```powershell $env:ANTHROPIC_API_KEY="your-anthropic-api-key" # Replace with your Anthropic API key -$env:ANTHROPIC_MODEL="your-anthropic-model" # Replace with your Anthropic model (e.g., claude-sonnet-4-5-20250929) +$env:ANTHROPIC_CHAT_MODEL_NAME="your-anthropic-model" # Replace with your Anthropic model (e.g., claude-sonnet-4-5-20250929) ``` ## Run the sample diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs index d1d6a60f9d..f1842eb634 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step02_MemoryUsingMem0/Program.cs @@ -17,7 +17,7 @@ var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; var mem0ServiceUri = Environment.GetEnvironmentVariable("MEM0_ENDPOINT") ?? throw new InvalidOperationException("MEM0_ENDPOINT is not set."); -var mem0ApiKey = Environment.GetEnvironmentVariable("MEM0_APIKEY") ?? throw new InvalidOperationException("MEM0_APIKEY is not set."); +var mem0ApiKey = Environment.GetEnvironmentVariable("MEM0_API_KEY") ?? throw new InvalidOperationException("MEM0_API_KEY is not set."); // Create an HttpClient for Mem0 with the required base address and authentication. using HttpClient mem0HttpClient = new(); diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs index 3c805f2399..914eda330a 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/Program.cs @@ -13,10 +13,10 @@ using Microsoft.Agents.AI; using Microsoft.Agents.AI.FoundryMemory; -string foundryEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set."); -string memoryStoreName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_MEMORY_STORE_NAME") ?? "memory-store-sample"; -string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_MODEL") ?? "gpt-4o-mini"; -string embeddingModelName = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_EMBEDDING_MODEL") ?? "text-embedding-ada-002"; +string foundryEndpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string memoryStoreName = Environment.GetEnvironmentVariable("AZURE_AI_MEMORY_STORE_ID") ?? "memory-store-sample"; +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string embeddingModelName = Environment.GetEnvironmentVariable("AZURE_AI_EMBEDDING_DEPLOYMENT_NAME") ?? "text-embedding-ada-002"; // Create an AIProjectClient for Foundry with Azure Identity authentication. DefaultAzureCredential credential = new(); diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md index dfea386d82..bcc70b0103 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step04_MemoryUsingFoundry/README.md @@ -22,12 +22,12 @@ This sample demonstrates how to create and run an agent that uses Azure AI Found ```bash # Azure AI Foundry project endpoint and memory store name -export FOUNDRY_PROJECT_ENDPOINT="https://your-account.services.ai.azure.com/api/projects/your-project" -export FOUNDRY_PROJECT_MEMORY_STORE_NAME="my_memory_store" +export AZURE_AI_PROJECT_ENDPOINT="https://your-account.services.ai.azure.com/api/projects/your-project" +export AZURE_AI_MEMORY_STORE_ID="my_memory_store" # Model deployment names (models deployed in your Foundry project) -export FOUNDRY_PROJECT_MODEL="gpt-4o-mini" -export FOUNDRY_PROJECT_EMBEDDING_MODEL="text-embedding-ada-002" +export AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" +export AZURE_AI_EMBEDDING_DEPLOYMENT_NAME="text-embedding-ada-002" ``` ## Run the Sample diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs index 78ea76e03f..e2bd31055a 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step01_Running/Program.cs @@ -8,7 +8,7 @@ using OpenAI.Chat; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; AIAgent agent = new OpenAIClient(apiKey) .GetChatClient(model) diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs index 426b40f1f5..d13d0d5346 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step02_Reasoning/Program.cs @@ -7,7 +7,7 @@ using OpenAI; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-5"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-5"; var client = new OpenAIClient(apiKey) .GetResponsesClient(model) diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs index b046afbf0d..5efc6c0ad6 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/Program.cs @@ -7,7 +7,7 @@ using OpenAIChatClientSample; string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -string model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +string model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; // Create a ChatClient directly from OpenAIClient ChatClient chatClient = new OpenAIClient(apiKey).GetChatClient(model); diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md index a4d9dd76a5..9c91e964eb 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step03_CreateFromChatClient/README.md @@ -13,7 +13,7 @@ This sample demonstrates how to create an AI agent directly from an `OpenAI.Chat 1. Set the required environment variables: ```bash set OPENAI_API_KEY=your_api_key_here - set OPENAI_MODEL=gpt-4o-mini + set OPENAI_CHAT_MODEL_NAME=gpt-4o-mini ``` 2. Run the sample: diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs index 5c229cc57d..8004770c21 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs @@ -7,7 +7,7 @@ using OpenAIResponseClientSample; var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -var model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +var model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; // Create a ResponsesClient directly from OpenAIClient ResponsesClient responseClient = new OpenAIClient(apiKey).GetResponsesClient(model); diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md index 32e19caa62..1acbe3137d 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/README.md @@ -13,7 +13,7 @@ This sample demonstrates how to create an AI agent directly from an `OpenAI.Resp 1. Set the required environment variables: ```bash set OPENAI_API_KEY=your_api_key_here - set OPENAI_MODEL=gpt-4o-mini + set OPENAI_CHAT_MODEL_NAME=gpt-4o-mini ``` 2. Run the sample: diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs index 9659d3dc40..921acbad0d 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/Program.cs @@ -15,7 +15,7 @@ using OpenAI.Conversations; string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY") ?? throw new InvalidOperationException("OPENAI_API_KEY is not set."); -string model = Environment.GetEnvironmentVariable("OPENAI_MODEL") ?? "gpt-4o-mini"; +string model = Environment.GetEnvironmentVariable("OPENAI_CHAT_MODEL_NAME") ?? "gpt-4o-mini"; // Create a ConversationClient directly from OpenAIClient OpenAIClient openAIClient = new(apiKey); diff --git a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md index 9706ca05f1..1b4d393418 100644 --- a/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md +++ b/dotnet/samples/02-agents/AgentWithOpenAI/Agent_OpenAI_Step05_Conversation/README.md @@ -69,7 +69,7 @@ foreach (ClientResult result in getConversationItemsResults.GetRawPages()) 1. Set the required environment variables: ```powershell $env:OPENAI_API_KEY = "your_api_key_here" - $env:OPENAI_MODEL = "gpt-4o-mini" + $env:OPENAI_CHAT_MODEL_NAME = "gpt-4o-mini" ``` 2. Run the sample: diff --git a/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs index 4234be6c5a..c356bccbd9 100644 --- a/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs +++ b/dotnet/samples/02-agents/AgentWithRAG/AgentWithRAG_Step04_FoundryServiceRAG/Program.cs @@ -11,8 +11,8 @@ using OpenAI.Files; using OpenAI.VectorStores; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; // Create an AI Project client and get an OpenAI client that works with the foundry service. // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. diff --git a/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs index 3ecad341b0..d621227ea0 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs +++ b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/Program.cs @@ -9,8 +9,8 @@ using Microsoft.Extensions.Hosting; using ModelContextProtocol.Server; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid diff --git a/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md index 518673f04b..e35cf01e90 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step07_AsMcpTool/README.md @@ -21,8 +21,8 @@ To use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) ``` 1. Open a web browser and navigate to the URL displayed in the terminal. If not opened automatically, this will open the MCP Inspector interface. 1. In the MCP Inspector interface, add the following environment variables to allow your MCP server to access Azure AI Foundry Project to create and run the agent: - - AZURE_FOUNDRY_PROJECT_ENDPOINT = https://your-resource.openai.azure.com/ # Replace with your Azure AI Foundry Project endpoint - - AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME = gpt-4o-mini # Replace with your model deployment name + - AZURE_AI_PROJECT_ENDPOINT = https://your-resource.openai.azure.com/ # Replace with your Azure AI Foundry Project endpoint + - AZURE_AI_MODEL_DEPLOYMENT_NAME = gpt-4o-mini # Replace with your model deployment name 1. Find and click the `Connect` button in the MCP Inspector interface to connect to the MCP server. 1. As soon as the connection is established, open the `Tools` tab in the MCP Inspector interface and select the `Joker` tool from the list. 1. Specify your prompt as a value for the `query` argument, for example: `Tell me a joke about a pirate` and click the `Run Tool` button to run the tool. diff --git a/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs index c14b9e5b55..cbbc327948 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs +++ b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/Program.cs @@ -6,10 +6,10 @@ using Azure.Identity; using Microsoft.Agents.AI; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var deepResearchDeploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEEP_RESEARCH_DEPLOYMENT_NAME") ?? "o3-deep-research"; -var modelDeploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o"; -var bingConnectionId = Environment.GetEnvironmentVariable("BING_CONNECTION_ID") ?? throw new InvalidOperationException("BING_CONNECTION_ID is not set."); +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var deepResearchDeploymentName = Environment.GetEnvironmentVariable("AZURE_AI_REASONING_DEPLOYMENT_NAME") ?? "o3-deep-research"; +var modelDeploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o"; +var bingConnectionId = Environment.GetEnvironmentVariable("AZURE_AI_BING_CONNECTION_ID") ?? throw new InvalidOperationException("AZURE_AI_BING_CONNECTION_ID is not set."); // Configure extended network timeout for long-running Deep Research tasks. PersistentAgentsAdministrationClientOptions persistentAgentsClientOptions = new(); diff --git a/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md index 0404054306..dc24ba4554 100644 --- a/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md +++ b/dotnet/samples/02-agents/Agents/Agent_Step15_DeepResearch/README.md @@ -35,13 +35,13 @@ Set the following environment variables: ```powershell # Replace with your Azure AI Foundry project endpoint -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-project.services.ai.azure.com/" +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-project.services.ai.azure.com/" # Replace with your Bing connection ID from the project -$env:BING_CONNECTION_ID="/subscriptions/.../connections/your-bing-connection" +$env:AZURE_AI_BING_CONNECTION_ID="/subscriptions/.../connections/your-bing-connection" # Optional, defaults to o3-deep-research -$env:AZURE_FOUNDRY_PROJECT_DEEP_RESEARCH_DEPLOYMENT_NAME="o3-deep-research" +$env:AZURE_AI_REASONING_DEPLOYMENT_NAME="o3-deep-research" # Optional, defaults to gpt-4o -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o" +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o" diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs index 93a34428c8..60a859c28f 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/Program.cs @@ -13,8 +13,8 @@ using Azure.AI.Projects; using Azure.Identity; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; Console.WriteLine("=" + new string('=', 79)); Console.WriteLine("RED TEAMING EVALUATION SAMPLE"); diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md index 5c91f33992..24e4a62b35 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step01_RedTeaming/README.md @@ -32,8 +32,8 @@ Red teaming is only available in regions that support risk and safety evaluators Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-project.services.ai.azure.com/api/projects/your-project" # Replace with your Azure Foundry project endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-project.services.ai.azure.com/api/projects/your-project" # Replace with your Azure Foundry project endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs index 3faf740c0a..8f8c9fa4ee 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/Program.cs @@ -24,8 +24,8 @@ using ChatMessage = Microsoft.Extensions.AI.ChatMessage; using ChatRole = Microsoft.Extensions.AI.ChatRole; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; string openAiEndpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); string evaluatorDeploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? deploymentName; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md index a5caade60b..d71eeca6af 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Evaluations_Step02_SelfReflection/README.md @@ -37,9 +37,9 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-project.api.azureml.ms" # Azure Foundry project endpoint +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-project.api.azureml.ms" # Azure Foundry project endpoint $env:AZURE_OPENAI_ENDPOINT="https://your-openai.openai.azure.com/" # Azure OpenAI endpoint (for quality evaluators) -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Model deployment name +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Model deployment name ``` **Note**: For best evaluation results, use GPT-4o or GPT-4o-mini as the evaluator model. The groundedness evaluator has been tested and tuned for these models. diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs index 72450b1ae4..72676bed45 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/Program.cs @@ -7,8 +7,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md index 1423227772..ce5eca8277 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.1_Basics/README.md @@ -19,8 +19,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs index 79ded7c557..dd5db03b15 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/Program.cs @@ -7,8 +7,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerInstructions = "You are good at telling jokes."; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md index 0e55500ace..40cb5e107d 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step01.2_Running/README.md @@ -22,8 +22,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs index d74180db14..1ac51c30ad 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/Program.cs @@ -7,8 +7,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerInstructions = "You are good at telling jokes."; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md index deede817bc..86721bf960 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step02_MultiturnConversation/README.md @@ -24,8 +24,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs index 43ff40aa04..cfd74000a6 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/Program.cs @@ -9,8 +9,8 @@ using Microsoft.Agents.AI; using Microsoft.Extensions.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; [Description("Get the weather for a given location.")] static string GetWeather([Description("The location to get the weather for.")] string location) diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md index b428b05ca1..fa9b5baf21 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step03_UsingFunctionTools/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs index f7a847aeb4..f33fae35f4 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/Program.cs @@ -11,8 +11,8 @@ using Microsoft.Agents.AI; using Microsoft.Extensions.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; // Create a sample function tool that the agent can use. [Description("Get the weather for a given location.")] diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md index eedf3dd854..42cbd6ba32 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step04_UsingFunctionToolsWithApprovals/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs index 9d031bc64b..3c02a4cec2 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/Program.cs @@ -12,8 +12,8 @@ #pragma warning disable CA5399 -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AssistantInstructions = "You are a helpful assistant that extracts structured information about people."; const string AssistantName = "StructuredOutputAssistant"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md index ac29f46645..4c44230e18 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step05_StructuredOutput/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs index 2d163b0fb1..d8a5a7cd35 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/Program.cs @@ -7,8 +7,8 @@ using Azure.Identity; using Microsoft.Agents.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerInstructions = "You are good at telling jokes."; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md index f0dd76eb53..57a032e9ec 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step06_PersistedConversations/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs index 35bac61639..257e24859f 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/Program.cs @@ -9,8 +9,8 @@ using OpenTelemetry; using OpenTelemetry.Trace; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; string? applicationInsightsConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); const string JokerInstructions = "You are good at telling jokes."; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md index 1d09c14e9e..459434bce2 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step07_Observability/README.md @@ -25,8 +25,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini $env:APPLICATIONINSIGHTS_CONNECTION_STRING="your-connection-string" # Optional, for Azure Monitor integration ``` diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs index 16708c4e99..b7a9874e7b 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/Program.cs @@ -9,8 +9,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string JokerInstructions = "You are good at telling jokes."; const string JokerName = "JokerAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md index 6cc0563191..12760e736f 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step08_DependencyInjection/README.md @@ -24,8 +24,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs index e33f754912..e1968122a4 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/Program.cs @@ -8,8 +8,8 @@ using Microsoft.Extensions.AI; using ModelContextProtocol.Client; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; Console.WriteLine("Starting MCP Stdio for @modelcontextprotocol/server-github ... "); diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md index 67c4a7f4d1..e4e3fe537a 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step09_UsingMcpClientAsTools/README.md @@ -24,8 +24,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs index 732ca25dde..d44d62df51 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/Program.cs @@ -7,8 +7,8 @@ using Microsoft.Agents.AI; using Microsoft.Extensions.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o"; const string VisionInstructions = "You are a helpful agent that can analyze images"; const string VisionName = "VisionAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md index 3b1039b84a..220104a291 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step10_UsingImages/README.md @@ -29,8 +29,8 @@ Before running this sample, ensure you have: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-resource.openai.azure.com/" # Replace with your Azure Foundry Project endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o" # Replace with your model deployment name (optional, defaults to gpt-4o) +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-resource.openai.azure.com/" # Replace with your Azure Foundry Project endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o" # Replace with your model deployment name (optional, defaults to gpt-4o) ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs index 7bbe478b4c..585725322e 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/Program.cs @@ -8,8 +8,8 @@ using Microsoft.Agents.AI; using Microsoft.Extensions.AI; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string WeatherInstructions = "You answer questions about the weather."; const string WeatherName = "WeatherAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md index 4e5a213bc6..5da59b6edb 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step11_AsFunctionTool/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs index c91cc6a6f1..7ea6bc88a3 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/Program.cs @@ -13,8 +13,8 @@ using Microsoft.Extensions.AI; // Get Azure AI Foundry configuration from environment variables -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = System.Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = System.Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o"; const string AssistantInstructions = "You are an AI assistant that helps people find information."; const string AssistantName = "InformationAssistant"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md index ff5e82b6bc..96d12d9828 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step12_Middleware/README.md @@ -30,8 +30,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Running the Sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs index 1f18dc21db..244d83d632 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/Program.cs @@ -15,8 +15,8 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AssistantInstructions = "You are a helpful assistant that helps people find information."; const string AssistantName = "PluginAssistant"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md index 56678b47a6..5c52ffcd1c 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step13_Plugins/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs index 77bfa6f8d7..854d317495 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/Program.cs @@ -11,8 +11,8 @@ using OpenAI.Assistants; using OpenAI.Responses; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AgentInstructions = "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question."; const string AgentNameMEAI = "CoderAgent-MEAI"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md index bc332cd647..34fa18c94c 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step14_CodeInterpreter/README.md @@ -24,8 +24,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs index 6cfab6edbe..1c5510218a 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/Program.cs @@ -15,8 +15,8 @@ internal sealed class Program { private static async Task Main(string[] args) { - string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); - string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "computer-use-preview"; + string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); + string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "computer-use-preview"; // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md index 5cb34a1ed6..092f2bd1cf 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step15_ComputerUse/README.md @@ -35,8 +35,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="computer-use-preview" # Optional, defaults to computer-use-preview +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="computer-use-preview" # Optional, defaults to computer-use-preview ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs index 7b133e0651..36f28c2387 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs @@ -11,8 +11,8 @@ using OpenAI.Files; using OpenAI.Responses; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AgentInstructions = "You are a helpful assistant that can search through uploaded files to answer questions."; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md index 8ef4111239..d6e7dcdf61 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md @@ -24,8 +24,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs index 8d17bb0f91..2ee5a94458 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs @@ -9,8 +9,8 @@ using OpenAI.Responses; // Warning: DefaultAzureCredential is intended for simplicity in development. For production scenarios, consider using a more specific credential. -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AgentInstructions = "You are a helpful assistant that can use the countries API to retrieve information about countries by their currency code."; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md index f866eefbdb..dc0de95876 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs index 33ee4ec511..365bf6ed08 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs @@ -8,10 +8,10 @@ using Microsoft.Agents.AI; using OpenAI.Responses; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; -string connectionId = Environment.GetEnvironmentVariable("BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID") ?? throw new InvalidOperationException("BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID is not set."); -string instanceName = Environment.GetEnvironmentVariable("BING_CUSTOM_SEARCH_INSTANCE_NAME") ?? throw new InvalidOperationException("BING_CUSTOM_SEARCH_INSTANCE_NAME is not set."); +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string connectionId = Environment.GetEnvironmentVariable("AZURE_AI_CUSTOM_SEARCH_CONNECTION_ID") ?? throw new InvalidOperationException("AZURE_AI_CUSTOM_SEARCH_CONNECTION_ID is not set."); +string instanceName = Environment.GetEnvironmentVariable("AZURE_AI_CUSTOM_SEARCH_INSTANCE_NAME") ?? throw new InvalidOperationException("AZURE_AI_CUSTOM_SEARCH_INSTANCE_NAME is not set."); const string AgentInstructions = """ You are a helpful agent that can use Bing Custom Search tools to assist users. diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs index 77e5d5aeb7..1ac312ddae 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs @@ -9,8 +9,8 @@ using Microsoft.Extensions.AI; using OpenAI.Responses; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AgentInstructions = "You are a helpful assistant that can search the web to find current information and answer questions accurately."; const string AgentName = "WebSearchAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs index 10bb2efe8d..97eed4e838 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs @@ -10,13 +10,13 @@ using Microsoft.Agents.AI; using OpenAI.Responses; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; // Memory store configuration // NOTE: Memory stores must be created beforehand via Azure Portal or Python SDK. // The .NET SDK currently only supports using existing memory stores with agents. -string memoryStoreName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_MEMORY_STORE_NAME") ?? throw new InvalidOperationException("AZURE_FOUNDRY_MEMORY_STORE_NAME is not set."); +string memoryStoreName = Environment.GetEnvironmentVariable("AZURE_AI_MEMORY_STORE_ID") ?? throw new InvalidOperationException("AZURE_AI_MEMORY_STORE_ID is not set."); const string AgentInstructions = """ You are a helpful assistant that remembers past conversations. diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs index a9c4d4b7ed..d41771ef37 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs @@ -11,8 +11,8 @@ using Microsoft.Extensions.AI; using ModelContextProtocol.Client; -string endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; +string endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; const string AgentInstructions = "You are a helpful assistant that can help with Microsoft documentation questions. Use the Microsoft Learn MCP tool to search for documentation."; const string AgentName = "DocsAgent"; diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md index 6f426d89b6..00801bf15d 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md @@ -23,8 +23,8 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample diff --git a/dotnet/samples/02-agents/FoundryAgents/README.md b/dotnet/samples/02-agents/FoundryAgents/README.md index d8677ea58b..af419eddc9 100644 --- a/dotnet/samples/02-agents/FoundryAgents/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/README.md @@ -86,8 +86,8 @@ cd FoundryAgents_Step01.2_Running Set the following environment variables: ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` If the variables are not set, you will be prompted for the values when running the samples. diff --git a/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs index f6397ce182..99d26c103d 100644 --- a/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs +++ b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/Program.cs @@ -9,8 +9,8 @@ using Microsoft.Agents.AI; using Microsoft.Extensions.AI; -var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); -var model = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4.1-mini"; +var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); +var model = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4.1-mini"; // Get a client to create/retrieve server side agents with. // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. diff --git a/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md index f3be7da576..a172ec63cf 100644 --- a/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md +++ b/dotnet/samples/02-agents/ModelContextProtocol/FoundryAgent_Hosted_MCP/README.md @@ -11,6 +11,6 @@ Before you begin, ensure you have the following prerequisites: Set the following environment variables: ```powershell -$env:FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint -$env:FOUNDRY_MODEL_DEPLOYMENT_NAME="gpt-4.1-mini" # Optional, defaults to gpt-4.1-mini +$env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" # Replace with your Azure Foundry resource endpoint +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4.1-mini" # Optional, defaults to gpt-4.1-mini ``` diff --git a/dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs b/dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs index 016138aeea..f322bb882d 100644 --- a/dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs +++ b/dotnet/samples/03-workflows/Agents/FoundryAgent/Program.cs @@ -21,9 +21,9 @@ public static class Program private static async Task Main() { // Set up the Azure OpenAI client - var endpoint = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_ENDPOINT") - ?? throw new InvalidOperationException("AZURE_FOUNDRY_PROJECT_ENDPOINT is not set."); - var deploymentName = Environment.GetEnvironmentVariable("AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; + var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set."); + var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; var persistentAgentsClient = new PersistentAgentsClient(endpoint, new AzureCliCredential()); // Create agents diff --git a/dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs b/dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs index 0547c37b72..b5df45a399 100644 --- a/dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/CustomerSupport/Program.cs @@ -98,7 +98,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineSelfServiceAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -145,7 +145,7 @@ Use your knowledge to work with the user to provide the best possible troublesho }; private static PromptAgentDefinition DefineTicketingAgent(IConfiguration configuration, TicketingPlugin plugin) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -209,7 +209,7 @@ Include the following information in the TicketSummary. }; private static PromptAgentDefinition DefineTicketRoutingAgent(IConfiguration configuration, TicketingPlugin plugin) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -254,7 +254,7 @@ Determine how to route the given issue to the appropriate support team. }; private static PromptAgentDefinition DefineWindowsSupportAgent(IConfiguration configuration, TicketingPlugin plugin) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -324,7 +324,7 @@ Use your knowledge to work with the user to provide the best possible troublesho }; private static PromptAgentDefinition DefineResolutionAgent(IConfiguration configuration, TicketingPlugin plugin) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -358,7 +358,7 @@ Always include the resolution details. }; private static PromptAgentDefinition TicketEscalationAgent(IConfiguration configuration, TicketingPlugin plugin) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs b/dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs index ae410a0371..98d75d250b 100644 --- a/dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/DeepResearch/Program.cs @@ -89,7 +89,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineResearchAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelFull)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -121,7 +121,7 @@ 4. EDUCATED GUESSES }; private static PromptAgentDefinition DefinePlannerAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = // TODO: Use Structured Inputs / Prompt Template """ @@ -140,7 +140,7 @@ Your only job is to devise an efficient plan that identifies (by name) how a tea }; private static PromptAgentDefinition DefineManagerAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = // TODO: Use Structured Inputs / Prompt Template """ @@ -226,7 +226,7 @@ private static PromptAgentDefinition DefineManagerAgent(IConfiguration configura }; private static PromptAgentDefinition DefineSummaryAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -241,7 +241,7 @@ so please ensure it is complete and self-contained. }; private static PromptAgentDefinition DefineKnowledgeAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Tools = { @@ -252,7 +252,7 @@ private static PromptAgentDefinition DefineKnowledgeAgent(IConfiguration configu }; private static PromptAgentDefinition DefineCoderAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -266,7 +266,7 @@ You solve problem by writing and executing code. }; private static PromptAgentDefinition DefineWeatherAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs b/dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs index 0566a5ff55..67d467266b 100644 --- a/dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/ExecuteCode/Program.cs @@ -17,7 +17,7 @@ namespace Demo.DeclarativeCode; /// /// /// Configuration -/// Define FOUNDRY_PROJECT_ENDPOINT as a user-secret or environment variable that +/// Define AZURE_AI_PROJECT_ENDPOINT as a user-secret or environment variable that /// points to your Foundry project endpoint. /// internal sealed class Program diff --git a/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs index fdbf9d1026..0d80cb686d 100644 --- a/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/ExecuteWorkflow/Program.cs @@ -19,7 +19,7 @@ namespace Demo.DeclarativeWorkflow; /// /// /// Configuration -/// Define FOUNDRY_PROJECT_ENDPOINT as a user-secret or environment variable that +/// Define AZURE_AI_PROJECT_ENDPOINT as a user-secret or environment variable that /// points to your Foundry project endpoint. /// Usage /// Provide the path to the workflow definition file as the first argument. diff --git a/dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs b/dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs index a5000635e4..8218e7c057 100644 --- a/dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/FunctionTools/Program.cs @@ -70,7 +70,7 @@ await aiProjectClient.CreateAgentAsync( private static PromptAgentDefinition DefineMenuAgent(IConfiguration configuration, AIFunction[] functions) { PromptAgentDefinition agentDefinition = - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs b/dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs index 2cf24a137b..272e83f983 100644 --- a/dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/HostedWorkflow/Program.cs @@ -19,7 +19,7 @@ namespace Demo.DeclarativeWorkflow; /// /// /// Configuration -/// Define FOUNDRY_PROJECT_ENDPOINT as a user-secret or environment variable that +/// Define AZURE_AI_PROJECT_ENDPOINT as a user-secret or environment variable that /// points to your Foundry project endpoint. /// Usage /// Provide the path to the workflow definition file as the first argument. @@ -111,7 +111,7 @@ await agentClient.CreateAgentAsync( } private static PromptAgentDefinition DefineStudentAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -124,7 +124,7 @@ You have the math-skills of a 6th grader. }; private static PromptAgentDefinition DefineTeacherAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs b/dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs index 523865cc62..65a365b143 100644 --- a/dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/InputArguments/Program.cs @@ -69,7 +69,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineLocationTriageAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -80,7 +80,7 @@ Your only job is to solicit a location from the user. }; private static PromptAgentDefinition DefineLocationCaptureAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -129,7 +129,7 @@ City level precision is sufficient. }; private static PromptAgentDefinition DefineLocationAwareAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { // Parameterized instructions reference the "location" input argument. Instructions = diff --git a/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs index 456bba0f88..fb20764977 100644 --- a/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/InvokeFunctionTool/Program.cs @@ -66,7 +66,7 @@ await aiProjectClient.CreateAgentAsync( private static PromptAgentDefinition DefineMenuAgent(IConfiguration configuration, AIFunction[] functions) { PromptAgentDefinition agentDefinition = - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/Marketing/Program.cs b/dotnet/samples/03-workflows/Declarative/Marketing/Program.cs index 43ff497930..308303c162 100644 --- a/dotnet/samples/03-workflows/Declarative/Marketing/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/Marketing/Program.cs @@ -68,7 +68,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineAnalystAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelFull)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -86,7 +86,7 @@ private static PromptAgentDefinition DefineAnalystAgent(IConfiguration configura }; private static PromptAgentDefinition DefineWriterAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelFull)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -97,7 +97,7 @@ Output should be short (around 150 words), output just the copy as a single text }; private static PromptAgentDefinition DefineEditorAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelFull)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/README.md b/dotnet/samples/03-workflows/Declarative/README.md index e2afa58671..2ad3e59c0d 100644 --- a/dotnet/samples/03-workflows/Declarative/README.md +++ b/dotnet/samples/03-workflows/Declarative/README.md @@ -18,9 +18,9 @@ The configuraton required by the samples is: |Setting Name| Description| |:--|:--| -|FOUNDRY_PROJECT_ENDPOINT| The endpoint URL of your Azure Foundry Project.| -|FOUNDRY_MODEL_DEPLOYMENT_NAME| The name of the model deployment to use -|FOUNDRY_CONNECTION_GROUNDING_TOOL| The name of the Bing Grounding connection configured in your Azure Foundry Project.| +|AZURE_AI_PROJECT_ENDPOINT| The endpoint URL of your Azure Foundry Project.| +|AZURE_AI_MODEL_DEPLOYMENT_NAME| The name of the model deployment to use +|AZURE_AI_BING_CONNECTION_ID| The name of the Bing Grounding connection configured in your Azure Foundry Project.| To set your secrets with .NET Secret Manager: @@ -45,27 +45,27 @@ To set your secrets with .NET Secret Manager: 4. Define setting that identifies your Azure Foundry Project (endpoint): ``` - dotnet user-secrets set "FOUNDRY_PROJECT_ENDPOINT" "https://..." + dotnet user-secrets set "AZURE_AI_PROJECT_ENDPOINT" "https://..." ``` 5. Define setting that identifies your Azure Foundry Model Deployment (endpoint): ``` - dotnet user-secrets set "FOUNDRY_MODEL_DEPLOYMENT_NAME" "gpt-5" + dotnet user-secrets set "AZURE_AI_MODEL_DEPLOYMENT_NAME" "gpt-5" ``` 6. Define setting that identifies your Bing Grounding connection: ``` - dotnet user-secrets set "FOUNDRY_CONNECTION_GROUNDING_TOOL" "mybinggrounding" + dotnet user-secrets set "AZURE_AI_BING_CONNECTION_ID" "mybinggrounding" ``` You may alternatively set your secrets as an environment variable (PowerShell): ```pwsh -$env:FOUNDRY_PROJECT_ENDPOINT="https://..." -$env:FOUNDRY_MODEL_DEPLOYMENT_NAME="gpt-5" -$env:FOUNDRY_CONNECTION_GROUNDING_TOOL="mybinggrounding" +$env:AZURE_AI_PROJECT_ENDPOINT="https://..." +$env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-5" +$env:AZURE_AI_BING_CONNECTION_ID="mybinggrounding" ``` ### Authorization diff --git a/dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs b/dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs index 80afd61911..28523c031e 100644 --- a/dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/StudentTeacher/Program.cs @@ -63,7 +63,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineStudentAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ @@ -76,7 +76,7 @@ You have the math-skills of a 6th grader. }; private static PromptAgentDefinition DefineTeacherAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs b/dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs index 691c3d2243..544974e096 100644 --- a/dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/ToolApproval/Program.cs @@ -59,7 +59,7 @@ await aiProjectClient.CreateAgentAsync( } private static PromptAgentDefinition DefineSearchAgent(IConfiguration configuration) => - new(configuration.GetValue(Application.Settings.FoundryModelMini)) + new(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ diff --git a/dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs b/dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs index 06eebfba9d..23fcfe5f4e 100644 --- a/dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs +++ b/dotnet/samples/03-workflows/Observability/AspireDashboard/Program.cs @@ -29,7 +29,7 @@ public static class Program private static async Task Main() { // Configure OpenTelemetry for Aspire dashboard - var otlpEndpoint = Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4317"; + var otlpEndpoint = Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT") ?? "http://localhost:4317"; var resourceBuilder = ResourceBuilder .CreateDefault() diff --git a/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs index 19a3339754..f1911dc43f 100644 --- a/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs +++ b/dotnet/samples/03-workflows/Observability/WorkflowAsAnAgent/Program.cs @@ -50,7 +50,7 @@ private static async Task Main() { // Set up observability var applicationInsightsConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); - var otlpEndpoint = Environment.GetEnvironmentVariable("OTLP_ENDPOINT") ?? "http://localhost:4317"; + var otlpEndpoint = Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT") ?? "http://localhost:4317"; var resourceBuilder = ResourceBuilder .CreateDefault() diff --git a/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs b/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs index 92414ff3b2..5edc956ccb 100644 --- a/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs +++ b/dotnet/samples/03-workflows/_StartHere/04_MultiModelService/Program.cs @@ -10,13 +10,13 @@ // Create the IChatClients to talk to different services. IChatClient aws = new AmazonBedrockRuntimeClient( - Environment.GetEnvironmentVariable("BEDROCK_ACCESSKEY"!), - Environment.GetEnvironmentVariable("BEDROCK_SECRETACCESSKEY")!, + Environment.GetEnvironmentVariable("BEDROCK_ACCESS_KEY"!), + Environment.GetEnvironmentVariable("BEDROCK_SECRET_KEY")!, Amazon.RegionEndpoint.USEast1) .AsIChatClient("amazon.nova-pro-v1:0"); IChatClient anthropic = new Anthropic.AnthropicClient( - new() { ApiKey = Environment.GetEnvironmentVariable("ANTHROPIC_APIKEY") }) + new() { ApiKey = Environment.GetEnvironmentVariable("ANTHROPIC_API_KEY") }) .AsIChatClient("claude-sonnet-4-20250514"); IChatClient openai = new OpenAI.OpenAIClient( diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs index 13d0852915..b682e638a7 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs @@ -14,11 +14,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs index 5cf8aec044..11e2ec3f49 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs @@ -14,11 +14,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs index 803b15f487..114ec7073f 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs @@ -14,11 +14,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs index eecd6de570..331f435f89 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs @@ -14,11 +14,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs index a06d2d8e63..f1ee396565 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs @@ -18,11 +18,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs index a0767f8860..b371fb3cdc 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs @@ -20,11 +20,11 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md index d1656ba0cc..ddce884497 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md @@ -38,8 +38,8 @@ Update your `local.settings.json` with your Azure OpenAI credentials: { "Values": { "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com/", - "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name", - "AZURE_OPENAI_KEY": "your-api-key-if-not-using-rbac" + "AZURE_OPENAI_DEPLOYMENT_NAME": "your-deployment-name", + "AZURE_OPENAI_API_KEY": "your-api-key-if-not-using-rbac" } } ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs index 3850f967dc..feedf0eb05 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs @@ -26,8 +26,8 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get Redis connection string from environment variable. string redisConnectionString = Environment.GetEnvironmentVariable("REDIS_CONNECTION_STRING") @@ -39,7 +39,7 @@ out int ttlMinutes) ? ttlMinutes : 10; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md index fd13f23ecd..a8607ce11e 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md @@ -239,8 +239,8 @@ These patterns may be overkill for: | `REDIS_CONNECTION_STRING` | Redis connection string | `localhost:6379` | | `REDIS_STREAM_TTL_MINUTES` | How long streams are retained after last write | `10` | | `AZURE_OPENAI_ENDPOINT` | Azure OpenAI endpoint URL | (required) | -| `AZURE_OPENAI_DEPLOYMENT` | Azure OpenAI deployment name | (required) | -| `AZURE_OPENAI_KEY` | API key (optional, uses Azure CLI auth if not set) | (optional) | +| `AZURE_OPENAI_DEPLOYMENT_NAME` | Azure OpenAI deployment name | (required) | +| `AZURE_OPENAI_API_KEY` | API key (optional, uses Azure CLI auth if not set) | (optional) | ## Cleanup diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json new file mode 100644 index 0000000000..71e7ff8dac --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json @@ -0,0 +1,12 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "", + "REDIS_CONNECTION_STRING": "localhost:6379", + "REDIS_STREAM_TTL_MINUTES": "10" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md index 5ac0f6015b..3f52d5efe6 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md @@ -57,18 +57,18 @@ More information on how to configure RBAC permissions for Azure OpenAI can be fo ### Setting an API key for the Azure OpenAI service -As an alternative to configuring Azure RBAC permissions, you can set an API key for the Azure OpenAI service by setting the `AZURE_OPENAI_KEY` environment variable. +As an alternative to configuring Azure RBAC permissions, you can set an API key for the Azure OpenAI service by setting the `AZURE_OPENAI_API_KEY` environment variable. Bash (Linux/macOS/WSL): ```bash -export AZURE_OPENAI_KEY="your-api-key" +export AZURE_OPENAI_API_KEY="your-api-key" ``` PowerShell: ```powershell -$env:AZURE_OPENAI_KEY="your-api-key" +$env:AZURE_OPENAI_API_KEY="your-api-key" ``` ### Start Durable Task Scheduler @@ -110,7 +110,7 @@ Each sample has its own `local.settings.json` file that contains the environment { "Values": { "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com/", - "AZURE_OPENAI_DEPLOYMENT": "your-deployment-name" + "AZURE_OPENAI_DEPLOYMENT_NAME": "your-deployment-name" } } ``` @@ -121,14 +121,14 @@ Alternatively, you can set the environment variables in the command line. ```bash export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/" -export AZURE_OPENAI_DEPLOYMENT="your-deployment-name" +export AZURE_OPENAI_DEPLOYMENT_NAME="your-deployment-name" ``` ### PowerShell ```powershell $env:AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/" -$env:AZURE_OPENAI_DEPLOYMENT="your-deployment-name" +$env:AZURE_OPENAI_DEPLOYMENT_NAME="your-deployment-name" ``` These environment variables, when set, will override the values in the `local.settings.json` file, making it convenient to test the sample without having to update the `local.settings.json` file. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs index 7b54cf7c0a..c331d28ccc 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/01_SingleAgent/Program.cs @@ -16,15 +16,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs index 77af66252c..6af759a62b 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/02_AgentOrchestration_Chaining/Program.cs @@ -20,15 +20,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs index fd7e601f94..714558abc0 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/03_AgentOrchestration_Concurrency/Program.cs @@ -20,15 +20,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs index dfef999613..7b1751f298 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/04_AgentOrchestration_Conditionals/Program.cs @@ -19,15 +19,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs index ec98d55b5a..80c09fee01 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/05_AgentOrchestration_HITL/Program.cs @@ -20,15 +20,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs index 6a8fe08b8d..203edca308 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/06_LongRunningTools/Program.cs @@ -21,15 +21,15 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get DTS connection string from environment variable string dtsConnectionString = Environment.GetEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING") ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs index 9efe28a937..3abc5c8701 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/Program.cs @@ -22,8 +22,8 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Get Redis connection string from environment variable. string redisConnectionString = Environment.GetEnvironmentVariable("REDIS_CONNECTION_STRING") @@ -37,7 +37,7 @@ ?? "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"; // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +string? azureOpenAiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md index 4b887978d0..b93a66191c 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/07_ReliableStreaming/README.md @@ -168,8 +168,8 @@ This sample provides **at-least-once delivery** with the following characteristi | `REDIS_CONNECTION_STRING` | Redis connection string | `localhost:6379` | | `REDIS_STREAM_TTL_MINUTES` | How long streams are retained after last write | `10` | | `AZURE_OPENAI_ENDPOINT` | Azure OpenAI endpoint URL | (required) | -| `AZURE_OPENAI_DEPLOYMENT` | Azure OpenAI deployment name | (required) | -| `AZURE_OPENAI_KEY` | API key (optional, uses Azure CLI auth if not set) | (optional) | +| `AZURE_OPENAI_DEPLOYMENT_NAME` | Azure OpenAI deployment name | (required) | +| `AZURE_OPENAI_API_KEY` | API key (optional, uses Azure CLI auth if not set) | (optional) | ## Cleanup diff --git a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md index bc3a09b3a1..9f52715256 100644 --- a/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/ConsoleApps/README.md @@ -53,18 +53,18 @@ More information on how to configure RBAC permissions for Azure OpenAI can be fo ### Setting an API key for the Azure OpenAI service -As an alternative to configuring Azure RBAC permissions, you can set an API key for the Azure OpenAI service by setting the `AZURE_OPENAI_KEY` environment variable. +As an alternative to configuring Azure RBAC permissions, you can set an API key for the Azure OpenAI service by setting the `AZURE_OPENAI_API_KEY` environment variable. Bash (Linux/macOS/WSL): ```bash -export AZURE_OPENAI_KEY="your-api-key" +export AZURE_OPENAI_API_KEY="your-api-key" ``` PowerShell: ```powershell -$env:AZURE_OPENAI_KEY="your-api-key" +$env:AZURE_OPENAI_API_KEY="your-api-key" ``` ### Start Durable Task Scheduler @@ -85,7 +85,7 @@ Each sample reads configuration from environment variables. You'll need to set t ```bash export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/" -export AZURE_OPENAI_DEPLOYMENT="your-deployment-name" +export AZURE_OPENAI_DEPLOYMENT_NAME="your-deployment-name" ``` ### Running the Console Apps diff --git a/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md index 5a80e0220f..eb233fb8d1 100644 --- a/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md +++ b/dotnet/samples/05-end-to-end/A2AClientServer/A2AClient/README.md @@ -20,7 +20,7 @@ The agent urls are provided as a ` ` delimited list of strings ```powershell cd dotnet/samples/05-end-to-end/A2AClientServer/A2AClient -$env:OPENAI_MODEL="gpt-4o-mini" +$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" $env:OPENAI_API_KEY="" $env:AGENT_URLS="http://localhost:5000/policy;http://localhost:5000/invoice;http://localhost:5000/logistics" ``` diff --git a/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs index bd344c46c8..b8a10ac647 100644 --- a/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs +++ b/dotnet/samples/05-end-to-end/A2AClientServer/A2AServer/Program.cs @@ -36,8 +36,8 @@ .Build(); string? apiKey = configuration["OPENAI_API_KEY"]; -string model = configuration["OPENAI_MODEL"] ?? "gpt-4o-mini"; -string? endpoint = configuration["AZURE_FOUNDRY_PROJECT_ENDPOINT"]; +string model = configuration["OPENAI_CHAT_MODEL_NAME"] ?? "gpt-4o-mini"; +string? endpoint = configuration["AZURE_AI_PROJECT_ENDPOINT"]; var invoiceQueryPlugin = new InvoiceQuery(); IList tools = diff --git a/dotnet/samples/05-end-to-end/A2AClientServer/README.md b/dotnet/samples/05-end-to-end/A2AClientServer/README.md index 04b9968e76..eea3763791 100644 --- a/dotnet/samples/05-end-to-end/A2AClientServer/README.md +++ b/dotnet/samples/05-end-to-end/A2AClientServer/README.md @@ -84,7 +84,7 @@ You must create the agents in an Azure AI Foundry project and then provide the p ``` ```powershell -$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://ai-foundry-your-project.services.ai.azure.com/api/projects/ai-proj-ga-your-project" # Replace with your Foundry Project endpoint +$env:AZURE_AI_PROJECT_ENDPOINT="https://ai-foundry-your-project.services.ai.azure.com/api/projects/ai-proj-ga-your-project" # Replace with your Foundry Project endpoint ``` Use the following commands to run each A2A server diff --git a/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs index c145227062..ff5d1cacd7 100644 --- a/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs +++ b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Program.cs @@ -9,7 +9,7 @@ builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); -string serverUrl = builder.Configuration["SERVER_URL"] ?? "http://localhost:5100"; +string serverUrl = builder.Configuration["AGUI_SERVER_URL"] ?? "http://localhost:5100"; builder.Services.AddHttpClient("aguiserver", httpClient => httpClient.BaseAddress = new Uri(serverUrl)); diff --git a/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json index 348e16bc3b..068f935461 100644 --- a/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json +++ b/dotnet/samples/05-end-to-end/AGUIWebChat/Client/Properties/launchSettings.json @@ -8,7 +8,7 @@ "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", - "SERVER_URL": "http://localhost:5100" + "AGUI_SERVER_URL": "http://localhost:5100" } } } diff --git a/dotnet/samples/05-end-to-end/AGUIWebChat/README.md b/dotnet/samples/05-end-to-end/AGUIWebChat/README.md index bdb8ae25d2..0e42757fa1 100644 --- a/dotnet/samples/05-end-to-end/AGUIWebChat/README.md +++ b/dotnet/samples/05-end-to-end/AGUIWebChat/README.md @@ -89,7 +89,7 @@ The server exposes the agent via the AG-UI protocol at `http://localhost:5100/ag The client (`Client/Program.cs`) configures an `AGUIChatClient` to connect to the server: ```csharp -string serverUrl = builder.Configuration["SERVER_URL"] ?? "http://localhost:5100"; +string serverUrl = builder.Configuration["AGUI_SERVER_URL"] ?? "http://localhost:5100"; builder.Services.AddHttpClient("aguiserver", httpClient => httpClient.BaseAddress = new Uri(serverUrl)); @@ -141,17 +141,17 @@ The client connects to the server URL specified in `Client/Properties/launchSett "http": { "applicationUrl": "http://localhost:5000", "environmentVariables": { - "SERVER_URL": "http://localhost:5100" + "AGUI_SERVER_URL": "http://localhost:5100" } } } } ``` -To change the server URL, modify the `SERVER_URL` environment variable in the client's launch settings or provide it at runtime: +To change the server URL, modify the `AGUI_SERVER_URL` environment variable in the client's launch settings or provide it at runtime: ```powershell -$env:SERVER_URL="http://your-server:5100" +$env:AGUI_SERVER_URL="http://your-server:5100" dotnet run ``` diff --git a/dotnet/src/Shared/IntegrationTests/AnthropicConfiguration.cs b/dotnet/src/Shared/IntegrationTests/AnthropicConfiguration.cs deleted file mode 100644 index 2230be95ed..0000000000 --- a/dotnet/src/Shared/IntegrationTests/AnthropicConfiguration.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace Shared.IntegrationTests; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class AnthropicConfiguration -{ - public string? ServiceId { get; set; } - - public string ChatModelId { get; set; } - - public string ChatReasoningModelId { get; set; } - - public string ApiKey { get; set; } -} diff --git a/dotnet/src/Shared/IntegrationTests/AzureAIConfiguration.cs b/dotnet/src/Shared/IntegrationTests/AzureAIConfiguration.cs deleted file mode 100644 index cfdc7aff7b..0000000000 --- a/dotnet/src/Shared/IntegrationTests/AzureAIConfiguration.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace Shared.IntegrationTests; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class AzureAIConfiguration -{ - public string Endpoint { get; set; } - - public string DeploymentName { get; set; } - - public string BingConnectionId { get; set; } -} diff --git a/dotnet/src/Shared/IntegrationTests/FoundryMemoryConfiguration.cs b/dotnet/src/Shared/IntegrationTests/FoundryMemoryConfiguration.cs deleted file mode 100644 index 957f1bfa4c..0000000000 --- a/dotnet/src/Shared/IntegrationTests/FoundryMemoryConfiguration.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace Shared.IntegrationTests; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class FoundryMemoryConfiguration -{ - public string Endpoint { get; set; } - public string MemoryStoreName { get; set; } - public string? DeploymentName { get; set; } -} diff --git a/dotnet/src/Shared/IntegrationTests/Mem0Configuration.cs b/dotnet/src/Shared/IntegrationTests/Mem0Configuration.cs deleted file mode 100644 index 052a38f113..0000000000 --- a/dotnet/src/Shared/IntegrationTests/Mem0Configuration.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace Shared.IntegrationTests; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class Mem0Configuration -{ - public string ServiceUri { get; set; } - public string ApiKey { get; set; } -} diff --git a/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs b/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs deleted file mode 100644 index 34bc08330e..0000000000 --- a/dotnet/src/Shared/IntegrationTests/OpenAIConfiguration.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace Shared.IntegrationTests; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class OpenAIConfiguration -{ - public string? ServiceId { get; set; } - - public string ChatModelId { get; set; } - - public string ChatReasoningModelId { get; set; } - - public string ApiKey { get; set; } -} diff --git a/dotnet/src/Shared/IntegrationTests/README.md b/dotnet/src/Shared/IntegrationTests/README.md index ea3ed5f3a3..b77a1a2de4 100644 --- a/dotnet/src/Shared/IntegrationTests/README.md +++ b/dotnet/src/Shared/IntegrationTests/README.md @@ -9,3 +9,30 @@ To use this in your project, add the following to your `.csproj` file: true ``` + +## Configuration + +Integration tests use flat environment variable names for configuration. +Use `TestConfiguration.GetValue(key)` or `TestConfiguration.GetRequiredValue(key)` to access values. + +Available keys are defined as constants in `TestSettings.cs`: + +| Key | Description | +|---|---| +| `ANTHROPIC_API_KEY` | API key for Anthropic | +| `ANTHROPIC_CHAT_MODEL_NAME` | Anthropic chat model name | +| `ANTHROPIC_REASONING_MODEL_NAME` | Anthropic reasoning model name | +| `ANTHROPIC_SERVICE_ID` | Anthropic service ID | +| `AZURE_AI_BING_CONNECTION_ID` | Azure AI Bing connection ID | +| `AZURE_AI_MEMORY_STORE_ID` | Azure AI Memory store name | +| `AZURE_AI_MODEL_DEPLOYMENT_NAME` | Azure AI model deployment name | +| `AZURE_AI_PROJECT_ENDPOINT` | Azure AI project endpoint | +| `COPILOTSTUDIO_AGENT_APP_ID` | Copilot Studio agent app ID | +| `COPILOTSTUDIO_DIRECT_CONNECT_URL` | Copilot Studio direct connect URL | +| `COPILOTSTUDIO_TENANT_ID` | Copilot Studio tenant ID | +| `MEM0_API_KEY` | API key for Mem0 | +| `MEM0_ENDPOINT` | Mem0 service endpoint | +| `OPENAI_API_KEY` | API key for OpenAI | +| `OPENAI_CHAT_MODEL_NAME` | OpenAI chat model name | +| `OPENAI_REASONING_MODEL_NAME` | OpenAI reasoning model name | +| `OPENAI_SERVICE_ID` | OpenAI service ID | diff --git a/dotnet/src/Shared/IntegrationTests/TestSettings.cs b/dotnet/src/Shared/IntegrationTests/TestSettings.cs new file mode 100644 index 0000000000..880db9d1cd --- /dev/null +++ b/dotnet/src/Shared/IntegrationTests/TestSettings.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft. All rights reserved. + +namespace Shared.IntegrationTests; + +/// +/// Constants for integration test configuration keys. +/// Values are resolved from environment variables and user secrets. +/// +internal static class TestSettings +{ + // Anthropic + public const string AnthropicApiKey = "ANTHROPIC_API_KEY"; + public const string AnthropicChatModelName = "ANTHROPIC_CHAT_MODEL_NAME"; + public const string AnthropicReasoningModelName = "ANTHROPIC_REASONING_MODEL_NAME"; + public const string AnthropicServiceId = "ANTHROPIC_SERVICE_ID"; + + // Azure AI (Foundry) + public const string AzureAIBingConnectionId = "AZURE_AI_BING_CONNECTION_ID"; + public const string AzureAIMemoryStoreId = "AZURE_AI_MEMORY_STORE_ID"; + public const string AzureAIModelDeploymentName = "AZURE_AI_MODEL_DEPLOYMENT_NAME"; + public const string AzureAIProjectEndpoint = "AZURE_AI_PROJECT_ENDPOINT"; + + // Copilot Studio + public const string CopilotStudioAgentAppId = "COPILOTSTUDIO_AGENT_APP_ID"; + public const string CopilotStudioDirectConnectUrl = "COPILOTSTUDIO_DIRECT_CONNECT_URL"; + public const string CopilotStudioTenantId = "COPILOTSTUDIO_TENANT_ID"; + + // Mem0 + public const string Mem0ApiKey = "MEM0_API_KEY"; + public const string Mem0Endpoint = "MEM0_ENDPOINT"; + + // OpenAI + public const string OpenAIApiKey = "OPENAI_API_KEY"; + public const string OpenAIChatModelName = "OPENAI_CHAT_MODEL_NAME"; + public const string OpenAIReasoningModelName = "OPENAI_REASONING_MODEL_NAME"; + public const string OpenAIServiceId = "OPENAI_SERVICE_ID"; +} diff --git a/dotnet/src/Shared/Workflows/Settings/Application.cs b/dotnet/src/Shared/Workflows/Settings/Application.cs index de8eb51534..e219b0e92d 100644 --- a/dotnet/src/Shared/Workflows/Settings/Application.cs +++ b/dotnet/src/Shared/Workflows/Settings/Application.cs @@ -12,10 +12,9 @@ internal static class Application /// public static class Settings { - public const string FoundryEndpoint = "FOUNDRY_PROJECT_ENDPOINT"; - public const string FoundryModelMini = "FOUNDRY_MODEL_DEPLOYMENT_NAME"; - public const string FoundryModelFull = "FOUNDRY_MEDIA_DEPLOYMENT_NAME"; - public const string FoundryGroundingTool = "FOUNDRY_CONNECTION_GROUNDING_TOOL"; + public const string FoundryEndpoint = "AZURE_AI_PROJECT_ENDPOINT"; + public const string FoundryModel = "AZURE_AI_MODEL_DEPLOYMENT_NAME"; + public const string FoundryGroundingTool = "AZURE_AI_BING_CONNECTION_ID"; } public static string GetInput(string[] args) diff --git a/dotnet/tests/AgentConformance.IntegrationTests/Support/TestConfiguration.cs b/dotnet/tests/AgentConformance.IntegrationTests/Support/TestConfiguration.cs index e56eeff3cb..dc887e3a1b 100644 --- a/dotnet/tests/AgentConformance.IntegrationTests/Support/TestConfiguration.cs +++ b/dotnet/tests/AgentConformance.IntegrationTests/Support/TestConfiguration.cs @@ -11,30 +11,24 @@ namespace AgentConformance.IntegrationTests.Support; public sealed class TestConfiguration { private static readonly IConfiguration s_configuration = new ConfigurationBuilder() - .AddJsonFile(path: "testsettings.json", optional: true) .AddJsonFile(path: "testsettings.development.json", optional: true) .AddEnvironmentVariables() .AddUserSecrets() .Build(); /// - /// Loads the type of configuration using a section name based on the type name. + /// Gets a configuration value by its flat key name. /// - /// The type of config to load. - /// The loaded configuration section of the specified type. - /// Thrown if the configuration section cannot be loaded. - public static T LoadSection() - { - var configType = typeof(T); - var configTypeName = configType.Name; + /// The configuration key. + /// The configuration value, or if not found. + public static string? GetValue(string key) => s_configuration[key]; - const string TrimText = "Configuration"; - if (configTypeName.EndsWith(TrimText, StringComparison.OrdinalIgnoreCase)) - { - configTypeName = configTypeName.Substring(0, configTypeName.Length - TrimText.Length); - } - - return s_configuration.GetRequiredSection(configTypeName).Get() ?? - throw new InvalidOperationException($"Could not load config for {configTypeName}."); - } + /// + /// Gets a required configuration value by its flat key name. + /// + /// The configuration key. + /// The configuration value. + /// Thrown if the configuration value is not found. + public static string GetRequiredValue(string key) => + s_configuration[key] ?? throw new InvalidOperationException($"Configuration key '{key}' is required but was not found."); } diff --git a/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicChatCompletionFixture.cs b/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicChatCompletionFixture.cs index f36cb119d9..16bb97d218 100644 --- a/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicChatCompletionFixture.cs +++ b/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicChatCompletionFixture.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; using System.Linq; @@ -19,7 +19,6 @@ public class AnthropicChatCompletionFixture : IChatClientAgentFixture // All tests for Anthropic are intended to be ran locally as the CI pipeline for Anthropic is not setup. internal const string SkipReason = "Integrations tests for local execution only"; - private static readonly AnthropicConfiguration s_config = TestConfiguration.LoadSection(); private readonly bool _useReasoningModel; private readonly bool _useBeta; @@ -52,7 +51,9 @@ public Task CreateChatClientAgentAsync( string instructions = "You are a helpful assistant.", IList? aiTools = null) { - var anthropicClient = new AnthropicClient() { ApiKey = s_config.ApiKey }; + var anthropicClient = new AnthropicClient() { ApiKey = TestConfiguration.GetRequiredValue(TestSettings.AnthropicApiKey) }; + var chatModelName = TestConfiguration.GetRequiredValue(TestSettings.AnthropicChatModelName); + var reasoningModelName = TestConfiguration.GetRequiredValue(TestSettings.AnthropicReasoningModelName); IChatClient? chatClient = this._useBeta ? anthropicClient @@ -63,7 +64,7 @@ public Task CreateChatClientAgentAsync( => options.RawRepresentationFactory = _ => new Anthropic.Models.Beta.Messages.MessageCreateParams() { - Model = options.ModelId ?? (this._useReasoningModel ? s_config.ChatReasoningModelId : s_config.ChatModelId), + Model = options.ModelId ?? (this._useReasoningModel ? reasoningModelName : chatModelName), MaxTokens = options.MaxOutputTokens ?? 4096, Messages = [], Thinking = this._useReasoningModel @@ -78,7 +79,7 @@ public Task CreateChatClientAgentAsync( => options.RawRepresentationFactory = _ => new Anthropic.Models.Messages.MessageCreateParams() { - Model = options.ModelId ?? (this._useReasoningModel ? s_config.ChatReasoningModelId : s_config.ChatModelId), + Model = options.ModelId ?? (this._useReasoningModel ? reasoningModelName : chatModelName), MaxTokens = options.MaxOutputTokens ?? 4096, Messages = [], Thinking = this._useReasoningModel diff --git a/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicSkillsIntegrationTests.cs b/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicSkillsIntegrationTests.cs index a6a96bd234..50474a1eeb 100644 --- a/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicSkillsIntegrationTests.cs +++ b/dotnet/tests/AnthropicChatCompletion.IntegrationTests/AnthropicSkillsIntegrationTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. using System.Threading.Tasks; using AgentConformance.IntegrationTests.Support; @@ -22,14 +22,12 @@ public sealed class AnthropicSkillsIntegrationTests // All tests for Anthropic are intended to be ran locally as the CI pipeline for Anthropic is not setup. private const string SkipReason = "Integrations tests for local execution only"; - private static readonly AnthropicConfiguration s_config = TestConfiguration.LoadSection(); - [Fact(Skip = SkipReason)] public async Task CreateAgentWithPptxSkillAsync() { // Arrange - AnthropicClient anthropicClient = new() { ApiKey = s_config.ApiKey }; - string model = s_config.ChatModelId; + AnthropicClient anthropicClient = new() { ApiKey = TestConfiguration.GetRequiredValue(TestSettings.AnthropicApiKey) }; + string model = TestConfiguration.GetRequiredValue(TestSettings.AnthropicChatModelName); BetaSkillParams pptxSkill = new() { @@ -57,7 +55,7 @@ public async Task CreateAgentWithPptxSkillAsync() public async Task ListAnthropicManagedSkillsAsync() { // Arrange - AnthropicClient anthropicClient = new() { ApiKey = s_config.ApiKey }; + AnthropicClient anthropicClient = new() { ApiKey = TestConfiguration.GetRequiredValue(TestSettings.AnthropicApiKey) }; // Act SkillListPage skills = await anthropicClient.Beta.Skills.List( diff --git a/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientCreateTests.cs b/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientCreateTests.cs index d70d3d949d..ec4103f6a8 100644 --- a/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientCreateTests.cs +++ b/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientCreateTests.cs @@ -17,8 +17,7 @@ namespace AzureAI.IntegrationTests; public class AIProjectClientCreateTests { - private static readonly AzureAIConfiguration s_config = TestConfiguration.LoadSection(); - private readonly AIProjectClient _client = new(new Uri(s_config.Endpoint), new AzureCliCredential()); + private readonly AIProjectClient _client = new(new Uri(TestConfiguration.GetRequiredValue(TestSettings.AzureAIProjectEndpoint)), new AzureCliCredential()); [Theory] [InlineData("CreateWithChatClientAgentOptionsAsync")] @@ -34,7 +33,7 @@ public async Task CreateAgent_CreatesAgentWithCorrectMetadataAsync(string create var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { Name = AgentName, @@ -43,7 +42,7 @@ public async Task CreateAgent_CreatesAgentWithCorrectMetadataAsync(string create }), "CreateWithFoundryOptionsAsync" => await this._client.CreateAIAgentAsync( name: AgentName, - creationOptions: new AgentVersionCreationOptions(new PromptAgentDefinition(s_config.DeploymentName) { Instructions = AgentInstructions }) { Description = AgentDescription }), + creationOptions: new AgentVersionCreationOptions(new PromptAgentDefinition(TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName)) { Instructions = AgentInstructions }) { Description = AgentDescription }), _ => throw new InvalidOperationException($"Unknown create mechanism: {createMechanism}") }; @@ -101,12 +100,12 @@ You are a helpful agent that can help fetch data from files you know about. var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), name: AgentName, instructions: AgentInstructions, tools: [new HostedFileSearchTool() { Inputs = [new HostedVectorStoreContent(vectorStoreMetadata.Value.Id)] }]), "CreateWithFoundryOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), name: AgentName, instructions: AgentInstructions, tools: [ResponseTool.CreateFileSearchTool(vectorStoreIds: [vectorStoreMetadata.Value.Id]).AsAITool()]), @@ -161,13 +160,13 @@ and report the SECRET_NUMBER value it prints. Respond only with the number. { // Hosted tool path (tools supplied via ChatClientAgentOptions) "CreateWithChatClientAgentOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), name: AgentName, instructions: AgentInstructions, tools: [new HostedCodeInterpreterTool() { Inputs = [new HostedFileContent(uploadedCodeFile.Id)] }]), // Foundry (definitions + resources provided directly) "CreateWithFoundryOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), name: AgentName, instructions: AgentInstructions, tools: [ResponseTool.CreateCodeInterpreterTool(new CodeInterpreterToolContainer(CodeInterpreterToolContainerConfiguration.CreateAutomaticContainerConfiguration([uploadedCodeFile.Id]))).AsAITool()]), @@ -204,7 +203,7 @@ public async Task CreateAgent_CreatesAgentWithAIFunctionToolsAsync(string create ChatClientAgent agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._client.CreateAIAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { Name = AgentName, diff --git a/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientFixture.cs b/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientFixture.cs index a13af9c940..64a8e86c8a 100644 --- a/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientFixture.cs +++ b/dotnet/tests/AzureAI.IntegrationTests/AIProjectClientFixture.cs @@ -18,8 +18,6 @@ namespace AzureAI.IntegrationTests; public class AIProjectClientFixture : IChatClientAgentFixture { - private static readonly AzureAIConfiguration s_config = TestConfiguration.LoadSection(); - private ChatClientAgent _agent = null!; private AIProjectClient _client = null!; @@ -118,14 +116,14 @@ public async Task CreateChatClientAgentAsync( string instructions = "You are a helpful assistant.", IList? aiTools = null) { - return await this._client.CreateAIAgentAsync(GenerateUniqueAgentName(name), model: s_config.DeploymentName, instructions: instructions, tools: aiTools); + return await this._client.CreateAIAgentAsync(GenerateUniqueAgentName(name), model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), instructions: instructions, tools: aiTools); } public async Task CreateChatClientAgentAsync(ChatClientAgentOptions options) { options.Name ??= GenerateUniqueAgentName("HelpfulAssistant"); - return await this._client.CreateAIAgentAsync(model: s_config.DeploymentName, options); + return await this._client.CreateAIAgentAsync(model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options); } public static string GenerateUniqueAgentName(string baseName) => @@ -170,13 +168,13 @@ public Task DisposeAsync() public virtual async Task InitializeAsync() { - this._client = new(new Uri(s_config.Endpoint), new AzureCliCredential()); + this._client = new(new Uri(TestConfiguration.GetRequiredValue(TestSettings.AzureAIProjectEndpoint)), new AzureCliCredential()); this._agent = await this.CreateChatClientAgentAsync(); } public async Task InitializeAsync(ChatClientAgentOptions options) { - this._client = new(new Uri(s_config.Endpoint), new AzureCliCredential()); + this._client = new(new Uri(TestConfiguration.GetRequiredValue(TestSettings.AzureAIProjectEndpoint)), new AzureCliCredential()); this._agent = await this.CreateChatClientAgentAsync(options); } } diff --git a/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentCreateTests.cs b/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentCreateTests.cs index 05b87539da..ab2e1848a5 100644 --- a/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentCreateTests.cs +++ b/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentCreateTests.cs @@ -15,8 +15,7 @@ namespace AzureAIAgentsPersistent.IntegrationTests; public class AzureAIAgentsPersistentCreateTests { - private static readonly AzureAIConfiguration s_config = TestConfiguration.LoadSection(); - private readonly PersistentAgentsClient _persistentAgentsClient = new(s_config.Endpoint, new AzureCliCredential()); + private readonly PersistentAgentsClient _persistentAgentsClient = new(TestConfiguration.GetRequiredValue(TestSettings.AzureAIProjectEndpoint), new AzureCliCredential()); [Theory] [InlineData("CreateWithChatClientAgentOptionsAsync")] @@ -32,7 +31,7 @@ public async Task CreateAgent_CreatesAgentWithCorrectMetadataAsync(string create var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { ChatOptions = new() { Instructions = AgentInstructions }, @@ -40,7 +39,7 @@ public async Task CreateAgent_CreatesAgentWithCorrectMetadataAsync(string create Description = AgentDescription }), "CreateWithFoundryOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), instructions: AgentInstructions, name: AgentName, description: AgentDescription), @@ -99,7 +98,7 @@ You are a helpful agent that can help fetch data from files you know about. var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -109,7 +108,7 @@ You are a helpful agent that can help fetch data from files you know about. } }), "CreateWithFoundryOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), instructions: AgentInstructions, tools: [new FileSearchToolDefinition()], toolResources: new ToolResources() { FileSearch = new([vectorStoreMetadata.Value.Id], null) }), @@ -162,7 +161,7 @@ and report the SECRET_NUMBER value it prints. Respond only with the number. { // Hosted tool path (tools supplied via ChatClientAgentOptions) "CreateWithChatClientAgentOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -172,7 +171,7 @@ and report the SECRET_NUMBER value it prints. Respond only with the number. } }), "CreateWithFoundryOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), instructions: AgentInstructions, tools: [new CodeInterpreterToolDefinition()], toolResources: new ToolResources() { CodeInterpreter = toolResource }), @@ -208,7 +207,7 @@ public async Task CreateAgent_CreatesAgentWithAIFunctionToolsAsync(string create ChatClientAgent agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._persistentAgentsClient.CreateAIAgentAsync( - s_config.DeploymentName, + TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), options: new ChatClientAgentOptions() { ChatOptions = new() diff --git a/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentFixture.cs b/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentFixture.cs index 3e3272d951..5de4192557 100644 --- a/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentFixture.cs +++ b/dotnet/tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistentFixture.cs @@ -15,8 +15,6 @@ namespace AzureAIAgentsPersistent.IntegrationTests; public class AzureAIAgentsPersistentFixture : IChatClientAgentFixture { - private static readonly AzureAIConfiguration s_config = TestConfiguration.LoadSection(); - private ChatClientAgent _agent = null!; private PersistentAgentsClient _persistentAgentsClient = null!; @@ -57,7 +55,7 @@ public async Task CreateChatClientAgentAsync( IList? aiTools = null) { var persistentAgentResponse = await this._persistentAgentsClient.Administration.CreateAgentAsync( - model: s_config.DeploymentName, + model: TestConfiguration.GetRequiredValue(TestSettings.AzureAIModelDeploymentName), name: name, instructions: instructions); @@ -98,7 +96,7 @@ public Task DisposeAsync() public async Task InitializeAsync() { - this._persistentAgentsClient = new(s_config.Endpoint, new AzureCliCredential()); + this._persistentAgentsClient = new(TestConfiguration.GetRequiredValue(TestSettings.AzureAIProjectEndpoint), new AzureCliCredential()); this._agent = await this.CreateChatClientAgentAsync(); } } diff --git a/dotnet/tests/CopilotStudio.IntegrationTests/CopilotStudioFixture.cs b/dotnet/tests/CopilotStudio.IntegrationTests/CopilotStudioFixture.cs index dd5fe46ecc..8dfeba1972 100644 --- a/dotnet/tests/CopilotStudio.IntegrationTests/CopilotStudioFixture.cs +++ b/dotnet/tests/CopilotStudio.IntegrationTests/CopilotStudioFixture.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. using System; using System.Collections.Generic; @@ -13,6 +13,7 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging.Abstractions; +using Shared.IntegrationTests; namespace CopilotStudio.IntegrationTests; @@ -31,10 +32,11 @@ public Task InitializeAsync() { const string CopilotStudioHttpClientName = nameof(CopilotStudioAgent); - var config = TestConfiguration.LoadSection(); - var settings = new CopilotStudioConnectionSettings(config.TenantId, config.AppClientId) + var settings = new CopilotStudioConnectionSettings( + TestConfiguration.GetRequiredValue(TestSettings.CopilotStudioTenantId), + TestConfiguration.GetRequiredValue(TestSettings.CopilotStudioAgentAppId)) { - DirectConnectUrl = config.DirectConnectUrl, + DirectConnectUrl = TestConfiguration.GetRequiredValue(TestSettings.CopilotStudioDirectConnectUrl), }; ServiceCollection services = new(); diff --git a/dotnet/tests/CopilotStudio.IntegrationTests/Support/CopilotStudioAgentConfiguration.cs b/dotnet/tests/CopilotStudio.IntegrationTests/Support/CopilotStudioAgentConfiguration.cs deleted file mode 100644 index 670ed5d706..0000000000 --- a/dotnet/tests/CopilotStudio.IntegrationTests/Support/CopilotStudioAgentConfiguration.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -namespace CopilotStudio.IntegrationTests.Support; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CA1812 // Internal class that is apparently never instantiated. - -internal sealed class CopilotStudioAgentConfiguration -{ - public string DirectConnectUrl { get; set; } - - public string TenantId { get; set; } - - public string AppClientId { get; set; } -} diff --git a/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosChatHistoryProviderTests.cs b/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosChatHistoryProviderTests.cs index 3cac6ff971..a790b19cdd 100644 --- a/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosChatHistoryProviderTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosChatHistoryProviderTests.cs @@ -18,8 +18,8 @@ namespace Microsoft.Agents.AI.CosmosNoSql.UnitTests; /// - Default Mode: Cleans up all test data after each test run (deletes database) /// - Preserve Mode: Keeps containers and data for inspection in Cosmos DB Emulator Data Explorer /// -/// To enable Preserve Mode, set environment variable: COSMOS_PRESERVE_CONTAINERS=true -/// Example: $env:COSMOS_PRESERVE_CONTAINERS="true"; dotnet test +/// To enable Preserve Mode, set environment variable: COSMOSDB_PRESERVE_CONTAINERS=true +/// Example: $env:COSMOSDB_PRESERVE_CONTAINERS="true"; dotnet test /// /// In Preserve Mode, you can view the data in Cosmos DB Emulator Data Explorer at: /// https://localhost:8081/_explorer/index.html @@ -29,12 +29,12 @@ namespace Microsoft.Agents.AI.CosmosNoSql.UnitTests; /// Environment Variable Reference: /// | Variable | Values | Description | /// |----------|--------|-------------| -/// | COSMOS_PRESERVE_CONTAINERS | true / false | Controls whether to preserve test data after completion | +/// | COSMOSDB_PRESERVE_CONTAINERS | true / false | Controls whether to preserve test data after completion | /// /// Usage Examples: -/// - Run all tests in preserve mode: $env:COSMOS_PRESERVE_CONTAINERS="true"; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ -/// - Run specific test category in preserve mode: $env:COSMOS_PRESERVE_CONTAINERS="true"; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ --filter "Category=CosmosDB" -/// - Reset to cleanup mode: $env:COSMOS_PRESERVE_CONTAINERS=""; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ +/// - Run all tests in preserve mode: $env:COSMOSDB_PRESERVE_CONTAINERS="true"; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ +/// - Run specific test category in preserve mode: $env:COSMOSDB_PRESERVE_CONTAINERS="true"; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ --filter "Category=CosmosDB" +/// - Reset to cleanup mode: $env:COSMOSDB_PRESERVE_CONTAINERS=""; dotnet test tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/ /// [Collection("CosmosDB")] public sealed class CosmosChatHistoryProviderTests : IAsyncLifetime, IDisposable @@ -64,8 +64,8 @@ public async Task InitializeAsync() this.SkipIfEmulatorNotAvailable(); // Check environment variable to determine if we should preserve containers - // Set COSMOS_PRESERVE_CONTAINERS=true to keep containers and data for inspection - this._preserveContainer = string.Equals(Environment.GetEnvironmentVariable("COSMOS_PRESERVE_CONTAINERS"), "true", StringComparison.OrdinalIgnoreCase); + // Set COSMOSDB_PRESERVE_CONTAINERS=true to keep containers and data for inspection + this._preserveContainer = string.Equals(Environment.GetEnvironmentVariable("COSMOSDB_PRESERVE_CONTAINERS"), bool.TrueString, StringComparison.OrdinalIgnoreCase); this._connectionString = $"AccountEndpoint={s_emulatorEndpoint};AccountKey={s_emulatorKey}"; @@ -139,9 +139,9 @@ public void Dispose() private void SkipIfEmulatorNotAvailable() { - // In CI: Skip if COSMOS_EMULATOR_AVAILABLE is not set to "true" + // In CI: Skip if COSMOSDB_EMULATOR_AVAILABLE is not set to "true" // Locally: Skip if emulator connection check failed - var ciEmulatorAvailable = string.Equals(Environment.GetEnvironmentVariable("COSMOS_EMULATOR_AVAILABLE"), "true", StringComparison.OrdinalIgnoreCase); + var ciEmulatorAvailable = string.Equals(Environment.GetEnvironmentVariable("COSMOSDB_EMULATOR_AVAILABLE"), bool.TrueString, StringComparison.OrdinalIgnoreCase); Xunit.Skip.If(!ciEmulatorAvailable && !this._emulatorAvailable, "Cosmos DB Emulator is not available"); } diff --git a/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosCheckpointStoreTests.cs b/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosCheckpointStoreTests.cs index 0974045a9d..4fa013b8d1 100644 --- a/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosCheckpointStoreTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/CosmosCheckpointStoreTests.cs @@ -17,8 +17,8 @@ namespace Microsoft.Agents.AI.CosmosNoSql.UnitTests; /// - Default Mode: Cleans up all test data after each test run (deletes database) /// - Preserve Mode: Keeps containers and data for inspection in Cosmos DB Emulator Data Explorer /// -/// To enable Preserve Mode, set environment variable: COSMOS_PRESERVE_CONTAINERS=true -/// Example: $env:COSMOS_PRESERVE_CONTAINERS="true"; dotnet test +/// To enable Preserve Mode, set environment variable: COSMOSDB_PRESERVE_CONTAINERS=true +/// Example: $env:COSMOSDB_PRESERVE_CONTAINERS="true"; dotnet test /// /// In Preserve Mode, you can view the data in Cosmos DB Emulator Data Explorer at: /// https://localhost:8081/_explorer/index.html @@ -61,8 +61,8 @@ public async Task InitializeAsync() this.SkipIfEmulatorNotAvailable(); // Check environment variable to determine if we should preserve containers - // Set COSMOS_PRESERVE_CONTAINERS=true to keep containers and data for inspection - this._preserveContainer = string.Equals(Environment.GetEnvironmentVariable("COSMOS_PRESERVE_CONTAINERS"), "true", StringComparison.OrdinalIgnoreCase); + // Set COSMOSDB_PRESERVE_CONTAINERS=true to keep containers and data for inspection + this._preserveContainer = string.Equals(Environment.GetEnvironmentVariable("COSMOSDB_PRESERVE_CONTAINERS"), bool.TrueString, StringComparison.OrdinalIgnoreCase); this._connectionString = $"AccountEndpoint={s_emulatorEndpoint};AccountKey={s_emulatorKey}"; @@ -120,9 +120,9 @@ public async Task DisposeAsync() private void SkipIfEmulatorNotAvailable() { - // In CI: Skip if COSMOS_EMULATOR_AVAILABLE is not set to "true" + // In CI: Skip if COSMOSDB_EMULATOR_AVAILABLE is not set to "true" // Locally: Skip if emulator connection check failed - var ciEmulatorAvailable = string.Equals(Environment.GetEnvironmentVariable("COSMOS_EMULATOR_AVAILABLE"), "true", StringComparison.OrdinalIgnoreCase); + var ciEmulatorAvailable = string.Equals(Environment.GetEnvironmentVariable("COSMOSDB_EMULATOR_AVAILABLE"), bool.TrueString, StringComparison.OrdinalIgnoreCase); Xunit.Skip.If(!ciEmulatorAvailable && !this._emulatorAvailable, "Cosmos DB Emulator is not available"); } diff --git a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ConsoleAppSamplesValidation.cs b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ConsoleAppSamplesValidation.cs index 254006f94d..d49614868f 100644 --- a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ConsoleAppSamplesValidation.cs +++ b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/ConsoleAppSamplesValidation.cs @@ -26,7 +26,7 @@ public sealed class ConsoleAppSamplesValidation(ITestOutputHelper outputHelper) private static bool s_infrastructureStarted; private static readonly string s_samplesPath = Path.GetFullPath( - Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "Durable", "Agents", "ConsoleApps")); + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "04-hosting", "DurableAgents", "ConsoleApps")); private readonly ITestOutputHelper _outputHelper = outputHelper; @@ -829,8 +829,8 @@ private Process StartConsoleApp(string samplePath, BlockingCollection string openAiEndpoint = s_configuration["AZURE_OPENAI_ENDPOINT"] ?? throw new InvalidOperationException("The required AZURE_OPENAI_ENDPOINT env variable is not set."); - string openAiDeployment = s_configuration["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"] ?? - throw new InvalidOperationException("The required AZURE_OPENAI_CHAT_DEPLOYMENT_NAME env variable is not set."); + string openAiDeployment = s_configuration["AZURE_OPENAI_DEPLOYMENT_NAME"] ?? + throw new InvalidOperationException("The required AZURE_OPENAI_DEPLOYMENT_NAME env variable is not set."); void SetAndLogEnvironmentVariable(string key, string value) { @@ -840,7 +840,7 @@ void SetAndLogEnvironmentVariable(string key, string value) // Set required environment variables for the app SetAndLogEnvironmentVariable("AZURE_OPENAI_ENDPOINT", openAiEndpoint); - SetAndLogEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT", openAiDeployment); + SetAndLogEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME", openAiDeployment); SetAndLogEnvironmentVariable("DURABLE_TASK_SCHEDULER_CONNECTION_STRING", $"Endpoint=http://localhost:{DtsPort};TaskHub={taskHubName};Authentication=None"); SetAndLogEnvironmentVariable("REDIS_CONNECTION_STRING", $"localhost:{RedisPort}"); diff --git a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj index db6aa6d62b..ac4f52e3eb 100644 --- a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/Microsoft.Agents.AI.DurableTask.IntegrationTests.csproj @@ -3,7 +3,6 @@ $(TargetFrameworksCore) enable - b7762d10-e29b-4bb1-8b74-b6d69a667dd4 diff --git a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs index 8022e71119..295277021b 100644 --- a/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs +++ b/dotnet/tests/Microsoft.Agents.AI.DurableTask.IntegrationTests/TestHelper.cs @@ -157,12 +157,12 @@ internal static ChatClient GetAzureOpenAIChatClient(IConfiguration configuration { string azureOpenAiEndpoint = configuration["AZURE_OPENAI_ENDPOINT"] ?? throw new InvalidOperationException("The required AZURE_OPENAI_ENDPOINT env variable is not set."); - string azureOpenAiDeploymentName = configuration["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"] ?? - throw new InvalidOperationException("The required AZURE_OPENAI_CHAT_DEPLOYMENT_NAME env variable is not set."); + string azureOpenAiDeploymentName = configuration["AZURE_OPENAI_DEPLOYMENT_NAME"] ?? + throw new InvalidOperationException("The required AZURE_OPENAI_DEPLOYMENT_NAME env variable is not set."); - // Check if AZURE_OPENAI_KEY is provided for key-based authentication. + // Check if AZURE_OPENAI_API_KEY is provided for key-based authentication. // NOTE: This is not used for automated tests, but can be useful for local development. - string? azureOpenAiKey = configuration["AZURE_OPENAI_KEY"]; + string? azureOpenAiKey = configuration["AZURE_OPENAI_API_KEY"]; AzureOpenAIClient client = !string.IsNullOrEmpty(azureOpenAiKey) ? new AzureOpenAIClient(new Uri(azureOpenAiEndpoint), new AzureKeyCredential(azureOpenAiKey)) diff --git a/dotnet/tests/Microsoft.Agents.AI.DurableTask.UnitTests/Microsoft.Agents.AI.DurableTask.UnitTests.csproj b/dotnet/tests/Microsoft.Agents.AI.DurableTask.UnitTests/Microsoft.Agents.AI.DurableTask.UnitTests.csproj index b0cf00cae1..d6b34bd6b9 100644 --- a/dotnet/tests/Microsoft.Agents.AI.DurableTask.UnitTests/Microsoft.Agents.AI.DurableTask.UnitTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.DurableTask.UnitTests/Microsoft.Agents.AI.DurableTask.UnitTests.csproj @@ -3,7 +3,6 @@ $(TargetFrameworksCore) enable - b7762d10-e29b-4bb1-8b74-b6d69a667dd4 diff --git a/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/FoundryMemoryProviderTests.cs b/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/FoundryMemoryProviderTests.cs index d89001d3b9..4b1838335c 100644 --- a/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/FoundryMemoryProviderTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/FoundryMemoryProviderTests.cs @@ -29,21 +29,21 @@ public sealed class FoundryMemoryProviderTests : IDisposable public FoundryMemoryProviderTests() { IConfigurationRoot configuration = new ConfigurationBuilder() - .AddJsonFile(path: "testsettings.json", optional: true, reloadOnChange: true) .AddJsonFile(path: "testsettings.development.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddUserSecrets(optional: true) .Build(); - var foundrySettings = configuration.GetSection("FoundryMemory").Get(); + var endpoint = configuration[TestSettings.AzureAIProjectEndpoint]; + var memoryStoreName = configuration[TestSettings.AzureAIMemoryStoreId]; + var deploymentName = configuration[TestSettings.AzureAIModelDeploymentName]; - if (foundrySettings is not null && - !string.IsNullOrWhiteSpace(foundrySettings.Endpoint) && - !string.IsNullOrWhiteSpace(foundrySettings.MemoryStoreName)) + if (!string.IsNullOrWhiteSpace(endpoint) && + !string.IsNullOrWhiteSpace(memoryStoreName)) { - this._client = new AIProjectClient(new Uri(foundrySettings.Endpoint), new AzureCliCredential()); - this._memoryStoreName = foundrySettings.MemoryStoreName; - this._deploymentName = foundrySettings.DeploymentName ?? "gpt-4.1-mini"; + this._client = new AIProjectClient(new Uri(endpoint), new AzureCliCredential()); + this._memoryStoreName = memoryStoreName; + this._deploymentName = deploymentName ?? "gpt-4.1-mini"; } } diff --git a/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests.csproj b/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests.csproj index a28fea3490..4bf96a5b35 100644 --- a/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests/Microsoft.Agents.AI.FoundryMemory.IntegrationTests.csproj @@ -12,7 +12,6 @@ - diff --git a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests.csproj b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests.csproj index fb955c3162..010e9c9650 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests.csproj @@ -3,7 +3,6 @@ $(TargetFrameworksCore) enable - b7762d10-e29b-4bb1-8b74-b6d69a667dd4 diff --git a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs index 80eda23613..611d14d8d1 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs @@ -25,14 +25,16 @@ public sealed class SamplesValidation(ITestOutputHelper outputHelper) : IAsyncLi private static readonly HttpClient s_sharedHttpClient = new(); private static readonly IConfiguration s_configuration = new ConfigurationBuilder() - .AddUserSecrets(Assembly.GetExecutingAssembly()) .AddEnvironmentVariables() + .AddUserSecrets(Assembly.GetExecutingAssembly()) .Build(); private static bool s_infrastructureStarted; private static readonly TimeSpan s_orchestrationTimeout = TimeSpan.FromMinutes(1); - private static readonly string s_samplesPath = Path.GetFullPath( - Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "Durable", "Agents", "AzureFunctions")); + private static readonly string s_samplesGetStartedPath = Path.GetFullPath( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "01-get-started")); + private static readonly string s_samplesHostingPath = Path.GetFullPath( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "04-hosting", "DurableAgents", "AzureFunctions")); private readonly ITestOutputHelper _outputHelper = outputHelper; @@ -54,7 +56,7 @@ async Task IAsyncLifetime.DisposeAsync() [Fact] public async Task SingleAgentSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "01_SingleAgent"); + string samplePath = Path.Combine(s_samplesGetStartedPath, "06_host_your_agent"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri startUri = new($"http://localhost:{AzureFunctionsPort}/api/agents/Joker/run"); @@ -99,7 +101,7 @@ await this.WaitForConditionAsync( [Fact] public async Task SingleAgentOrchestrationChainingSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "02_AgentOrchestration_Chaining"); + string samplePath = Path.Combine(s_samplesHostingPath, "01_AgentOrchestration_Chaining"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri startUri = new($"http://localhost:{AzureFunctionsPort}/api/singleagent/run"); @@ -142,7 +144,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task MultiAgentOrchestrationConcurrentSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "03_AgentOrchestration_Concurrency"); + string samplePath = Path.Combine(s_samplesHostingPath, "02_AgentOrchestration_Concurrency"); await this.RunSampleTestAsync(samplePath, async (logs) => { // Start the multi-agent orchestration @@ -192,7 +194,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task MultiAgentOrchestrationConditionalsSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "04_AgentOrchestration_Conditionals"); + string samplePath = Path.Combine(s_samplesHostingPath, "03_AgentOrchestration_Conditionals"); await this.RunSampleTestAsync(samplePath, async (logs) => { // Test with legitimate email @@ -210,7 +212,7 @@ await this.TestSpamDetectionAsync("email-002", [Fact] public async Task SingleAgentOrchestrationHITLSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "05_AgentOrchestration_HITL"); + string samplePath = Path.Combine(s_samplesHostingPath, "04_AgentOrchestration_HITL"); await this.RunSampleTestAsync(samplePath, async (logs) => { @@ -266,7 +268,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task LongRunningToolsSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "06_LongRunningTools"); + string samplePath = Path.Combine(s_samplesHostingPath, "05_LongRunningTools"); await this.RunSampleTestAsync(samplePath, async (logs) => { @@ -356,7 +358,7 @@ await this.WaitForConditionAsync( [Fact] public async Task AgentAsMcpToolAsync() { - string samplePath = Path.Combine(s_samplesPath, "07_AgentAsMcpTool"); + string samplePath = Path.Combine(s_samplesHostingPath, "06_AgentAsMcpTool"); await this.RunSampleTestAsync(samplePath, async (logs) => { IClientTransport clientTransport = new HttpClientTransport(new() @@ -396,7 +398,7 @@ await this.WaitForConditionAsync( [Fact] public async Task ReliableStreamingSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesPath, "08_ReliableStreaming"); + string samplePath = Path.Combine(s_samplesHostingPath, "07_ReliableStreaming"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri createUri = new($"http://localhost:{AzureFunctionsPort}/api/agent/create"); @@ -826,12 +828,12 @@ private Process StartFunctionApp(string samplePath, List logs) string openAiEndpoint = s_configuration["AZURE_OPENAI_ENDPOINT"] ?? throw new InvalidOperationException("The required AZURE_OPENAI_ENDPOINT env variable is not set."); - string openAiDeployment = s_configuration["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"] ?? - throw new InvalidOperationException("The required AZURE_OPENAI_CHAT_DEPLOYMENT_NAME env variable is not set."); + string openAiDeployment = s_configuration["AZURE_OPENAI_DEPLOYMENT_NAME"] ?? + throw new InvalidOperationException("The required AZURE_OPENAI_DEPLOYMENT_NAME env variable is not set."); // Set required environment variables for the function app (see local.settings.json for required settings) startInfo.EnvironmentVariables["AZURE_OPENAI_ENDPOINT"] = openAiEndpoint; - startInfo.EnvironmentVariables["AZURE_OPENAI_DEPLOYMENT"] = openAiDeployment; + startInfo.EnvironmentVariables["AZURE_OPENAI_DEPLOYMENT_NAME"] = openAiDeployment; startInfo.EnvironmentVariables["DURABLE_TASK_SCHEDULER_CONNECTION_STRING"] = $"Endpoint=http://localhost:{DtsPort};TaskHub=default;Authentication=None"; startInfo.EnvironmentVariables["AzureWebJobsStorage"] = "UseDevelopmentStorage=true"; diff --git a/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Mem0ProviderTests.cs b/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Mem0ProviderTests.cs index 72e9f6bdff..f46ca4b651 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Mem0ProviderTests.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Mem0ProviderTests.cs @@ -27,19 +27,20 @@ public sealed class Mem0ProviderTests : IDisposable public Mem0ProviderTests() { IConfigurationRoot configuration = new ConfigurationBuilder() - .AddJsonFile(path: "testsettings.json", optional: true, reloadOnChange: true) .AddJsonFile(path: "testsettings.development.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddUserSecrets(optional: true) .Build(); - var mem0Settings = configuration.GetSection("Mem0").Get(); + var serviceUri = configuration[TestSettings.Mem0Endpoint]; + var apiKey = configuration[TestSettings.Mem0ApiKey]; + this._httpClient = new HttpClient(); - if (mem0Settings is not null && !string.IsNullOrWhiteSpace(mem0Settings.ServiceUri) && !string.IsNullOrWhiteSpace(mem0Settings.ApiKey)) + if (!string.IsNullOrWhiteSpace(serviceUri) && !string.IsNullOrWhiteSpace(apiKey)) { - this._httpClient.BaseAddress = new Uri(mem0Settings.ServiceUri); - this._httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", mem0Settings.ApiKey); + this._httpClient.BaseAddress = new Uri(serviceUri); + this._httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", apiKey); } } diff --git a/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Microsoft.Agents.AI.Mem0.IntegrationTests.csproj b/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Microsoft.Agents.AI.Mem0.IntegrationTests.csproj index 99b028963a..330671825f 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Microsoft.Agents.AI.Mem0.IntegrationTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Microsoft.Agents.AI.Mem0.IntegrationTests.csproj @@ -10,7 +10,6 @@ - diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/AgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/AgentProvider.cs index 96795cc6a4..a4198d3a4c 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/AgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/AgentProvider.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Azure.AI.Projects.OpenAI; using Microsoft.Extensions.Configuration; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -19,14 +20,6 @@ public static class Names public const string Vision = "VISION"; } - public static class Settings - { - public const string FoundryEndpoint = "FOUNDRY_PROJECT_ENDPOINT"; - public const string FoundryModelMini = "FOUNDRY_MODEL_DEPLOYMENT_NAME"; - public const string FoundryModelFull = "FOUNDRY_MEDIA_DEPLOYMENT_NAME"; - public const string FoundryGroundingTool = "FOUNDRY_CONNECTION_GROUNDING_TOOL"; - } - public static AgentProvider Create(IConfiguration configuration, string providerType) => providerType.ToUpperInvariant() switch { @@ -40,7 +33,7 @@ public static AgentProvider Create(IConfiguration configuration, string provider public async ValueTask CreateAgentsAsync() { - Uri foundryEndpoint = new(this.GetSetting(Settings.FoundryEndpoint)); + Uri foundryEndpoint = new(this.GetSetting(TestSettings.AzureAIProjectEndpoint)); await foreach (AgentVersion agent in this.CreateAgentsAsync(foundryEndpoint)) { diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/FunctionToolAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/FunctionToolAgentProvider.cs index 4ac24c440a..8198618b65 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/FunctionToolAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/FunctionToolAgentProvider.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Configuration; using OpenAI.Responses; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -36,7 +37,7 @@ await aiProjectClient.CreateAgentAsync( private PromptAgentDefinition DefineMenuAgent(AIFunction[] functions) { PromptAgentDefinition agentDefinition = - new(this.GetSetting(Settings.FoundryModelMini)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MarketingAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MarketingAgentProvider.cs index a983794759..f84a40ae23 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MarketingAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MarketingAgentProvider.cs @@ -7,6 +7,7 @@ using Azure.Identity; using Microsoft.Extensions.Configuration; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -36,7 +37,7 @@ await aiProjectClient.CreateAgentAsync( } private PromptAgentDefinition DefineAnalystAgent() => - new(this.GetSetting(Settings.FoundryModelFull)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ @@ -54,7 +55,7 @@ private PromptAgentDefinition DefineAnalystAgent() => }; private PromptAgentDefinition DefineWriterAgent() => - new(this.GetSetting(Settings.FoundryModelFull)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ @@ -65,7 +66,7 @@ Output should be short (around 150 words), output just the copy as a single text }; private PromptAgentDefinition DefineEditorAgent() => - new(this.GetSetting(Settings.FoundryModelFull)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MathChatAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MathChatAgentProvider.cs index 27cdca3515..92cea7d76a 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MathChatAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/MathChatAgentProvider.cs @@ -7,6 +7,7 @@ using Azure.Identity; using Microsoft.Extensions.Configuration; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -30,7 +31,7 @@ await aiProjectClient.CreateAgentAsync( } private PromptAgentDefinition DefineStudentAgent() => - new(this.GetSetting(Settings.FoundryModelMini)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ @@ -42,7 +43,7 @@ You have the math-skills of a 6th grader. }; private PromptAgentDefinition DefineTeacherAgent() => - new(this.GetSetting(Settings.FoundryModelMini)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/PoemAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/PoemAgentProvider.cs index 9706c6227c..8882709a03 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/PoemAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/PoemAgentProvider.cs @@ -7,6 +7,7 @@ using Azure.Identity; using Microsoft.Extensions.Configuration; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -24,7 +25,7 @@ await aiProjectClient.CreateAgentAsync( } private PromptAgentDefinition DefinePoemAgent() => - new(this.GetSetting(Settings.FoundryModelMini)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/TestAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/TestAgentProvider.cs index 6cff2c15a0..03b201d440 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/TestAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/TestAgentProvider.cs @@ -7,6 +7,7 @@ using Azure.Identity; using Microsoft.Extensions.Configuration; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -24,5 +25,5 @@ await aiProjectClient.CreateAgentAsync( } private PromptAgentDefinition DefineMenuAgent() => - new(this.GetSetting(Settings.FoundryModelFull)); + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)); } diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/VisionAgentProvider.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/VisionAgentProvider.cs index d9557bd8f9..1c09ea9247 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/VisionAgentProvider.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Agents/VisionAgentProvider.cs @@ -7,6 +7,7 @@ using Azure.Identity; using Microsoft.Extensions.Configuration; using Shared.Foundry; +using Shared.IntegrationTests; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Agents; @@ -24,7 +25,7 @@ await aiProjectClient.CreateAgentAsync( } private PromptAgentDefinition DefineVisionAgent() => - new(this.GetSetting(Settings.FoundryModelFull)) + new(this.GetSetting(TestSettings.AzureAIModelDeploymentName)) { Instructions = """ diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/IntegrationTest.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/IntegrationTest.cs index 662575cdf4..6eaa4391d9 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/IntegrationTest.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/IntegrationTest.cs @@ -10,6 +10,7 @@ using Microsoft.Agents.ObjectModel; using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; +using Shared.IntegrationTests; using Xunit.Abstractions; namespace Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.Framework; @@ -30,8 +31,8 @@ protected IntegrationTest(ITestOutputHelper output) this.Output = new TestOutputAdapter(output); this.TestEndpoint = new Uri( - this.Configuration?[AgentProvider.Settings.FoundryEndpoint] ?? - throw new InvalidOperationException($"Undefined configuration setting: {AgentProvider.Settings.FoundryEndpoint}")); + this.Configuration?[TestSettings.AzureAIProjectEndpoint] ?? + throw new InvalidOperationException($"Undefined configuration setting: {TestSettings.AzureAIProjectEndpoint}")); Console.SetOut(this.Output); SetProduct(); } diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.csproj b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.csproj index 309a590b83..163cca681b 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.csproj +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.csproj @@ -16,7 +16,6 @@ - diff --git a/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantClientExtensionsTests.cs b/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantClientExtensionsTests.cs index 02f5f36a76..2e92cc6d42 100644 --- a/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantClientExtensionsTests.cs +++ b/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantClientExtensionsTests.cs @@ -19,9 +19,8 @@ namespace OpenAIAssistant.IntegrationTests; public class OpenAIAssistantClientExtensionsTests { - private static readonly OpenAIConfiguration s_config = TestConfiguration.LoadSection(); - private readonly AssistantClient _assistantClient = new OpenAIClient(s_config.ApiKey).GetAssistantClient(); - private readonly OpenAIFileClient _fileClient = new OpenAIClient(s_config.ApiKey).GetOpenAIFileClient(); + private readonly AssistantClient _assistantClient = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)).GetAssistantClient(); + private readonly OpenAIFileClient _fileClient = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)).GetOpenAIFileClient(); [Theory] [InlineData("CreateWithChatClientAgentOptionsAsync")] @@ -39,7 +38,7 @@ public async Task CreateAIAgentAsync_WithAIFunctionTool_InvokesFunctionAsync(str var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -49,7 +48,7 @@ public async Task CreateAIAgentAsync_WithAIFunctionTool_InvokesFunctionAsync(str } }), "CreateWithChatClientAgentOptionsSync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -59,7 +58,7 @@ public async Task CreateAIAgentAsync_WithAIFunctionTool_InvokesFunctionAsync(str } }), "CreateWithParamsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), instructions: AgentInstructions, tools: [weatherFunction]), _ => throw new InvalidOperationException($"Unknown create mechanism: {createMechanism}") @@ -106,7 +105,7 @@ public async Task CreateAIAgentAsync_WithHostedCodeInterpreter_RunsCodeAsync(str var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -116,7 +115,7 @@ public async Task CreateAIAgentAsync_WithHostedCodeInterpreter_RunsCodeAsync(str } }), "CreateWithChatClientAgentOptionsSync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -126,7 +125,7 @@ public async Task CreateAIAgentAsync_WithHostedCodeInterpreter_RunsCodeAsync(str } }), "CreateWithParamsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), instructions: Instructions, tools: [codeInterpreterTool]), _ => throw new InvalidOperationException($"Unknown create mechanism: {createMechanism}") @@ -168,7 +167,7 @@ You are a helpful agent that can help fetch data from files you know about. string uploadedFileId = uploadResult.Value.Id; // Create a vector store backing the file search (HostedFileSearchTool requires a vector store id). - var vectorStoreClient = new OpenAIClient(s_config.ApiKey).GetVectorStoreClient(); + var vectorStoreClient = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)).GetVectorStoreClient(); var vectorStoreCreate = await vectorStoreClient.CreateVectorStoreAsync(options: new VectorStoreCreationOptions() { Name = "WordCodeLookup_VectorStore", @@ -184,7 +183,7 @@ You are a helpful agent that can help fetch data from files you know about. var agent = createMechanism switch { "CreateWithChatClientAgentOptionsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -194,7 +193,7 @@ You are a helpful agent that can help fetch data from files you know about. } }), "CreateWithChatClientAgentOptionsSync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), options: new ChatClientAgentOptions() { ChatOptions = new() @@ -204,7 +203,7 @@ You are a helpful agent that can help fetch data from files you know about. } }), "CreateWithParamsAsync" => await this._assistantClient.CreateAIAgentAsync( - model: s_config.ChatModelId!, + model: TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), instructions: Instructions, tools: [fileSearchTool]), _ => throw new InvalidOperationException($"Unknown create mechanism: {createMechanism}") diff --git a/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantFixture.cs b/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantFixture.cs index bb58f09fb4..b2ae9b81e8 100644 --- a/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantFixture.cs +++ b/dotnet/tests/OpenAIAssistant.IntegrationTests/OpenAIAssistantFixture.cs @@ -14,8 +14,6 @@ namespace OpenAIAssistant.IntegrationTests; public class OpenAIAssistantFixture : IChatClientAgentFixture { - private static readonly OpenAIConfiguration s_config = TestConfiguration.LoadSection(); - private AssistantClient? _assistantClient; private ChatClientAgent _agent = null!; @@ -49,7 +47,7 @@ public async Task CreateChatClientAgentAsync( { var assistant = await this._assistantClient!.CreateAssistantAsync( - s_config.ChatModelId!, + TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName), new AssistantCreationOptions() { Name = name, @@ -81,7 +79,7 @@ public Task DeleteSessionAsync(AgentSession session) public async Task InitializeAsync() { - var client = new OpenAIClient(s_config.ApiKey); + var client = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)); this._assistantClient = client.GetAssistantClient(); this._agent = await this.CreateChatClientAgentAsync(); diff --git a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs index 96a9a17ae8..b8a9388b27 100644 --- a/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs +++ b/dotnet/tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletionFixture.cs @@ -14,7 +14,6 @@ namespace OpenAIChatCompletion.IntegrationTests; public class OpenAIChatCompletionFixture : IChatClientAgentFixture { - private static readonly OpenAIConfiguration s_config = TestConfiguration.LoadSection(); private readonly bool _useReasoningModel; private ChatClientAgent _agent = null!; @@ -45,8 +44,8 @@ public Task CreateChatClientAgentAsync( string instructions = "You are a helpful assistant.", IList? aiTools = null) { - var chatClient = new OpenAIClient(s_config.ApiKey) - .GetChatClient(this._useReasoningModel ? s_config.ChatReasoningModelId : s_config.ChatModelId) + var chatClient = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)) + .GetChatClient(this._useReasoningModel ? TestConfiguration.GetRequiredValue(TestSettings.OpenAIReasoningModelName) : TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName)) .AsIChatClient(); return Task.FromResult(new ChatClientAgent(chatClient, options: new() diff --git a/dotnet/tests/OpenAIResponse.IntegrationTests/OpenAIResponseFixture.cs b/dotnet/tests/OpenAIResponse.IntegrationTests/OpenAIResponseFixture.cs index e36f8990f6..515703c21c 100644 --- a/dotnet/tests/OpenAIResponse.IntegrationTests/OpenAIResponseFixture.cs +++ b/dotnet/tests/OpenAIResponse.IntegrationTests/OpenAIResponseFixture.cs @@ -16,8 +16,6 @@ namespace ResponseResult.IntegrationTests; public class OpenAIResponseFixture(bool store) : IChatClientAgentFixture { - private static readonly OpenAIConfiguration s_config = TestConfiguration.LoadSection(); - private ResponsesClient _openAIResponseClient = null!; private ChatClientAgent _agent = null!; @@ -98,8 +96,8 @@ public Task DeleteSessionAsync(AgentSession session) => public async Task InitializeAsync() { - this._openAIResponseClient = new OpenAIClient(s_config.ApiKey) - .GetResponsesClient(s_config.ChatModelId); + this._openAIResponseClient = new OpenAIClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIApiKey)) + .GetResponsesClient(TestConfiguration.GetRequiredValue(TestSettings.OpenAIChatModelName)); this._agent = await this.CreateChatClientAgentAsync(); } From 5e80afddf99275fbc7247e2e5e3e6265537cc82e Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:18:07 -0800 Subject: [PATCH 27/36] .NET: Restore AzureFunctions index parity with ConsoleApps under DurableAgents samples (#4221) --- dotnet/agent-framework-dotnet.slnx | 15 ++-- .../01_SingleAgent/01_SingleAgent.csproj | 42 +++++++++ .../AzureFunctions/01_SingleAgent/Program.cs | 42 +++++++++ .../AzureFunctions/01_SingleAgent/README.md | 89 +++++++++++++++++++ .../AzureFunctions/01_SingleAgent/demo.http | 8 ++ .../host.json | 0 .../local.settings.json | 0 .../02_AgentOrchestration_Chaining.csproj} | 0 .../FunctionTriggers.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 .../local.settings.json | 0 .../03_AgentOrchestration_Concurrency.csproj} | 0 .../FunctionTriggers.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 .../local.settings.json | 0 ...04_AgentOrchestration_Conditionals.csproj} | 0 .../FunctionTriggers.cs | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 .../local.settings.json | 0 .../05_AgentOrchestration_HITL.csproj} | 0 .../FunctionTriggers.cs | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 0 .../demo.http | 0 .../host.json | 0 .../local.settings.json | 0 .../06_LongRunningTools.csproj} | 0 .../FunctionTriggers.cs | 0 .../Models.cs | 0 .../Program.cs | 0 .../README.md | 4 +- .../Tools.cs | 0 .../demo.http | 0 .../06_LongRunningTools/host.json | 20 +++++ .../local.settings.json | 0 .../07_AgentAsMcpTool.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../host.json | 0 .../07_AgentAsMcpTool/local.settings.json | 10 +++ .../08_ReliableStreaming.csproj} | 0 .../FunctionTriggers.cs | 0 .../Program.cs | 0 .../README.md | 0 .../RedisStreamResponseHandler.cs | 0 .../Tools.cs | 0 .../host.json | 0 .../local.settings.json | 0 .../DurableAgents/AzureFunctions/README.md | 21 ++--- .../SamplesValidation.cs | 20 ++--- 61 files changed, 240 insertions(+), 33 deletions(-) create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/README.md create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/demo.http rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 01_SingleAgent}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 01_SingleAgent}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj => 02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 02_AgentOrchestration_Chaining}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 02_AgentOrchestration_Chaining}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 02_AgentOrchestration_Chaining}/README.md (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{01_AgentOrchestration_Chaining => 02_AgentOrchestration_Chaining}/demo.http (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 02_AgentOrchestration_Chaining}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 02_AgentOrchestration_Chaining}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj => 03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 03_AgentOrchestration_Concurrency}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 03_AgentOrchestration_Concurrency}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 03_AgentOrchestration_Concurrency}/README.md (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{02_AgentOrchestration_Concurrency => 03_AgentOrchestration_Concurrency}/demo.http (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 03_AgentOrchestration_Concurrency}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 03_AgentOrchestration_Concurrency}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj => 04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 04_AgentOrchestration_Conditionals}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 04_AgentOrchestration_Conditionals}/Models.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 04_AgentOrchestration_Conditionals}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 04_AgentOrchestration_Conditionals}/README.md (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{03_AgentOrchestration_Conditionals => 04_AgentOrchestration_Conditionals}/demo.http (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 04_AgentOrchestration_Conditionals}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 04_AgentOrchestration_Conditionals}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj => 05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 05_AgentOrchestration_HITL}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 05_AgentOrchestration_HITL}/Models.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 05_AgentOrchestration_HITL}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 05_AgentOrchestration_HITL}/README.md (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{04_AgentOrchestration_HITL => 05_AgentOrchestration_HITL}/demo.http (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 05_AgentOrchestration_HITL}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 05_AgentOrchestration_HITL}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools/05_LongRunningTools.csproj => 06_LongRunningTools/06_LongRunningTools.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/Models.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/README.md (97%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/Tools.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{05_LongRunningTools => 06_LongRunningTools}/demo.http (100%) create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/host.json rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{06_AgentAsMcpTool => 06_LongRunningTools}/local.settings.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{06_AgentAsMcpTool/06_AgentAsMcpTool.csproj => 07_AgentAsMcpTool/07_AgentAsMcpTool.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{06_AgentAsMcpTool => 07_AgentAsMcpTool}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{06_AgentAsMcpTool => 07_AgentAsMcpTool}/README.md (98%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{06_AgentAsMcpTool => 07_AgentAsMcpTool}/host.json (100%) create mode 100644 dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/local.settings.json rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming/07_ReliableStreaming.csproj => 08_ReliableStreaming/08_ReliableStreaming.csproj} (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/FunctionTriggers.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/Program.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/README.md (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/RedisStreamResponseHandler.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/Tools.cs (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/host.json (100%) rename dotnet/samples/04-hosting/DurableAgents/AzureFunctions/{07_ReliableStreaming => 08_ReliableStreaming}/local.settings.json (100%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 528b3f1be0..0d8405f285 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -233,13 +233,14 @@ - - - - - - - + + + + + + + + diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj new file mode 100644 index 0000000000..0c0e4f7fe0 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/01_SingleAgent.csproj @@ -0,0 +1,42 @@ + + + net10.0 + v4 + Exe + enable + enable + + SingleAgent + SingleAgent + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs new file mode 100644 index 0000000000..6b67452dff --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft. All rights reserved. + +#pragma warning disable IDE0002 // Simplify Member Access + +using Azure; +using Azure.AI.OpenAI; +using Azure.Identity; +using Microsoft.Agents.AI; +using Microsoft.Agents.AI.Hosting.AzureFunctions; +using Microsoft.Azure.Functions.Worker.Builder; +using Microsoft.Extensions.Hosting; +using OpenAI.Chat; + +// Get the Azure OpenAI endpoint and deployment name from environment variables. +string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); + +// Use Azure Key Credential if provided, otherwise use Azure CLI Credential. +string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); +// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. +// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid +// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. +AzureOpenAIClient client = !string.IsNullOrEmpty(azureOpenAiKey) + ? new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(azureOpenAiKey)) + : new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); + +// Set up an AI agent following the standard Microsoft Agent Framework pattern. +const string JokerName = "Joker"; +const string JokerInstructions = "You are good at telling jokes."; + +AIAgent agent = client.GetChatClient(deploymentName).AsAIAgent(JokerInstructions, JokerName); + +// Configure the function app to host the AI agent. +// This will automatically generate HTTP API endpoints for the agent. +using IHost app = FunctionsApplication + .CreateBuilder(args) + .ConfigureFunctionsWebApplication() + .ConfigureDurableAgents(options => options.AddAIAgent(agent, timeToLive: TimeSpan.FromHours(1))) + .Build(); +app.Run(); diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/README.md new file mode 100644 index 0000000000..d4ac968978 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/README.md @@ -0,0 +1,89 @@ +# Single Agent Sample + +This sample demonstrates how to use the Durable Agent Framework (DAFx) to create a simple Azure Functions app that hosts a single AI agent and provides direct HTTP API access for interactive conversations. + +## Key Concepts Demonstrated + +- Using the Microsoft Agent Framework to define a simple AI agent with a name and instructions. +- Registering agents with the Function app and running them using HTTP. +- Conversation management (via session IDs) for isolated interactions. + +## Environment Setup + +See the [README.md](../README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. + +## Running the Sample + +With the environment setup and function app running, you can test the sample by sending an HTTP request to the agent endpoint. + +You can use the `demo.http` file to send a message to the agent, or a command line tool like `curl` as shown below: + +Bash (Linux/macOS/WSL): + +```bash +curl -X POST http://localhost:7071/api/agents/Joker/run \ + -H "Content-Type: text/plain" \ + -d "Tell me a joke about a pirate." +``` + +PowerShell: + +```powershell +Invoke-RestMethod -Method Post ` + -Uri http://localhost:7071/api/agents/Joker/run ` + -ContentType text/plain ` + -Body "Tell me a joke about a pirate." +``` + +You can also send JSON requests: + +```bash +curl -X POST http://localhost:7071/api/agents/Joker/run \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -d '{"message": "Tell me a joke about a pirate."}' +``` + +To continue a conversation, include the `thread_id` in the query string or JSON body: + +```bash +curl -X POST "http://localhost:7071/api/agents/Joker/run?thread_id=your-thread-id" \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -d '{"message": "Tell me another one."}' +``` + +The response from the agent will be displayed in the terminal where you ran `func start`. The expected `text/plain` output will look something like: + +```text +Why don't pirates ever learn the alphabet? Because they always get stuck at "C"! +``` + +The expected `application/json` output will look something like: + +```json +{ + "status": 200, + "thread_id": "ee6e47a0-f24b-40b1-ade8-16fcebb9eb40", + "response": { + "Messages": [ + { + "AuthorName": "Joker", + "CreatedAt": "2025-11-11T12:00:00.0000000Z", + "Role": "assistant", + "Contents": [ + { + "Type": "text", + "Text": "Why don't pirates ever learn the alphabet? Because they always get stuck at 'C'!" + } + ] + } + ], + "Usage": { + "InputTokenCount": 78, + "OutputTokenCount": 36, + "TotalTokenCount": 114 + } + } +} +``` diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/demo.http new file mode 100644 index 0000000000..3b741adf31 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/demo.http @@ -0,0 +1,8 @@ +# Default endpoint address for local testing +@authority=http://localhost:7071 + +### Prompt the agent +POST {{authority}}/api/agents/Joker/run +Content-Type: text/plain + +Tell me a joke about a pirate. diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/01_AgentOrchestration_Chaining.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/02_AgentOrchestration_Chaining.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/README.md similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/README.md diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/demo.http similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_AgentOrchestration_Chaining/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/demo.http diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Chaining/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/02_AgentOrchestration_Concurrency.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/03_AgentOrchestration_Concurrency.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/README.md similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/README.md diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/demo.http similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/02_AgentOrchestration_Concurrency/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/demo.http diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Concurrency/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/03_AgentOrchestration_Conditionals.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/04_AgentOrchestration_Conditionals.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/Models.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/Models.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/README.md similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/README.md diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/demo.http similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/03_AgentOrchestration_Conditionals/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/demo.http diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_Conditionals/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/04_AgentOrchestration_HITL.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/05_AgentOrchestration_HITL.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/Models.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/Models.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/README.md similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/README.md diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/demo.http similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/04_AgentOrchestration_HITL/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/demo.http diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_AgentOrchestration_HITL/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/05_LongRunningTools.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/06_LongRunningTools.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/05_LongRunningTools.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/06_LongRunningTools.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Models.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Models.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Models.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Models.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/README.md similarity index 97% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/README.md index 517dc4d46f..54ed85060b 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/README.md @@ -1,10 +1,10 @@ # Long Running Tools Sample -This sample demonstrates how to use the Durable Agent Framework (DAFx) to create agents with long running tools. This sample builds on the [04_AgentOrchestration_HITL](../04_AgentOrchestration_HITL) sample by adding a publisher agent that can start and manage content generation workflows. A key difference is that the publisher agent knows the IDs of the workflows it starts, so it can check the status of the workflows and approve or reject them without being explicitly given the context (instance IDs, etc). +This sample demonstrates how to use the Durable Agent Framework (DAFx) to create agents with long running tools. This sample builds on the [05_AgentOrchestration_HITL](../05_AgentOrchestration_HITL) sample by adding a publisher agent that can start and manage content generation workflows. A key difference is that the publisher agent knows the IDs of the workflows it starts, so it can check the status of the workflows and approve or reject them without being explicitly given the context (instance IDs, etc). ## Key Concepts Demonstrated -The same key concepts as the [04_AgentOrchestration_HITL](../04_AgentOrchestration_HITL) sample are demonstrated, but with the following additional concepts: +The same key concepts as the [05_AgentOrchestration_HITL](../05_AgentOrchestration_HITL) sample are demonstrated, but with the following additional concepts: - **Long running tools**: Using `DurableAgentContext.Current` to start orchestrations from tool calls - **Multi-agent orchestration**: Agents can start and manage workflows that orchestrate other agents diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Tools.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Tools.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/Tools.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/Tools.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/demo.http b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/demo.http similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/05_LongRunningTools/demo.http rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/demo.http diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/host.json new file mode 100644 index 0000000000..9384a0a583 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/host.json @@ -0,0 +1,20 @@ +{ + "version": "2.0", + "logging": { + "logLevel": { + "Microsoft.Agents.AI.DurableTask": "Information", + "Microsoft.Agents.AI.Hosting.AzureFunctions": "Information", + "DurableTask": "Information", + "Microsoft.DurableTask": "Information" + } + }, + "extensions": { + "durableTask": { + "hubName": "default", + "storageProvider": { + "type": "AzureManaged", + "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING" + } + } + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_LongRunningTools/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/06_AgentAsMcpTool.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/07_AgentAsMcpTool.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/06_AgentAsMcpTool.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/07_AgentAsMcpTool.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/README.md similarity index 98% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/README.md index ddce884497..632e84d3e4 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/README.md @@ -49,7 +49,7 @@ Update your `local.settings.json` with your Azure OpenAI credentials: 1. **Start the Function App**: ```bash - cd dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool + cd dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool func start ``` diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/06_AgentAsMcpTool/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/local.settings.json new file mode 100644 index 0000000000..5f6d7d3340 --- /dev/null +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_AgentAsMcpTool/local.settings.json @@ -0,0 +1,10 @@ +{ + "IsEncrypted": false, + "Values": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", + "AZURE_OPENAI_ENDPOINT": "", + "AZURE_OPENAI_DEPLOYMENT_NAME": "" + } +} diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/07_ReliableStreaming.csproj b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/08_ReliableStreaming.csproj similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/07_ReliableStreaming.csproj rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/08_ReliableStreaming.csproj diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/FunctionTriggers.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/FunctionTriggers.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/FunctionTriggers.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/FunctionTriggers.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/Program.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Program.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/Program.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/README.md similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/README.md rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/README.md diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/RedisStreamResponseHandler.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/RedisStreamResponseHandler.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/RedisStreamResponseHandler.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/RedisStreamResponseHandler.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Tools.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/Tools.cs similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/Tools.cs rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/Tools.cs diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/host.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/host.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/host.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/host.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/local.settings.json similarity index 100% rename from dotnet/samples/04-hosting/DurableAgents/AzureFunctions/07_ReliableStreaming/local.settings.json rename to dotnet/samples/04-hosting/DurableAgents/AzureFunctions/08_ReliableStreaming/local.settings.json diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md index 3f52d5efe6..ed34b820d0 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/README.md @@ -1,18 +1,15 @@ # Azure Functions Samples -To get started with Azure Functions, begin with the introduction sample under [Get Started (`01-get-started`)](../../../01-get-started). - -- **[06_host_your_agent](../../../01-get-started/06_host_your_agent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. - This directory contains samples for Azure Functions. -- **[01_AgentOrchestration_Chaining](01_AgentOrchestration_Chaining)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it using a durable orchestration. -- **[02_AgentOrchestration_Concurrency](02_AgentOrchestration_Concurrency)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them concurrently using a durable orchestration. -- **[03_AgentOrchestration_Conditionals](03_AgentOrchestration_Conditionals)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them sequentially using a durable orchestration with conditionals. -- **[04_AgentOrchestration_HITL](04_AgentOrchestration_HITL)**: A sample that demonstrates how to implement a human-in-the-loop workflow using durable orchestration, including external event handling for human approval. -- **[05_LongRunningTools](05_LongRunningTools)**: A sample that demonstrates how agents can start and interact with durable orchestrations from tool calls to enable long-running tool scenarios. -- **[06_AgentAsMcpTool](06_AgentAsMcpTool)**: A sample that demonstrates how to configure durable AI agents to be accessible as Model Context Protocol (MCP) tools. -- **[07_ReliableStreaming](07_ReliableStreaming)**: A sample that demonstrates how to implement reliable streaming for durable agents using Redis Streams, enabling clients to disconnect and reconnect without losing messages. +- **[01_SingleAgent](01_SingleAgent)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it directly over HTTP. +- **[02_AgentOrchestration_Chaining](02_AgentOrchestration_Chaining)**: A sample that demonstrates how to host a single conversational agent in an Azure Functions app and invoke it using a durable orchestration. +- **[03_AgentOrchestration_Concurrency](03_AgentOrchestration_Concurrency)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them concurrently using a durable orchestration. +- **[04_AgentOrchestration_Conditionals](04_AgentOrchestration_Conditionals)**: A sample that demonstrates how to host multiple agents in an Azure Functions app and run them sequentially using a durable orchestration with conditionals. +- **[05_AgentOrchestration_HITL](05_AgentOrchestration_HITL)**: A sample that demonstrates how to implement a human-in-the-loop workflow using durable orchestration, including external event handling for human approval. +- **[06_LongRunningTools](06_LongRunningTools)**: A sample that demonstrates how agents can start and interact with durable orchestrations from tool calls to enable long-running tool scenarios. +- **[07_AgentAsMcpTool](07_AgentAsMcpTool)**: A sample that demonstrates how to configure durable AI agents to be accessible as Model Context Protocol (MCP) tools. +- **[08_ReliableStreaming](08_ReliableStreaming)**: A sample that demonstrates how to implement reliable streaming for durable agents using Redis Streams, enabling clients to disconnect and reconnect without losing messages. ## Running the Samples @@ -138,7 +135,7 @@ These environment variables, when set, will override the values in the `local.se Navigate to the sample directory and start the Azure Functions app: ```bash -cd dotnet/samples/01-get-started/06_host_your_agent +cd dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent func start ``` diff --git a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs index 611d14d8d1..173cea189f 100644 --- a/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs +++ b/dotnet/tests/Microsoft.Agents.AI.Hosting.AzureFunctions.IntegrationTests/SamplesValidation.cs @@ -31,9 +31,7 @@ public sealed class SamplesValidation(ITestOutputHelper outputHelper) : IAsyncLi private static bool s_infrastructureStarted; private static readonly TimeSpan s_orchestrationTimeout = TimeSpan.FromMinutes(1); - private static readonly string s_samplesGetStartedPath = Path.GetFullPath( - Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "01-get-started")); - private static readonly string s_samplesHostingPath = Path.GetFullPath( + private static readonly string s_samplesPath = Path.GetFullPath( Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "..", "..", "samples", "04-hosting", "DurableAgents", "AzureFunctions")); private readonly ITestOutputHelper _outputHelper = outputHelper; @@ -56,7 +54,7 @@ async Task IAsyncLifetime.DisposeAsync() [Fact] public async Task SingleAgentSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesGetStartedPath, "06_host_your_agent"); + string samplePath = Path.Combine(s_samplesPath, "01_SingleAgent"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri startUri = new($"http://localhost:{AzureFunctionsPort}/api/agents/Joker/run"); @@ -101,7 +99,7 @@ await this.WaitForConditionAsync( [Fact] public async Task SingleAgentOrchestrationChainingSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "01_AgentOrchestration_Chaining"); + string samplePath = Path.Combine(s_samplesPath, "02_AgentOrchestration_Chaining"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri startUri = new($"http://localhost:{AzureFunctionsPort}/api/singleagent/run"); @@ -144,7 +142,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task MultiAgentOrchestrationConcurrentSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "02_AgentOrchestration_Concurrency"); + string samplePath = Path.Combine(s_samplesPath, "03_AgentOrchestration_Concurrency"); await this.RunSampleTestAsync(samplePath, async (logs) => { // Start the multi-agent orchestration @@ -194,7 +192,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task MultiAgentOrchestrationConditionalsSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "03_AgentOrchestration_Conditionals"); + string samplePath = Path.Combine(s_samplesPath, "04_AgentOrchestration_Conditionals"); await this.RunSampleTestAsync(samplePath, async (logs) => { // Test with legitimate email @@ -212,7 +210,7 @@ await this.TestSpamDetectionAsync("email-002", [Fact] public async Task SingleAgentOrchestrationHITLSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "04_AgentOrchestration_HITL"); + string samplePath = Path.Combine(s_samplesPath, "05_AgentOrchestration_HITL"); await this.RunSampleTestAsync(samplePath, async (logs) => { @@ -268,7 +266,7 @@ await this.RunSampleTestAsync(samplePath, async (logs) => [Fact] public async Task LongRunningToolsSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "05_LongRunningTools"); + string samplePath = Path.Combine(s_samplesPath, "06_LongRunningTools"); await this.RunSampleTestAsync(samplePath, async (logs) => { @@ -358,7 +356,7 @@ await this.WaitForConditionAsync( [Fact] public async Task AgentAsMcpToolAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "06_AgentAsMcpTool"); + string samplePath = Path.Combine(s_samplesPath, "07_AgentAsMcpTool"); await this.RunSampleTestAsync(samplePath, async (logs) => { IClientTransport clientTransport = new HttpClientTransport(new() @@ -398,7 +396,7 @@ await this.WaitForConditionAsync( [Fact] public async Task ReliableStreamingSampleValidationAsync() { - string samplePath = Path.Combine(s_samplesHostingPath, "07_ReliableStreaming"); + string samplePath = Path.Combine(s_samplesPath, "08_ReliableStreaming"); await this.RunSampleTestAsync(samplePath, async (logs) => { Uri createUri = new($"http://localhost:{AzureFunctionsPort}/api/agent/create"); From 1247076a7991010ca63688f18f93f91201a5e341 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 16:49:00 -0800 Subject: [PATCH 28/36] Clean-up `05_host_your_agent` --- .../06_host_your_agent.csproj | 27 +----- .../06_host_your_agent/Program.cs | 42 --------- .../06_host_your_agent/README.md | 89 ------------------- .../06_host_your_agent/demo.http | 8 -- .../06_host_your_agent/host.json | 20 ----- .../06_host_your_agent/local.settings.json | 10 --- 6 files changed, 2 insertions(+), 194 deletions(-) delete mode 100644 dotnet/samples/01-get-started/06_host_your_agent/Program.cs delete mode 100644 dotnet/samples/01-get-started/06_host_your_agent/README.md delete mode 100644 dotnet/samples/01-get-started/06_host_your_agent/demo.http delete mode 100644 dotnet/samples/01-get-started/06_host_your_agent/host.json delete mode 100644 dotnet/samples/01-get-started/06_host_your_agent/local.settings.json diff --git a/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj index 99f78cc1ab..3749d3fee1 100644 --- a/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj +++ b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj @@ -6,37 +6,14 @@ enable enable - SingleAgent - SingleAgent + HostedAgent + HostedAgent - - - - - - - - - - - - - - - - - - diff --git a/dotnet/samples/01-get-started/06_host_your_agent/Program.cs b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs deleted file mode 100644 index d1fd3ced05..0000000000 --- a/dotnet/samples/01-get-started/06_host_your_agent/Program.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -#pragma warning disable IDE0002 // Simplify Member Access - -using Azure; -using Azure.AI.OpenAI; -using Azure.Identity; -using Microsoft.Agents.AI; -using Microsoft.Agents.AI.Hosting.AzureFunctions; -using Microsoft.Azure.Functions.Worker.Builder; -using Microsoft.Extensions.Hosting; -using OpenAI.Chat; - -// Get the Azure OpenAI endpoint and deployment name from environment variables. -string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") - ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); - -// Use Azure Key Credential if provided, otherwise use Azure CLI Credential. -string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); -// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. -// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid -// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. -AzureOpenAIClient client = !string.IsNullOrEmpty(azureOpenAiKey) - ? new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(azureOpenAiKey)) - : new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); - -// Set up an AI agent following the standard Microsoft Agent Framework pattern. -const string JokerName = "Joker"; -const string JokerInstructions = "You are good at telling jokes."; - -AIAgent agent = client.GetChatClient(deploymentName).AsAIAgent(JokerInstructions, JokerName); - -// Configure the function app to host the AI agent. -// This will automatically generate HTTP API endpoints for the agent. -using IHost app = FunctionsApplication - .CreateBuilder(args) - .ConfigureFunctionsWebApplication() - .ConfigureDurableAgents(options => options.AddAIAgent(agent, timeToLive: TimeSpan.FromHours(1))) - .Build(); -app.Run(); diff --git a/dotnet/samples/01-get-started/06_host_your_agent/README.md b/dotnet/samples/01-get-started/06_host_your_agent/README.md deleted file mode 100644 index 6f7587a30c..0000000000 --- a/dotnet/samples/01-get-started/06_host_your_agent/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# Single Agent Sample - -This sample demonstrates how to use the Durable Agent Framework (DAFx) to create a simple Azure Functions app that hosts a single AI agent and provides direct HTTP API access for interactive conversations. - -## Key Concepts Demonstrated - -- Using the Microsoft Agent Framework to define a simple AI agent with a name and instructions. -- Registering agents with the Function app and running them using HTTP. -- Conversation management (via session IDs) for isolated interactions. - -## Environment Setup - -See the [README.md](../../04-hosting/DurableAgents/AzureFunctions/README.md) file in the parent directory for more information on how to configure the environment, including how to install and run common sample dependencies. - -## Running the Sample - -With the environment setup and function app running, you can test the sample by sending an HTTP request to the agent endpoint. - -You can use the `demo.http` file to send a message to the agent, or a command line tool like `curl` as shown below: - -Bash (Linux/macOS/WSL): - -```bash -curl -X POST http://localhost:7071/api/agents/Joker/run \ - -H "Content-Type: text/plain" \ - -d "Tell me a joke about a pirate." -``` - -PowerShell: - -```powershell -Invoke-RestMethod -Method Post ` - -Uri http://localhost:7071/api/agents/Joker/run ` - -ContentType text/plain ` - -Body "Tell me a joke about a pirate." -``` - -You can also send JSON requests: - -```bash -curl -X POST http://localhost:7071/api/agents/Joker/run \ - -H "Content-Type: application/json" \ - -H "Accept: application/json" \ - -d '{"message": "Tell me a joke about a pirate."}' -``` - -To continue a conversation, include the `thread_id` in the query string or JSON body: - -```bash -curl -X POST "http://localhost:7071/api/agents/Joker/run?thread_id=your-thread-id" \ - -H "Content-Type: application/json" \ - -H "Accept: application/json" \ - -d '{"message": "Tell me another one."}' -``` - -The response from the agent will be displayed in the terminal where you ran `func start`. The expected `text/plain` output will look something like: - -```text -Why don't pirates ever learn the alphabet? Because they always get stuck at "C"! -``` - -The expected `application/json` output will look something like: - -```json -{ - "status": 200, - "thread_id": "ee6e47a0-f24b-40b1-ade8-16fcebb9eb40", - "response": { - "Messages": [ - { - "AuthorName": "Joker", - "CreatedAt": "2025-11-11T12:00:00.0000000Z", - "Role": "assistant", - "Contents": [ - { - "Type": "text", - "Text": "Why don't pirates ever learn the alphabet? Because they always get stuck at 'C'!" - } - ] - } - ], - "Usage": { - "InputTokenCount": 78, - "OutputTokenCount": 36, - "TotalTokenCount": 114 - } - } -} -``` diff --git a/dotnet/samples/01-get-started/06_host_your_agent/demo.http b/dotnet/samples/01-get-started/06_host_your_agent/demo.http deleted file mode 100644 index 3b741adf31..0000000000 --- a/dotnet/samples/01-get-started/06_host_your_agent/demo.http +++ /dev/null @@ -1,8 +0,0 @@ -# Default endpoint address for local testing -@authority=http://localhost:7071 - -### Prompt the agent -POST {{authority}}/api/agents/Joker/run -Content-Type: text/plain - -Tell me a joke about a pirate. diff --git a/dotnet/samples/01-get-started/06_host_your_agent/host.json b/dotnet/samples/01-get-started/06_host_your_agent/host.json deleted file mode 100644 index 9384a0a583..0000000000 --- a/dotnet/samples/01-get-started/06_host_your_agent/host.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": "2.0", - "logging": { - "logLevel": { - "Microsoft.Agents.AI.DurableTask": "Information", - "Microsoft.Agents.AI.Hosting.AzureFunctions": "Information", - "DurableTask": "Information", - "Microsoft.DurableTask": "Information" - } - }, - "extensions": { - "durableTask": { - "hubName": "default", - "storageProvider": { - "type": "AzureManaged", - "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING" - } - } - } -} diff --git a/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json b/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json deleted file mode 100644 index 5f6d7d3340..0000000000 --- a/dotnet/samples/01-get-started/06_host_your_agent/local.settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "IsEncrypted": false, - "Values": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "AzureWebJobsStorage": "UseDevelopmentStorage=true", - "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None", - "AZURE_OPENAI_ENDPOINT": "", - "AZURE_OPENAI_DEPLOYMENT_NAME": "" - } -} From bd110968894498d1a4e392fe3441e2819b3ae197 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 19:28:20 -0800 Subject: [PATCH 29/36] Config setting consistency --- .../DurableAgents/AzureFunctions/01_SingleAgent/Program.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs index 6b67452dff..9ce6c1ee28 100644 --- a/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs +++ b/dotnet/samples/04-hosting/DurableAgents/AzureFunctions/01_SingleAgent/Program.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. #pragma warning disable IDE0002 // Simplify Member Access @@ -14,8 +14,8 @@ // Get the Azure OpenAI endpoint and deployment name from environment variables. string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); -string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT") - ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT is not set."); +string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") + ?? throw new InvalidOperationException("AZURE_OPENAI_DEPLOYMENT_NAME is not set."); // Use Azure Key Credential if provided, otherwise use Azure CLI Credential. string? azureOpenAiKey = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_KEY"); From a895764391716b7ad6b70615ae2759e2e1bcad25 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 19:45:56 -0800 Subject: [PATCH 30/36] Refine samples --- dotnet/agent-framework-dotnet.slnx | 9 +- .../05_first_workflow.csproj | 1 - .../06_host_your_agent.csproj | 14 ++- .../06_host_your_agent/Program.cs | 45 +++++++ dotnet/samples/AGENTS.md | 113 ++++++++++++++++++ dotnet/samples/README.md | 2 +- python/samples/README.md | 2 +- 7 files changed, 179 insertions(+), 7 deletions(-) create mode 100644 dotnet/samples/01-get-started/06_host_your_agent/Program.cs create mode 100644 dotnet/samples/AGENTS.md diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 0d8405f285..744323ad08 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -5,6 +5,7 @@ + @@ -286,11 +287,13 @@ + + @@ -427,6 +430,7 @@ + @@ -434,7 +438,6 @@ - @@ -452,11 +455,11 @@ + - @@ -473,13 +476,13 @@ + - diff --git a/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj b/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj index 8430479a72..b15906ba18 100644 --- a/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj +++ b/dotnet/samples/01-get-started/05_first_workflow/05_first_workflow.csproj @@ -3,7 +3,6 @@ Exe net10.0 - enable enable diff --git a/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj index 3749d3fee1..2f0efd7b3a 100644 --- a/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj +++ b/dotnet/samples/01-get-started/06_host_your_agent/06_host_your_agent.csproj @@ -1,19 +1,31 @@ + Exe net10.0 v4 - Exe enable enable HostedAgent HostedAgent + + + + + + + + + + + + diff --git a/dotnet/samples/01-get-started/06_host_your_agent/Program.cs b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs new file mode 100644 index 0000000000..6012119b25 --- /dev/null +++ b/dotnet/samples/01-get-started/06_host_your_agent/Program.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft. All rights reserved. + +// This sample shows how to host an AI agent with Azure Functions (DurableAgents). +// +// Prerequisites: +// - Azure Functions Core Tools +// - Azure OpenAI resource +// +// Environment variables: +// AZURE_OPENAI_ENDPOINT +// AZURE_OPENAI_DEPLOYMENT_NAME (defaults to "gpt-4o-mini") +// +// Run with: func start +// Then call: POST http://localhost:7071/api/agents/HostedAgent/run + +using Azure.AI.OpenAI; +using Azure.Identity; +using Microsoft.Agents.AI; +using Microsoft.Agents.AI.Hosting.AzureFunctions; +using Microsoft.Azure.Functions.Worker.Builder; +using Microsoft.Extensions.Hosting; +using OpenAI.Chat; + +var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; + +// Set up an AI agent following the standard Microsoft Agent Framework pattern. +// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. +// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid +// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. +AIAgent agent = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) + .GetChatClient(deploymentName) + .AsAIAgent( + instructions: "You are a helpful assistant hosted in Azure Functions.", + name: "HostedAgent"); + +// Configure the function app to host the AI agent. +// This will automatically generate HTTP API endpoints for the agent. +using IHost app = FunctionsApplication + .CreateBuilder(args) + .ConfigureFunctionsWebApplication() + .ConfigureDurableAgents(options => options.AddAIAgent(agent, timeToLive: TimeSpan.FromHours(1))) + .Build(); +app.Run(); diff --git a/dotnet/samples/AGENTS.md b/dotnet/samples/AGENTS.md new file mode 100644 index 0000000000..09ca7ac17d --- /dev/null +++ b/dotnet/samples/AGENTS.md @@ -0,0 +1,113 @@ +# Samples Structure & Design Choices — .NET + +> This file documents the structure and conventions of the .NET samples so that +> agents (AI or human) can maintain them without rediscovering decisions. + +## Directory layout + +``` +python/samples/ +├── 01-get-started/ # Progressive tutorial (steps 01–06) +├── 02-agents/ # Deep-dive concept samples +│ ├── tools/ # Tool patterns (function, approval, schema, etc.) +│ ├── middleware/ # One file per middleware concept +│ ├── conversations/ # Thread, storage, suspend/resume +│ ├── providers/ # One sub-folder per provider (azure_ai/, openai/, etc.) +│ ├── context_providers/ # Memory & context injection +│ ├── orchestrations/ # Multi-agent orchestration patterns +│ ├── observability/ # Tracing, telemetry +│ ├── declarative/ # Declarative agent definitions +│ ├── chat_client/ # Raw chat client usage +│ ├── mcp/ # MCP server/client patterns +│ ├── multimodal_input/ # Image, audio inputs +│ └── devui/ # DevUI agent/workflow samples +├── 03-workflows/ # Workflow samples (preserved from upstream) +│ ├── _start-here/ # Introductory workflow samples +│ ├── agents/ # Agents in workflows +│ ├── checkpoint/ # Checkpointing & resume +│ ├── composition/ # Sub-workflows +│ ├── control-flow/ # Edges, conditions, loops +│ ├── declarative/ # YAML-based workflows +│ ├── human-in-the-loop/ # HITL patterns +│ ├── observability/ # Workflow telemetry +│ ├── parallelism/ # Fan-out, map-reduce +│ ├── state-management/ # State isolation, kwargs +│ ├── tool-approval/ # Tool approval in workflows +│ └── visualization/ # Workflow visualization +├── 04-hosting/ # Deployment & hosting +│ ├── a2a/ # Agent-to-Agent protocol +│ ├── azure-functions/ # Azure Functions samples +│ └── durabletask/ # Durable task framework +├── 05-end-to-end/ # Complete applications +│ ├── chatkit-integration/ +│ ├── evaluation/ +│ ├── hosted_agents/ +│ ├── m365-agent/ +│ ├── purview_agent/ +│ └── workflow_evaluation/ +``` + +## Design principles + +1. **Progressive complexity**: Sections 01→05 build from "hello world" to + production. Within 01-get-started, files are numbered 01–06 and each step + adds exactly one concept. + +2. **One concept per file** in 01-get-started and flat files in 02-agents/. + +3. **Workflows preserved**: 03-workflows/ keeps the upstream folder names + and file names intact. Do not rename or restructure workflow samples. + +4. **Single-file for 01-03**: Only 04-hosting and 05-end-to-end use multi-file + projects with their own README. + +## Default provider + +All canonical samples (01-get-started) use **Azure OpenAI Responses** via `AzureOpenAIResponsesClient` +with an Azure AI Foundry project endpoint: + +```python +import os +from agent_framework.azure import AzureOpenAIResponsesClient +from azure.identity import AzureCliCredential + +credential = AzureCliCredential() +client = AzureOpenAIResponsesClient( + project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"], + deployment_name=os.environ["AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"], + credential=credential, +) +agent = client.as_agent(name="...", instructions="...") +``` + +Environment variables: +- `AZURE_AI_PROJECT_ENDPOINT` — Your Azure AI Foundry project endpoint +- `AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME` — Model deployment name (e.g. gpt-4o) + +For authentication, run `az login` before running samples. + +## Snippet tags for docs integration + +Samples embed named snippet regions for future `:::code` integration: + +```python +# +code here +# +``` + +## Package install + +```bash +pip install agent-framework --pre +``` + +The `--pre` flag is needed during preview. `openai` is a core dependency. + +## Current API notes + +- `Agent` class renamed from `ChatAgent` (use `from agent_framework import Agent`) +- `Message` class renamed from `ChatMessage` (use `from agent_framework import Message`) +- `call_next` in middleware takes NO arguments: `await call_next()` (not `await call_next(context)`) +- Prefer `client.as_agent(...)` over `Agent(client=client, ...)` +- Tool methods on hosted tools are now functions, not classes (e.g. `hosted_mcp_tool(...)` not `HostedMCPTool(...)`) diff --git a/dotnet/samples/README.md b/dotnet/samples/README.md index 3a2b45a09a..e5d3b90ae2 100644 --- a/dotnet/samples/README.md +++ b/dotnet/samples/README.md @@ -28,7 +28,7 @@ Start with `01-get-started/` and work through the numbered files: 3. **[03_multi_turn](./01-get-started/03_multi_turn/Program.cs)** — Multi-turn conversations with `AgentSession` 4. **[04_memory](./01-get-started/04_memory/Program.cs)** — Agent memory with `AIContextProvider` 5. **[05_first_workflow](./01-get-started/05_first_workflow/Program.cs)** — Build a workflow with executors and edges -6. **[06_host_your_agent](./01-get-started/06_host_your_agent/Program.cs)** — Host your agent via A2A +6. **[06_host_your_agent](./01-get-started/06_host_your_agent/Program.cs)** — Host your agent via Azure Functions ## Additional Samples diff --git a/python/samples/README.md b/python/samples/README.md index 148ace320d..1f353fbc52 100644 --- a/python/samples/README.md +++ b/python/samples/README.md @@ -21,7 +21,7 @@ Start with `01-get-started/` and work through the numbered files: 3. **[03_multi_turn.py](./01-get-started/03_multi_turn.py)** — Multi-turn conversations with `AgentThread` 4. **[04_memory.py](./01-get-started/04_memory.py)** — Agent memory with `ContextProvider` 5. **[05_first_workflow.py](./01-get-started/05_first_workflow.py)** — Build a workflow with executors and edges -6. **[06_host_your_agent.py](./01-get-started/06_host_your_agent.py)** — Host your agent via A2A +6. **[06_host_your_agent.py](./01-get-started/06_host_your_agent.py)** — Host your agent via Azure Functions ## Prerequisites From 13e2c3a1e1414fa9ca3332ba0083da7a707ae3b1 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Tue, 24 Feb 2026 19:52:21 -0800 Subject: [PATCH 31/36] AGENTS.md --- dotnet/samples/AGENTS.md | 163 +++++++++++++++++++++------------------ 1 file changed, 90 insertions(+), 73 deletions(-) diff --git a/dotnet/samples/AGENTS.md b/dotnet/samples/AGENTS.md index 09ca7ac17d..1578b39a26 100644 --- a/dotnet/samples/AGENTS.md +++ b/dotnet/samples/AGENTS.md @@ -6,83 +6,98 @@ ## Directory layout ``` -python/samples/ -├── 01-get-started/ # Progressive tutorial (steps 01–06) -├── 02-agents/ # Deep-dive concept samples -│ ├── tools/ # Tool patterns (function, approval, schema, etc.) -│ ├── middleware/ # One file per middleware concept -│ ├── conversations/ # Thread, storage, suspend/resume -│ ├── providers/ # One sub-folder per provider (azure_ai/, openai/, etc.) -│ ├── context_providers/ # Memory & context injection -│ ├── orchestrations/ # Multi-agent orchestration patterns -│ ├── observability/ # Tracing, telemetry -│ ├── declarative/ # Declarative agent definitions -│ ├── chat_client/ # Raw chat client usage -│ ├── mcp/ # MCP server/client patterns -│ ├── multimodal_input/ # Image, audio inputs -│ └── devui/ # DevUI agent/workflow samples -├── 03-workflows/ # Workflow samples (preserved from upstream) -│ ├── _start-here/ # Introductory workflow samples -│ ├── agents/ # Agents in workflows -│ ├── checkpoint/ # Checkpointing & resume -│ ├── composition/ # Sub-workflows -│ ├── control-flow/ # Edges, conditions, loops -│ ├── declarative/ # YAML-based workflows -│ ├── human-in-the-loop/ # HITL patterns -│ ├── observability/ # Workflow telemetry -│ ├── parallelism/ # Fan-out, map-reduce -│ ├── state-management/ # State isolation, kwargs -│ ├── tool-approval/ # Tool approval in workflows -│ └── visualization/ # Workflow visualization -├── 04-hosting/ # Deployment & hosting -│ ├── a2a/ # Agent-to-Agent protocol -│ ├── azure-functions/ # Azure Functions samples -│ └── durabletask/ # Durable task framework -├── 05-end-to-end/ # Complete applications -│ ├── chatkit-integration/ -│ ├── evaluation/ -│ ├── hosted_agents/ -│ ├── m365-agent/ -│ ├── purview_agent/ -│ └── workflow_evaluation/ +dotnet/samples/ +├── 01-get-started/ # Progressive tutorial (steps 01–06) +│ ├── 01_hello_agent/ # Create and run your first agent +│ ├── 02_add_tools/ # Add function tools +│ ├── 03_multi_turn/ # Multi-turn conversations with AgentSession +│ ├── 04_memory/ # Agent memory with AIContextProvider +│ ├── 05_first_workflow/ # Build a workflow with executors and edges +│ └── 06_host_your_agent/ # Host your agent via Azure Functions +├── 02-agents/ # Deep-dive concept samples +│ ├── Agents/ # Core agent patterns (tools, structured output, +│ │ # conversations, middleware, plugins, MCP, etc.) +│ ├── AgentProviders/ # One project per provider (Azure OpenAI, OpenAI, +│ │ # Anthropic, Gemini, Ollama, ONNX, Foundry, etc.) +│ ├── AgentOpenTelemetry/ # OpenTelemetry integration +│ ├── AgentSkills/ # Agent skills patterns +│ ├── AgentWithAnthropic/ # Anthropic-specific samples +│ ├── AgentWithMemory/ # Memory providers (chat history, Mem0, Foundry) +│ ├── AgentWithOpenAI/ # OpenAI-specific samples +│ ├── AgentWithRAG/ # RAG patterns (text, vector store, Foundry) +│ ├── AGUI/ # AG-UI protocol samples +│ ├── DeclarativeAgents/ # Declarative agent definitions +│ ├── DevUI/ # DevUI samples +│ ├── FoundryAgents/ # Azure AI Foundry agent samples +│ └── ModelContextProtocol/ # MCP server/client patterns +├── 03-workflows/ # Workflow patterns +│ ├── _StartHere/ # Introductory workflow samples +│ ├── Agents/ # Agents in workflows +│ ├── Checkpoint/ # Checkpointing & resume +│ ├── Concurrent/ # Concurrent execution +│ ├── ConditionalEdges/ # Conditional routing +│ ├── Declarative/ # YAML-based workflows +│ ├── HumanInTheLoop/ # HITL patterns +│ ├── Loop/ # Loop patterns +│ ├── Observability/ # Workflow telemetry +│ ├── SharedStates/ # State isolation +│ └── Visualization/ # Workflow visualization +├── 04-hosting/ # Deployment & hosting +│ ├── A2A/ # Agent-to-Agent protocol +│ └── DurableAgents/ # Durable task framework +│ ├── AzureFunctions/ # Azure Functions hosting +│ └── ConsoleApps/ # Console app hosting +├── 05-end-to-end/ # Complete applications +│ ├── A2AClientServer/ # A2A client/server demo +│ ├── AgentWebChat/ # Aspire-based web chat +│ ├── AgentWithPurview/ # Purview integration +│ ├── AGUIClientServer/ # AG-UI client/server demo +│ ├── AGUIWebChat/ # AG-UI web chat +│ ├── HostedAgents/ # Hosted agent scenarios +│ └── M365Agent/ # Microsoft 365 agent ``` ## Design principles 1. **Progressive complexity**: Sections 01→05 build from "hello world" to - production. Within 01-get-started, files are numbered 01–06 and each step + production. Within 01-get-started, projects are numbered 01–06 and each step adds exactly one concept. -2. **One concept per file** in 01-get-started and flat files in 02-agents/. +2. **One concept per project** in 01-get-started. Each step is a standalone + C# project with a single `Program.cs` file. 3. **Workflows preserved**: 03-workflows/ keeps the upstream folder names - and file names intact. Do not rename or restructure workflow samples. + intact. Do not rename or restructure workflow samples. -4. **Single-file for 01-03**: Only 04-hosting and 05-end-to-end use multi-file - projects with their own README. +4. **Per-project structure**: Each sample is a separate .csproj. Shared build + configuration is inherited from `Directory.Build.props`. ## Default provider -All canonical samples (01-get-started) use **Azure OpenAI Responses** via `AzureOpenAIResponsesClient` -with an Azure AI Foundry project endpoint: - -```python -import os -from agent_framework.azure import AzureOpenAIResponsesClient -from azure.identity import AzureCliCredential - -credential = AzureCliCredential() -client = AzureOpenAIResponsesClient( - project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"], - deployment_name=os.environ["AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"], - credential=credential, -) -agent = client.as_agent(name="...", instructions="...") +All canonical samples (01-get-started) use **Azure OpenAI** via `AzureOpenAIClient` +with `DefaultAzureCredential`: + +```csharp +using Azure.AI.OpenAI; +using Azure.Identity; +using Microsoft.Agents.AI; +using OpenAI.Chat; + +var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini"; + +// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. +// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid +// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. +AIAgent agent = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) + .GetChatClient(deploymentName) + .AsAIAgent(instructions: "...", name: "..."); ``` Environment variables: -- `AZURE_AI_PROJECT_ENDPOINT` — Your Azure AI Foundry project endpoint -- `AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME` — Model deployment name (e.g. gpt-4o) +- `AZURE_OPENAI_ENDPOINT` — Your Azure OpenAI endpoint +- `AZURE_OPENAI_DEPLOYMENT_NAME` — Model deployment name (defaults to `gpt-4o-mini`) For authentication, run `az login` before running samples. @@ -90,24 +105,26 @@ For authentication, run `az login` before running samples. Samples embed named snippet regions for future `:::code` integration: -```python -# +```csharp +// code here -# +// ``` -## Package install +## Building and running + +All samples use project references to the framework source. To build and run: ```bash -pip install agent-framework --pre +cd dotnet/samples/01-get-started/01_hello_agent +dotnet run ``` -The `--pre` flag is needed during preview. `openai` is a core dependency. - ## Current API notes -- `Agent` class renamed from `ChatAgent` (use `from agent_framework import Agent`) -- `Message` class renamed from `ChatMessage` (use `from agent_framework import Message`) -- `call_next` in middleware takes NO arguments: `await call_next()` (not `await call_next(context)`) -- Prefer `client.as_agent(...)` over `Agent(client=client, ...)` -- Tool methods on hosted tools are now functions, not classes (e.g. `hosted_mcp_tool(...)` not `HostedMCPTool(...)`) +- `AIAgent` is the primary agent abstraction (created via `ChatClient.AsAIAgent(...)`) +- `AgentSession` manages multi-turn conversation state +- `AIContextProvider` injects memory and context +- Prefer `client.GetChatClient(deployment).AsAIAgent(...)` extension method pattern +- Azure Functions hosting uses `ConfigureDurableAgents(options => options.AddAIAgent(agent))` +- Workflows use `WorkflowBuilder` with `Executor` and edge connections From 202d999fee3b314a3549803e9c08ef28253bf194 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Wed, 25 Feb 2026 10:13:41 -0800 Subject: [PATCH 32/36] Move new samples --- dotnet/agent-framework-dotnet.slnx | 2 ++ .../FoundryAgents/FoundryAgents_Step22_SharePoint/README.md | 2 +- .../FoundryAgents_Step23_MicrosoftFabric/README.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 744323ad08..c8095c5665 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -142,6 +142,8 @@ + + diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md index 9f89aaf652..baafebe528 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md @@ -33,7 +33,7 @@ $env:SHAREPOINT_PROJECT_CONNECTION_ID="your-sharepoint-connection-id" # Require Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step22_SharePoint ``` diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md index cc7f91874e..494ccc4c7b 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md @@ -42,7 +42,7 @@ $env:FABRIC_PROJECT_CONNECTION_ID="your-fabric-connection-id" # The Fabric proj Navigate to the FoundryAgents sample directory and run: ```powershell -cd dotnet/samples/GettingStarted/FoundryAgents +cd dotnet/samples/02-agents/FoundryAgents dotnet run --project .\FoundryAgents_Step23_MicrosoftFabric ``` From c57441a77562c0f3d74ac9a445708d5f5070e1f1 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Wed, 25 Feb 2026 10:33:26 -0800 Subject: [PATCH 33/36] Re-order samples --- dotnet/agent-framework-dotnet.slnx | 16 ++++++++-------- .../samples/02-agents/AgentWithMemory/README.md | 2 +- .../FoundryAgents_Step16_FileSearch.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step17_OpenAPITools.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- ...FoundryAgents_Step18_BingCustomSearch.csproj} | 0 .../Program.cs | 0 .../README.md | 4 ++-- .../FoundryAgents_Step19_SharePoint.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step20_MicrosoftFabric.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step21_WebSearch.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step22_MemorySearch.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- .../FoundryAgents_Step23_LocalMCP.csproj} | 0 .../Program.cs | 0 .../README.md | 2 +- dotnet/samples/02-agents/FoundryAgents/README.md | 15 ++++++++------- 27 files changed, 26 insertions(+), 25 deletions(-) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj => FoundryAgents_Step16_FileSearch/FoundryAgents_Step16_FileSearch.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step18_FileSearch => FoundryAgents_Step16_FileSearch}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step18_FileSearch => FoundryAgents_Step16_FileSearch}/README.md (97%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj => FoundryAgents_Step17_OpenAPITools/FoundryAgents_Step17_OpenAPITools.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step19_OpenAPITools => FoundryAgents_Step17_OpenAPITools}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step19_OpenAPITools => FoundryAgents_Step17_OpenAPITools}/README.md (97%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj => FoundryAgents_Step18_BingCustomSearch/FoundryAgents_Step18_BingCustomSearch.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step21_BingCustomSearch => FoundryAgents_Step18_BingCustomSearch}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step21_BingCustomSearch => FoundryAgents_Step18_BingCustomSearch}/README.md (96%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step22_SharePoint/FoundryAgents_Step22_SharePoint.csproj => FoundryAgents_Step19_SharePoint/FoundryAgents_Step19_SharePoint.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step22_SharePoint => FoundryAgents_Step19_SharePoint}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step22_SharePoint => FoundryAgents_Step19_SharePoint}/README.md (97%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step23_MicrosoftFabric/FoundryAgents_Step23_MicrosoftFabric.csproj => FoundryAgents_Step20_MicrosoftFabric/FoundryAgents_Step20_MicrosoftFabric.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step23_MicrosoftFabric => FoundryAgents_Step20_MicrosoftFabric}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step23_MicrosoftFabric => FoundryAgents_Step20_MicrosoftFabric}/README.md (97%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj => FoundryAgents_Step21_WebSearch/FoundryAgents_Step21_WebSearch.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step25_WebSearch => FoundryAgents_Step21_WebSearch}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step25_WebSearch => FoundryAgents_Step21_WebSearch}/README.md (97%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj => FoundryAgents_Step22_MemorySearch/FoundryAgents_Step22_MemorySearch.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step26_MemorySearch => FoundryAgents_Step22_MemorySearch}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step26_MemorySearch => FoundryAgents_Step22_MemorySearch}/README.md (98%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj => FoundryAgents_Step23_LocalMCP/FoundryAgents_Step23_LocalMCP.csproj} (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step27_LocalMCP => FoundryAgents_Step23_LocalMCP}/Program.cs (100%) rename dotnet/samples/02-agents/FoundryAgents/{FoundryAgents_Step27_LocalMCP => FoundryAgents_Step23_LocalMCP}/README.md (97%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index c8095c5665..b0b8890979 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -139,14 +139,14 @@ - - - - - - - - + + + + + + + + diff --git a/dotnet/samples/02-agents/AgentWithMemory/README.md b/dotnet/samples/02-agents/AgentWithMemory/README.md index 156281461e..893ba03772 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/README.md @@ -9,4 +9,4 @@ These samples show how to create an agent with the Agent Framework that uses Mem |[Custom Memory Implementation](../../01-get-started/04_memory/)|This sample demonstrates how to create a custom memory component and attach it to an agent.| |[Memory with Azure AI Foundry](./AgentWithMemory_Step04_MemoryUsingFoundry/)|This sample demonstrates how to create and run an agent that uses Azure AI Foundry's managed memory service to extract and retrieve individual memories.| -> **See also**: [Memory Search with Foundry Agents](../FoundryAgents/FoundryAgents_Step26_MemorySearch/) - demonstrates using the built-in Memory Search tool with Azure Foundry Agents. +> **See also**: [Memory Search with Foundry Agents](../FoundryAgents/FoundryAgents_Step22_MemorySearch/) - demonstrates using the built-in Memory Search tool with Azure Foundry Agents. diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/FoundryAgents_Step16_FileSearch.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/FoundryAgents_Step18_FileSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/FoundryAgents_Step16_FileSearch.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/README.md index d6e7dcdf61..db74868d3d 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_FileSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step16_FileSearch/README.md @@ -34,7 +34,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step18_FileSearch +dotnet run --project .\FoundryAgents_Step16_FileSearch ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/FoundryAgents_Step17_OpenAPITools.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/FoundryAgents_Step19_OpenAPITools.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/FoundryAgents_Step17_OpenAPITools.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/README.md index dc0de95876..a859f6b963 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_OpenAPITools/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step17_OpenAPITools/README.md @@ -33,7 +33,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step19_OpenAPITools +dotnet run --project .\FoundryAgents_Step17_OpenAPITools ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/FoundryAgents_Step18_BingCustomSearch.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/FoundryAgents_Step21_BingCustomSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/FoundryAgents_Step18_BingCustomSearch.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/README.md similarity index 96% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/README.md index dbfb7499b7..ccc1873a04 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_BingCustomSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step18_BingCustomSearch/README.md @@ -1,4 +1,4 @@ -# Using Bing Custom Search with AI Agents +# Using Bing Custom Search with AI Agents This sample demonstrates how to use the Bing Custom Search tool with AI agents to perform customized web searches. @@ -50,7 +50,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step21_BingCustomSearch +dotnet run --project .\FoundryAgents_Step18_BingCustomSearch ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/FoundryAgents_Step22_SharePoint.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/FoundryAgents_Step19_SharePoint.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/FoundryAgents_Step22_SharePoint.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/FoundryAgents_Step19_SharePoint.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/README.md index baafebe528..ccbd699011 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_SharePoint/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step19_SharePoint/README.md @@ -34,7 +34,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step22_SharePoint +dotnet run --project .\FoundryAgents_Step19_SharePoint ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/FoundryAgents_Step23_MicrosoftFabric.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/FoundryAgents_Step20_MicrosoftFabric.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/FoundryAgents_Step23_MicrosoftFabric.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/FoundryAgents_Step20_MicrosoftFabric.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/README.md index 494ccc4c7b..a5faf79d9d 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_MicrosoftFabric/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step20_MicrosoftFabric/README.md @@ -43,7 +43,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step23_MicrosoftFabric +dotnet run --project .\FoundryAgents_Step20_MicrosoftFabric ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/FoundryAgents_Step21_WebSearch.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/FoundryAgents_Step25_WebSearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/FoundryAgents_Step21_WebSearch.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/README.md index aed939c555..8da390878c 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step25_WebSearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step21_WebSearch/README.md @@ -35,7 +35,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step25_WebSearch +dotnet run --project .\FoundryAgents_Step21_WebSearch ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/FoundryAgents_Step22_MemorySearch.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/FoundryAgents_Step26_MemorySearch.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/FoundryAgents_Step22_MemorySearch.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/README.md similarity index 98% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/README.md index 50a554f6d5..9e6d79d579 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step26_MemorySearch/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step22_MemorySearch/README.md @@ -71,7 +71,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step26_MemorySearch +dotnet run --project .\FoundryAgents_Step22_MemorySearch ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/FoundryAgents_Step23_LocalMCP.csproj similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/FoundryAgents_Step27_LocalMCP.csproj rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/FoundryAgents_Step23_LocalMCP.csproj diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/Program.cs similarity index 100% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/Program.cs rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/Program.cs diff --git a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/README.md similarity index 97% rename from dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md rename to dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/README.md index 00801bf15d..8651108987 100644 --- a/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step27_LocalMCP/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/FoundryAgents_Step23_LocalMCP/README.md @@ -33,7 +33,7 @@ Navigate to the FoundryAgents sample directory and run: ```powershell cd dotnet/samples/02-agents/FoundryAgents -dotnet run --project .\FoundryAgents_Step27_LocalMCP +dotnet run --project .\FoundryAgents_Step23_LocalMCP ``` ## Expected behavior diff --git a/dotnet/samples/02-agents/FoundryAgents/README.md b/dotnet/samples/02-agents/FoundryAgents/README.md index 829da2a0bf..426a8cdad5 100644 --- a/dotnet/samples/02-agents/FoundryAgents/README.md +++ b/dotnet/samples/02-agents/FoundryAgents/README.md @@ -58,13 +58,14 @@ Before you begin, ensure you have the following prerequisites: |[Using plugins](./FoundryAgents_Step13_Plugins/)|This sample demonstrates how to use plugins with a Foundry agent| |[Code interpreter](./FoundryAgents_Step14_CodeInterpreter/)|This sample demonstrates how to use the code interpreter tool with a Foundry agent| |[Computer use](./FoundryAgents_Step15_ComputerUse/)|This sample demonstrates how to use computer use capabilities with a Foundry agent| -|[Bing Custom Search](./FoundryAgents_Step21_BingCustomSearch/)|This sample demonstrates how to use Bing Custom Search tool with a Foundry agent| -|[SharePoint grounding](./FoundryAgents_Step22_SharePoint/)|This sample demonstrates how to use the SharePoint grounding tool with a Foundry agent| -|[Microsoft Fabric](./FoundryAgents_Step23_MicrosoftFabric/)|This sample demonstrates how to use Microsoft Fabric tool with a Foundry agent| -|[Web search](./FoundryAgents_Step25_WebSearch/)|This sample demonstrates how to use the Responses API web search tool with a Foundry agent| -|[Memory search](./FoundryAgents_Step26_MemorySearch/)|This sample demonstrates how to use memory search tool with a Foundry agent| -|[File search](./FoundryAgents_Step18_FileSearch/)|This sample demonstrates how to use the file search tool with a Foundry agent| -|[Local MCP](./FoundryAgents_Step27_LocalMCP/)|This sample demonstrates how to use a local MCP client with a Foundry agent| +|[File search](./FoundryAgents_Step16_FileSearch/)|This sample demonstrates how to use the file search tool with a Foundry agent| +|[OpenAPI tools](./FoundryAgents_Step17_OpenAPITools/)|This sample demonstrates how to use OpenAPI tools with a Foundry agent| +|[Bing Custom Search](./FoundryAgents_Step18_BingCustomSearch/)|This sample demonstrates how to use Bing Custom Search tool with a Foundry agent| +|[SharePoint grounding](./FoundryAgents_Step19_SharePoint/)|This sample demonstrates how to use the SharePoint grounding tool with a Foundry agent| +|[Microsoft Fabric](./FoundryAgents_Step20_MicrosoftFabric/)|This sample demonstrates how to use Microsoft Fabric tool with a Foundry agent| +|[Web search](./FoundryAgents_Step21_WebSearch/)|This sample demonstrates how to use the Responses API web search tool with a Foundry agent| +|[Memory search](./FoundryAgents_Step22_MemorySearch/)|This sample demonstrates how to use memory search tool with a Foundry agent| +|[Local MCP](./FoundryAgents_Step23_LocalMCP/)|This sample demonstrates how to use a local MCP client with a Foundry agent| ## Evaluation Samples From 67fe7e32a8adfdaa7f98e1920b2cae9c7b8992c3 Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Wed, 25 Feb 2026 12:04:03 -0800 Subject: [PATCH 34/36] Move new project and fixup solution --- dotnet/agent-framework-dotnet.slnx | 2 ++ .../Declarative/InvokeMcpTool/InvokeMcpTool.csproj | 6 +++--- .../Declarative/InvokeMcpTool/InvokeMcpTool.yaml | 0 .../Declarative/InvokeMcpTool/Program.cs | 0 4 files changed, 5 insertions(+), 3 deletions(-) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeMcpTool/InvokeMcpTool.csproj (73%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeMcpTool/InvokeMcpTool.yaml (100%) rename dotnet/samples/{GettingStarted/Workflows => 03-workflows}/Declarative/InvokeMcpTool/Program.cs (100%) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index b0b8890979..ea832e1bfc 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -182,6 +182,7 @@ + @@ -444,6 +445,7 @@ + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj similarity index 73% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj rename to dotnet/samples/03-workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj index 9c905deeb7..317d93c4e9 100644 --- a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj +++ b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/InvokeMcpTool.csproj @@ -25,9 +25,9 @@ - - - + + + diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/InvokeMcpTool.yaml b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/InvokeMcpTool.yaml similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/InvokeMcpTool.yaml rename to dotnet/samples/03-workflows/Declarative/InvokeMcpTool/InvokeMcpTool.yaml diff --git a/dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/Program.cs b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs similarity index 100% rename from dotnet/samples/GettingStarted/Workflows/Declarative/InvokeMcpTool/Program.cs rename to dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs From ea06dc227bba696529c392119a3cbe6ccc9147cc Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Wed, 25 Feb 2026 12:15:47 -0800 Subject: [PATCH 35/36] Fixup model config --- .../samples/03-workflows/Declarative/InvokeMcpTool/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs index 3afebc560b..926afcfc3c 100644 --- a/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs +++ b/dotnet/samples/03-workflows/Declarative/InvokeMcpTool/Program.cs @@ -127,7 +127,7 @@ await aiProjectClient.CreateAgentAsync( private static PromptAgentDefinition DefineSearchAgent(IConfiguration configuration) { - return new PromptAgentDefinition(configuration.GetValue(Application.Settings.FoundryModelMini)) + return new PromptAgentDefinition(configuration.GetValue(Application.Settings.FoundryModel)) { Instructions = """ From 97f40152539bb8fa72bf0f82139ab9a8d6776ceb Mon Sep 17 00:00:00 2001 From: Chris Rickman Date: Wed, 25 Feb 2026 12:32:27 -0800 Subject: [PATCH 36/36] Fix up new UT project --- dotnet/agent-framework-dotnet.slnx | 1 + 1 file changed, 1 insertion(+) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index ea832e1bfc..2bb11b01b8 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -491,6 +491,7 @@ +