-
Notifications
You must be signed in to change notification settings - Fork 83
Description
Track
Enterprise Agents - Build with M365 Agents Toolkit
Project Name
Enterprise Support Agent
GitHub Username
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
- Clone the repo:
git clone https://github.com/ANcpLua/agentsleague-starter-kits.git - Navigate:
cd agentsleague-starter-kits/track-3-enterprise-agents - Copy environment config:
cp src/EnterpriseSupportAgent/.env.example src/EnterpriseSupportAgent/.env - Edit
.envwith your GitHub Models API key and Azure credentials - Build:
dotnet build src/EnterpriseSupportAgent/EnterpriseSupportAgent.csproj - 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