Sunday, 1 February 2026

Find the Process Using the Port and terminate it

 

    Open Command Prompt as Administrator.
  1. Run:
  • netstat -ano | findstr :3001

  • Terminate or Kill the port :
    taskkill /F /PID 37148;
  • Tuesday, 30 December 2025

    Microsoft Agent Framework - Learn - Open AI

     Perfect! Now I have comprehensive information about .NET Agent frameworks. Let me create a detailed learning guide tailored specifically for you as a .NET developer.

    .NET Agent Framework Learning Path - Complete Guide

    As a .NET developer, you're in an excellent position—Microsoft has built three complementary frameworks specifically for you. Here's your step-by-step learning path:


    The Three .NET Agent Frameworks

    FrameworkBest ForMaturityComplexity
    Microsoft Agent FrameworkMulti-agent orchestration, workflows, enterprise🟢 Production-Ready (Oct 2025)Advanced
    Azure AI Foundry Agent ServiceCode-first agents, quick deployment, integration🟢 Production-Ready (Dec 2025)Medium
    Semantic KernelFlexible plugins, planning, research-driven🟢 Mature (evolving)Medium

    TL;DR for .NET devs: Agent Framework = next-gen (most powerful), Foundry = quick start (easiest), Semantic Kernel = flexible (most versatile)


    Phase 1: Foundation (Days 1-3)

    Step 1: Understand the .NET Agent Ecosystem

    Key Architectural Change (Critical!):
    Microsoft unified .NET agent development around Microsoft.Extensions.AI.* namespaces:

    • ❌ OLD: Microsoft.SemanticKernel.* (still works, but migrating)

    • ✅ NEW: Microsoft.Extensions.AI.* (unified foundation)

    • ✅ NEW: Microsoft.Agent.Framework.* (orchestration)

    Why This Matters:

    • Standardized AI building blocks across all frameworks

    • Agents now manage threads natively

    • Simpler tool registration without attributes/wrappers

    • Better integration with dependency injection

    Step 2: Set Up Your .NET Development Environment

    bash
    # Prerequisites ✅ .NET 8 or later (required) ✅ Visual Studio 2022 or VS Code ✅ Azure CLI: az login (authenticate to Azure) ✅ Azure Subscription with resources # Create your first project dotnet new console -n MyAgentApp cd MyAgentApp # Install core NuGet packages dotnet add package Azure.AI.Projects --version 1.0.0 dotnet add package Microsoft.Extensions.AI --version 9.0.0 dotnet add package Microsoft.SemanticKernel --version 1.34.0 # if using SK

    Step 3: Choose Your Starting Framework

    Quick Decision Matrix:

    text
    Need enterprise multi-agent orchestration? → Start with Microsoft Agent Framework Need to deploy quickly with minimal setup? → Start with Azure AI Foundry Service Need flexibility and plugin-based design? → Start with Semantic Kernel

    Phase 2A: Azure AI Foundry Agent Service (Easiest Start)

    Best if: You want the fastest path to a working agent (Days 4-6)

    Step 4: Create Your First Foundry Agent in the Portal

    1. Go to Azure AI Foundry: https://ai.azure.com

    2. Create a Project → Select gpt-4o-mini model

    3. Build & Customize → Agents → + Create agent

    4. Configure:

      text
      Name: MyFirstAgent Instructions: You are a helpful C# code assistant Model: gpt-4o-mini Tools: Code Interpreter ✓
    5. Test in Playground → Ask: "Write a simple C# LINQ example"

    Step 5: Build with Azure AI Foundry .NET SDK

    C# Code Example:

    csharp
    using Azure; using Azure.AI.Projects; using Azure.Identity; // Initialize client (uses DefaultAzureCredential) var projectClient = new AIProjectClient( new Uri(Environment.GetEnvironmentVariable("PROJECT_ENDPOINT")), new DefaultAzureCredential() ); // Create agent with code interpreter var agent = await projectClient.Agents.CreateAgentAsync( new CreateAgentOptions { Name = "CodeHelper", Instructions = "You are a C# programming expert. Help users with .NET code.", Model = "gpt-4o-mini", Tools = new List<ToolDefinition> { new CodeInterpreterToolDefinition() } } ); // Create a thread (conversation) var thread = await projectClient.Agents.Threads.CreateThreadAsync(); // Send a message var message = await projectClient.Agents.Messages.CreateMessageAsync( thread.Id, new CreateMessageOptions { Role = "user", Content = "Write a C# async method to fetch weather data" } ); // Run the agent var run = await projectClient.Agents.Runs.CreateAndProcessRunAsync( thread.Id, agent.Id ); // Get responses var messages = await projectClient.Agents.Messages.ListMessagesAsync( thread.Id ); foreach (var msg in messages) { Console.WriteLine($"Role: {msg.Role}, Content: {msg.Content}"); }

    Key Points:

    • ✅ No special configuration needed beyond PROJECT_ENDPOINT environment variable

    • ✅ Built-in code interpreter for executing C# code

    • ✅ Thread management is automatic

    • ✅ Minimal boilerplate code


    Phase 2B: Semantic Kernel (Maximum Flexibility)

    Best if: You need plugins, planners, and fine-grained control (Days 4-6)

    Step 6: Build Agents with Semantic Kernel

    Installation:

    bash
    dotnet add package Microsoft.SemanticKernel --version 1.34.0

    Example: Email Agent with Plugins

    csharp
    using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Agents; using Microsoft.SemanticKernel.ChatCompletion; // Initialize kernel var kernel = Kernel.CreateBuilder() .AddAzureOpenAIChatCompletion( deploymentName: "gpt-4o-mini", endpoint: new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")), apiKey: Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ) .Build(); // Define email plugin public class EmailPlugin { [KernelFunction] [Description("Send an email")] public async Task SendEmailAsync( [Description("Recipient email")] string to, [Description("Subject")] string subject, [Description("Body")] string body) { // Simulate sending Console.WriteLine($"Email sent to {to}: {subject}"); return "Email sent successfully"; } [KernelFunction] [Description("Get email templates")] public string GetEmailTemplate(string category) { return category switch { "meeting" => "Meeting invitation template...", "followup" => "Follow-up template...", _ => "Generic template..." }; } } // Register plugin kernel.Plugins.AddFromType<EmailPlugin>(); // Create agent var agent = new ChatCompletionAgent { Name = "EmailAssistant", Instructions = "You are a professional email assistant. Use email tools to compose and send emails.", Kernel = kernel, ExecutionSettings = new OpenAIPromptExecutionSettings { ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions } }; // Use agent var chat = new AgentGroupChat(agent); await chat.AddUserMessageAsync("Send a meeting invitation to john@example.com"); await agent.InvokeAsync(chat); // Get responses foreach (var message in chat.GetMessages()) { Console.WriteLine($"{message.Role}: {message.Content}"); }

    Key Semantic Kernel Concepts:

    ConceptPurposeUsage
    KernelCore engineCoordinates plugins, models, functions
    PluginReusable function set[KernelFunction] decorated methods
    ChatCompletionAgentAgent typeMulti-turn conversation with plugins
    ChatGroupAgentMulti-agentMultiple agents collaborating

    Phase 2C: Microsoft Agent Framework (Production Enterprise)

    Best if: You need orchestration, workflows, and multi-agent systems (Days 7-11)

    Step 7: Master Agent Framework

    Installation:

    bash
    # Core framework dotnet add package Microsoft.Agent.Framework --version 1.0.0 # For Azure AI Foundry integration dotnet add package Microsoft.Agent.Framework.Azure --version 1.0.0 # For code interpreter dotnet add package Microsoft.Extensions.AI --version 9.0.0

    Key Capabilities:

    ✅ Multi-Agent Orchestration - Sequential, concurrent, hand-off, magentic patterns
    ✅ Workflow Checkpointing - Save/resume long-running processes
    ✅ Human-in-the-Loop - Route approvals before tool execution
    ✅ Native Thread Management - Agents handle state automatically
    ✅ OpenTelemetry Integration - Built-in observability
    ✅ MCP Server Support - Model Context Protocol for external tools

    Step 8: Build Your First Agent Framework Agent

    csharp
    using Microsoft.Agent.Framework; using Microsoft.Agent.Framework.Azure; using Microsoft.Extensions.AI; using Azure.Identity; // Initialize with Azure OpenAI var chatClient = new AzureOpenAIClient( new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")), new DefaultAzureCredential() ).AsChatClient("gpt-4o-mini"); // Create agent var agent = new Agent( id: "sales-analyst", name: "Sales Analyst Agent", instructions: """ You are a sales data analyst. Use database tools to query sales data. Provide insights and recommendations. """, chatClient: chatClient ); // Add tools (native support - no attributes needed!) agent.AddTool("fetch_sales_data", new ToolDefinition( name: "fetch_sales_data", description: "Fetch sales data from database", inputSchema: new JsonSchema { Type = "object", Properties = new Dictionary<string, JsonSchema> { { "month", new JsonSchema { Type = "string", Description = "Month name" } }, { "year", new JsonSchema { Type = "integer", Description = "Year" } } } }, handler: async (input) => { // Query database return await FetchSalesFromDatabase(input["month"], input["year"]); } )); // Run agent var thread = new AgentThread(); var response = await agent.RunAsync( thread: thread, input: "What were our Q3 2025 sales by region?", cancellationToken: CancellationToken.None ); Console.WriteLine(response);

    Phase 3: Advanced Features (Days 8-11)

    Step 9: Multi-Agent Orchestration

    Use Case: Sales agent + Customer service agent + Billing agent working together

    csharp
    // Define specialized agents var salesAgent = new Agent(id: "sales", instructions: "You handle sales inquiries"); var serviceAgent = new Agent(id: "service", instructions: "You handle support tickets"); var billingAgent = new Agent(id: "billing", instructions: "You handle billing issues"); // Create orchestrator var orchestrator = new AgentOrchestrator( agents: new[] { salesAgent, serviceAgent, billingAgent }, routingStrategy: RoutingStrategy.Magentic // LLM decides which agent handles it ); // Route customer inquiry var result = await orchestrator.ProcessAsync( input: "I have a billing problem but also want to upgrade my plan" ); // Both agents collaborate on the response Console.WriteLine(result); // Multi-agent response

    Orchestration Patterns:

    • Sequential: Agent A → Agent B → Agent C (ordered)

    • Concurrent: All agents run in parallel

    • Hand-off: Agent transfers to another mid-conversation

    • Magentic: LLM intelligently routes between agents

    Step 10: Implement Workflows

    csharp
    using Microsoft.Agent.Framework.Workflows; // Define workflow steps var workflow = new AgentWorkflow() .AddStep( name: "validate_order", agent: validationAgent, input: "Validate customer order" ) .AddStep( name: "process_payment", agent: paymentAgent, input: context => context.GetStepOutput("validate_order") ) .AddStep( name: "confirm_shipment", agent: shippingAgent, input: context => context.GetStepOutput("process_payment") ) .WithCheckpoint() // Save state for recovery .WithApproval(requiresApproval: true, forStep: "process_payment"); // Human approval // Execute workflow var executionResult = await workflow.ExecuteAsync( input: new { customerId = "12345", orderAmount = 500 } ); Console.WriteLine($"Workflow completed: {executionResult.Success}");

    Step 11: Add Custom Tools with MCP

    Model Context Protocol Integration:

    csharp
    // Connect MCP server (e.g., database access) var mcpServer = new MCPServerClient( uri: "stdio:///path/to/mcp-database-server" ); await agent.AddMCPToolsAsync(mcpServer); // Now agent can directly query databases via MCP var response = await agent.RunAsync( thread: thread, input: "Get all customers from the database where revenue > $100k" );

    Phase 4: Production Deployment (Days 12-14)

    Step 12: Host on Azure App Service

    csharp
    // Program.cs for ASP.NET Core var builder = WebApplication.CreateBuilder(args); // Register agents as services builder.Services.AddSingleton<SalesAgent>(); builder.Services.AddSingleton<SupportAgent>(); // Register Agent Framework builder.Services.AddAgentFramework() .WithAzureAIFoundry(config => { config.Endpoint = builder.Configuration["Azure:AIFoundryEndpoint"]; config.SubscriptionId = builder.Configuration["Azure:SubscriptionId"]; }) .WithObservability(config => { config.EnableOpenTelemetry = true; config.ApplicationInsightsKey = builder.Configuration["ApplicationInsights:InstrumentationKey"]; }); var app = builder.Build(); // API endpoint to invoke agent app.MapPost("/api/chat", async (ChatRequest request, SalesAgent agent) => { var thread = new AgentThread(); var response = await agent.RunAsync(thread, request.Message); return Results.Ok(new { response }); }); app.Run();

    Deployment Checklist:

    •  Use managed identity (DefaultAzureCredential)

    •  Configure RBAC: Azure AI User role at project scope

    •  Enable OpenTelemetry → Application Insights

    •  Set up CI/CD with GitHub Actions

    •  Implement human-in-the-loop for sensitive operations

    •  Add telemetry and monitoring

    •  Test error handling and recovery

    Step 13: Testing & Validation

    csharp
    // Unit test with mocked tools [Test] public async Task Agent_Should_Call_Database_Tool() { var mockTool = new Mock<IToolDefinition>(); var agent = new Agent(instructions: "test", tools: new[] { mockTool.Object }); var result = await agent.RunAsync( thread: new AgentThread(), input: "Fetch sales data" ); mockTool.Verify(t => t.InvokeAsync(It.IsAny<object>()), Times.Once); }

    Recommended Learning Resources for .NET Devs

    ResourceTypeFocusDuration
    Agent Framework Quick-StartQuickstartSetup & basics15 mins
    Foundry Agent Service (.NET) TutorialTutorialCode-first agents30 mins
    Semantic Kernel Samples (C#)GitHubPlugins & planningSelf-paced
    Build Agentic Web App (ASP.NET Core)Full TutorialProduction patterns1-2 hours
    .NET AI Community StandupVideoFramework overview1 hour
    Building AI Agents in .NET with Semantic KernelVideoHands-on example30 mins

    Key Differences: Which Framework to Use?

    Azure AI Foundry Service

    ✅ Use when:

    • You want quick deployment with portal + SDK

    • You need code interpreter, Bing grounding, knowledge base

    • You prefer managed service (less infrastructure)

    ❌ Don't use when:

    • You need advanced orchestration patterns

    • You want completely local-first development

    Best for: Quick prototypes, startups, managed service preference

    Semantic Kernel

    ✅ Use when:

    • You want flexible plugin-based architecture

    • You need planning/reasoning capabilities

    • You like research-driven patterns

    ❌ Don't use when:

    • You need multi-agent orchestration

    • You want enterprise-grade workflows

    Best for: Flexibility, plugins, experimentation

    Microsoft Agent Framework

    ✅ Use when:

    • You need multi-agent orchestration

    • You want workflows with checkpointing

    • You need production-grade features (human approvals, observability)

    • You're building enterprise systems

    ❌ Don't use when:

    • You want simplicity (Framework has more concepts)

    • You're building single-agent chatbots

    Best for: Enterprise, complex systems, production


    Quick 14-Day .NET Agent Mastery Plan

    text
    Days 1-3: Foundation + Environment Setup Days 4-6: Azure Foundry Agent Service (Easiest) Days 7-9: Semantic Kernel Plugins & Agents Days 10-11: Agent Framework Orchestration Days 12-13: Multi-Agent Workflows & Tools Day 14: Production Deployment on App Service

    Your Advantage as a .NET Developer

    You have several advantages over Python developers:

    1. ✅ Dependency Injection - Built-in DI with ASP.NET Core

    2. ✅ Type Safety - C# static typing prevents bugs

    3. ✅ Enterprise Patterns - Know middleware, authentication, RBAC

    4. ✅ Async/Await - Better async patterns than Python

    5. ✅ Hosting - Deep knowledge of App Service, deployment patterns


    Would you like me to create:

    1. A working code-first agent project you can clone and modify?

    2. A detailed comparison spreadsheet of all three frameworks?

    3. A production-ready ASP.NET Core web app with agents integrated?

    Let me know which direction you'd like to go! 🚀