Skip to content

Project: [Enterprise Agents] - Enterprise Support Agent #129

@ANcpLua

Description

@ANcpLua

Track

Enterprise Agents - Build with M365 Agents Toolkit

Project Name

Enterprise Support Agent

GitHub Username

@ANcpLua

Repository URL

https://github.com/ANcpLua/agentsleague-starter-kits/tree/main/track-3-enterprise-agents

Project Description

Enterprise Support Agent is an AI-powered IT helpdesk that runs inside Microsoft 365 Copilot Chat. Three connected agents collaborate to handle support tickets, search enterprise knowledge, and send team notifications — all through rich Adaptive Cards.

What it does:

  • TicketAgent creates, updates, and tracks IT support tickets through natural language
  • KnowledgeAgent searches 25 embedded enterprise knowledge documents (150+ KB) and queries live telemetry via MCP
  • NotifyAgent sends team notifications with human-in-the-loop approval workflows

Problem it solves: Enterprise IT support is fragmented across ticketing portals, wikis, and chat channels. This agent unifies everything into one conversational interface inside M365 Copilot Chat.

Key features:

  • Connected 3-agent architecture with LLM-based intent routing
  • External MCP server with real read/write ticket operations (CreateTicket, UpdateTicket, GetTicket)
  • MCP observability integration for live telemetry queries (mcp.qyl.info)
  • Adaptive Cards for structured output and approval workflows
  • Microsoft Entra ID + Graph SSO authentication
  • OpenTelemetry instrumentation with Azure Monitor

Demo Video or Screenshots

Screenshots will be provided in the repository README.

Primary Programming Language

C#

Key Technologies Used

  • .NET 10.0 (LTS)
  • Microsoft Agents SDK v1.4
  • ModelContextProtocol v0.7.0-preview.1 (C# MCP SDK)
  • GitHub Models (gpt-4.1-mini) / Azure OpenAI
  • Microsoft Entra ID + MSAL
  • Azure Blob Storage
  • OpenTelemetry + Azure Monitor
  • M365 Agents Toolkit (ATK)
  • Adaptive Cards
  • Bot Framework

Submission Type

Individual

Team Members

N/A — Individual submission

Submission Requirements

  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses

Quick Setup Summary

  1. Clone the repo: git clone https://github.com/ANcpLua/agentsleague-starter-kits.git
  2. Navigate: cd agentsleague-starter-kits/track-3-enterprise-agents
  3. Copy environment config: cp src/EnterpriseSupportAgent/.env.example src/EnterpriseSupportAgent/.env
  4. Edit .env with your GitHub Models API key and Azure credentials
  5. Build: dotnet build src/EnterpriseSupportAgent/EnterpriseSupportAgent.csproj
  6. Run with ATK: Open in Visual Studio, press F5 to provision and launch in Copilot Chat

Technical Highlights

  • Connected Agents Architecture (15 pts): Three specialized agents (TicketAgent, KnowledgeAgent, NotifyAgent) orchestrated by an LLM intent classifier in Bot.cs. Each agent operates independently with its own system prompt and response format.
  • Dual MCP Integration (8 pts): Standalone SupportMcpServer with ticket CRUD tools (stdio transport) + remote MCP observability service connecting to mcp.qyl.info for live telemetry queries with LLM-driven tool selection.
  • Adaptive Cards (5 pts): Template binding engine with ResultCard for structured output and ConfirmationCard for approval workflows. Three additional card templates ready for escalation and input flows.
  • Only C# submission in the Enterprise track — built with .NET 10 because that is what enterprise shops actually use.
  • 150+ KB enterprise knowledge base across 9 domains (HR, IT, operations, management) loaded as embedded resources.
  • Human-in-the-loop: NotifyAgent requires explicit approval before sending notifications. No irreversible actions without user confirmation.

Challenges & Learnings

  • MCP SDK API evolution: The ModelContextProtocol C# SDK (v0.7.0-preview.1) renamed several types from earlier versions (IMcpClient -> McpClient, SseClientTransport -> HttpClientTransport). Required careful API migration.
  • Raw string literals with JSON: C# interpolated raw string literals conflict with JSON brace syntax. Solved by separating interpolated and non-interpolated portions.
  • Adaptive Card template binding: Built a custom regex-based template engine to bind data to card JSON templates, supporting both simple key replacement and array indexing.
  • Connected agent routing: Balancing intent classification accuracy with response latency — the LLM classifier adds one round-trip but enables clean separation of concerns.

Contact Information

anfh22@outlook.com — Alexander Nachtmann

Country/Region

Austria

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions