An experimental, agentic learning platform built on Azure AI Foundry, Microsoft Agent Framework, and Microsoft 365 Agents SDK — inspired by Microsoft AI Skills Navigator.
Mentor, not catalog. Six specialized AI agents collaborate to give each learner a personal, adaptive skilling experience across Microsoft Teams, M365 Copilot, and a Next.js web app.
A reference implementation for a multi-agent learning platform that demonstrates:
- Six specialized agents orchestrated through Azure AI Foundry — Assessment, Path Builder, Coaching, Progress Tracker, Credential, and Team Advisor.
- Prompt-based agents with server-side tools — agents are defined declaratively (YAML + system prompts); tool calls hit Azure Functions via OpenAPI 3.0.1 specs.
- Three client surfaces — Teams Bot and M365 Copilot app (via Microsoft 365 Agents SDK) and a Next.js 15 web app (NextAuth v5 + Entra ID).
- Event-driven backbone — Azure Service Bus topics, Cosmos DB change feed, and Functions timer triggers for proactive nudges.
- End-to-end IaC — Bicep modules for Foundry, Cosmos, Service Bus, Functions, App Insights, Redis, App Configuration.
- Agent evals + integration tests — xUnit harnesses for prompt regressions and pipeline behavior.
This repo is shared publicly because the architecture, ADRs, and agent design patterns may be useful to anyone exploring:
- Building production-shaped agentic systems on Azure AI Foundry.
- Coordinating multiple specialized agents with handoffs vs. workflows.
- Wiring Foundry agents to OpenAPI tool endpoints on Azure Functions.
- Delivering the same agent fabric through Teams, Copilot, and a custom web UI.
- Using AI coding agents (GitHub Copilot, etc.) against a documented architecture — see
AGENTS.mdandARCHITECTURE.md.
Clients (Teams · Copilot · Web)
│
▼ Entra ID SSO
API Gateway (APIM) ──► Service Bus ──► Azure Functions (tool endpoints)
│ ▲
▼ │ OpenAPI calls
Azure AI Foundry ────────────────┘
(6 prompt agents, gpt-4o)
│
▼
Cosmos DB · Redis · AI Search · Blob · App Insights
Full diagrams, agent inventory, message contracts, and design rationale: ARCHITECTURE.md.
Architectural decisions and open questions: docs/adr/.
src/
├── Agents/ One .NET project per agent (Assessment, PathBuilder, Coaching,
│ ProgressTracker, Credential, TeamAdvisor) + Foundry agent.yaml
├── Api/Functions/ Azure Functions (HTTP tool endpoints + Service Bus triggers)
├── Clients/
│ ├── TeamsBot/ Microsoft 365 Agents SDK
│ ├── CopilotApp/ Microsoft 365 Agents SDK
│ └── WebApp/ Next.js 15 · React 19 · NextAuth v5
└── Shared/ Models, Contracts, Persistence, Utils, AgentHost
infra/
├── bicep/ Foundry, Cosmos, Service Bus, Functions, Redis, App Insights, ...
├── foundry/ Foundry agent manifest + sync script
└── scripts/ deploy-* helpers
tests/
├── AgentEvals/ Prompt regression harness
├── Integration/ Pipeline tests
└── DevHarness/ Local agent runner
docs/
├── architecture.md · user-flow.md
└── adr/ Decision log + open questions
| Layer | Technology |
|---|---|
| Backend (all) | C# / .NET 10, isolated Functions worker |
| Agent runtime | Azure AI Foundry + Microsoft Agent Framework 1.0 |
| Channel integration | Microsoft 365 Agents SDK (Teams + Copilot) |
| Web app | TypeScript, Next.js 15 (App Router), React 19 |
| Web auth | NextAuth v5 (beta) + Microsoft Entra ID |
| Data | Cosmos DB (NoSQL), Redis, AI Search, Blob, Data Explorer |
| Messaging | Azure Service Bus (topics + sessions) |
| Observability | App Insights, Log Analytics, Foundry tracing |
| Infra | Bicep |
See AGENTS.md for full coding conventions when contributing or letting an AI agent work in this repo.
Status: This is an experimental reference architecture, not a turnkey product. Expect to read
ARCHITECTURE.mdand adapt to your tenant.
- An Azure subscription with permission to create Foundry, Functions, Cosmos DB, and Service Bus resources.
- An Entra ID tenant where you can register applications.
- .NET 10 SDK, Node.js 20+, Azure CLI, and
gh.
# Review the Bicep first — replace location, naming, and quotas to suit your tenant.
./infra/scripts/deploy-infra.sh./infra/scripts/register-agents.sh # creates agents in Foundry from infra/foundry/agents.json
./infra/foundry/sync-agents.sh # pushes prompt + tool updates./infra/scripts/deploy-functions.sh
./infra/scripts/deploy-webapp.sh# Backend (agent dev harness)
dotnet run --project tests/DevHarness
# Web app
cd src/Clients/WebApp && npm install && npm run devYou'll need to create your own local.settings.json, .env.local, and appsettings.Development.json files — these are intentionally excluded from version control. See ARCHITECTURE.md for the required configuration keys.
This is a personal experimental project shared publicly for learning value. It is not a Microsoft product, and is not affiliated with or endorsed by Microsoft. Expect rough edges, in-progress refactors, and breaking changes.
Issues and discussions are welcome. For substantive changes, please open an issue first to discuss the direction. There is no formal PR process — please be patient with reviews.
See SECURITY.md for the (low-formality) vulnerability reporting process.
MIT © 2026 Ilias Jennane.
The agent design philosophy and overall product framing draw inspiration from Microsoft AI Skills Navigator. All implementation here is original work unless otherwise noted.