#SharePointProblems | Koskila.net

Solutions are worthless unless shared! Antti K. Koskela's Personal Professional Blog

Why M365 Agents SDK Should Be on Your Radar

koskila
Reading Time 9 min
Word Count 1569 words
Comments 0 comments
Rating n/a ( votes)
View

This article explains some of the pros and cons of the M365 Agents SDK: The ambitious successor to Teams Toolkit, and why you should care about it. I'm also sharing some of my and my peers experiences developing with it.

Background

Microsoft really, really REALLY wants to be THE Enterprise AI company, and place Copilot as the UI for AI.

Before they went completely overboard on the marketing hype and underdelivered on some aspects of the suite, I really liked the branding and thought this was a rare hit from Microsoft.

The M365 Agents SDK is one core part of the puzzle: One codebase, many M365 surfaces, AI‑first by duct tape. It holds great promise - but is just a tiiiiny bit wobbly in many parts!

It's positioned as a successor to Teams Toolkit, and a natural evolution of the Bot Framework, bridging the gap between the robust foundation of Bot Framework and cutting-edge modern AI capabilities. And for the Bot Framework, I suppose it really is an enhancement rather than a replacement, enabling developers to integrate AI services like Azure AI Foundry and orchestrate with frameworks like Semantic Kernel. This allows for model-agnostic setups, plugging in Azure OpenAI, OpenAI, or other LLMs seamlessly - while making integration with Teams and the rest of the M365 suite straightforward.

The old guard: Teams Toolkit still delivers

Teams Toolkit has long been THE way to build and ship Teams apps: Tabs, bots, message extensions, meeting apps... And in recent years, expanded reach into Microsoft 365 with the unified manifest and Teams JS 2.x enabling add‑ins for Outlook, the Microsoft 365 app and even the Microsoft 365 Copilot app.

I've posted about Teams Toolkit / Teams Fx before:

And presented at a couple of conferences, too:

It’s predictable, well‑documented, and battle‑tested for Teams‑centric workloads, with templates, auth wiring, and deployment that get you to production without heroics.

The new kid: M365 Agents SDK

The M365 Agents SDK takes that foundation and says: "Why stop at Teams?"

It’s designed for multi‑surface agents that can run in Microsoft 365 Copilot, Teams, and Outlook from the same codebase, with an AI‑first agent model and a rebranded toolkit (M365 Agents Toolkit) to scaffold, debug, and deploy.

It also includes an Agents Playground to test locally, and it’s positioned as the evolution of Teams Toolkit for building across Microsoft 365.

At its core, the additional values is that it lets you create intelligent agents that understand and respond to user prompts, define goals and steps, and use natural language to invoke business logic via plugins or APIs. These agents can optionally support multi-turn conversations, task planning, and memory - but the main pro is the seamless integration with M365 Copilot experiences in different apps.

One key to its power is the declarative agent definition: you describe what the agent can do rather than writing imperative code. Agents leverage plugins from REST APIs (OpenAPI/Swagger), Microsoft Graph calls, or Power Automate flows.

Why this matters

Holding my snark for just a little bit longer, here's the value you get:

  • Broader reach: One extension, bot or agent can show up in Copilot for Microsoft 365, Teams, and Outlook, reducing duplicate projects and channel‑specific glue code. Code once, run everywhere. 🫡
  • AI‑first architecture: Model‑agnostic by design; plug in Azure OpenAI, OpenAI, or other LLMs and orchestrate with your own logic or Semantic Kernel. 🤖
  • Developer workflow: Scaffolding, identity, and deployment are bundled in the M365 Agents Toolkit extension, carrying forward the “it just works" ethos. 🛠️

My thoughts on M365 Agents SDK stability

Moreover, integrating with Semantic Kernel supercharges your agents. Semantic Kernel provides an enterprise-grade framework for AI-first apps, handling advancements like parallel function calling, vector stores, and now an Agent Framework. This stack enables deeper understanding of user intent, more accurate responses, and context-aware applications that can be deployed across web, Teams, M365 Copilot, and beyond.

The catch: It just... Works?

  • Churn and fragility: Rapid iteration means some templates and samples don’t run cleanly without tweaks (auth, manifests, version mismatches). You’ll still juggle Entra ID, Azure Bot Service, and Teams Dev Portal - but now with extra moving parts for Copilot. There's a lot of plumbing - and the stack traces are swallowed by the layers of abstraction, making debugging a challenge.
  • Reality check for timelines: If your requirement is “no surprises, ship this quarter,” the Teams‑first path remains saner. If you don't mind having to figure out stuff that just doesn't work, the Agents SDK is worth exploring.

Then vs. now: Teams Toolkit vs. M365 Agents SDK

Feature / aspect Teams Toolkit M365 Agents SDK
Primary target Teams apps (tabs, bots, messaging extensions, meeting apps) plus extended reach into Outlook and Microsoft 365 via unified manifest All of the previous, and agents across Teams, Microsoft 365 Copilot, and (at least theoretically) the rest of the Office apps from one codebase. Your Mileage May Vary, though.
AI integration Bring‑your‑own AI; no native agent pattern. Agent‑first design; model‑agnostic integration and tool orchestration.
Scaffolding Mature templates for Teams and M365 surfaces. New agent templates; faster‑moving and occasionally unstable.
Auth/SSO Well‑documented (largely by the community) for Teams/M365, relatively predictable, many previously functioning samples might have been broken by the upgrade to M365 Agents SDK. Still evolving; cross‑surface auth and manifest nuances require care.
Manifest handling Uses a unified manifest for Teams and Microsoft 365, with backwards-compatibility and a lot of version changes! Comes with a basic Entra ID manifest (for SSO). For Teams, it's the same manifest. For Entra ID, it's not. Good luck figuring it out.
Tooling Teams Toolkit in VS Code/Visual Studio, Teams Toolkit / TeamsFx CLI M365 Agents Toolkit (evolved from Teams Toolkit) in VS Code/Visual Studio, CLI, Agents Playground
Reach Primarily Teams, plus Outlook/Microsoft 365 and M365 Copilot app scenarios Everything in Teams Toolkit + Copilot, Teams, Outlook, and custom channels via one agent
Stability I never thought I'd say this, but it's high. Expect frequent updates and occasional breakage
Best fit Ship‑now Teams/M365 experiences with minimal risk Strategic bet for cross‑surface agent reach and AI‑first scenarios
Coding Agent tool support Great (as far as any AI Agent tooling goes) - GitHub Copilot knows what to do, what works, what doesn't. Poor - ships with an agent for GitHub Copilot (usable for guidance and scaffolding) that doesn't seem to know much about M365 Agents SDK, and will rather try to use years-old Bot Framework patterns and dependencies that don't exist anymore. Will happily link to removed Microsoft Learn articles.

Practical advice

That's what I'm here for, right? Tales from the trenches.

If you need stability and productivity now

Stick with Teams Toolkit for Teams‑centric apps (or if you're fine with the limited reach in other Office apps); you’ll move faster and sleep better. Your app can still be exposed as "a bot" in Copilot, even if it’s not a first‑class agent.

If you like hurting yourself to the "Cutting Edge"

Start with the M365 Agents SDK, but pin versions, validate SSO early, and budget time for manifest/authentication tweaks. Choose this approach if you're aiming for true multi-surface agents, that can interact with one another, in addition to being surfaced through M365 Copilot directly.

Bottom line

The old stack still works and still delivers (especially if you don't need any "real" agentic functionality, and are happy with a bot that can be surfaced through Teams and M365 Copilot).

The new stack will get there: One agent, many surfaces, AI‑first by default.

It's a bit weird, but they both kind of ship in one. Existing Teams Toolkit extensions - samples on GitHub included - mostly work within M365 Agents SDK as they are, even though some of them are broken.

Microsoft of younder days might have taken better care of the backwards compatibility, but hey - moving fast and breaking things is more fun.

Today, the M365 Agents Toolkit ambitious and a bit unstable; tomorrow, it’s likely the default path. Choose based on your timeline and appetite for change—not the slideware.


In a way, it's amazing to me that Microsoft is trying so hard to make everything into an Agent or a Copilot, that the renaming and rebranding takes precedence over making sure the actual functionality works. Or that existing functionality is not broken by the new stuff.

Case in point: The old link to Teams Toolkit documentation is now replaced by the M365 Agents SDK documentation... Which goes on to mention that Teams Toolkit is deprecated, and that you should use M365 Agents SDK instead.

"TeamsFx SDK will be officially deprecated by September 2025, with support continuing until September 2026. We recommend planning your transition to the Microsoft 365 Agents SDK for ongoing and future development needs." - Microsoft

The old stuff is still available, though.

Branding, branding, branding. Teams Toolkit and TeamsFx SDK are deprecated, while ironically being the parts of the puzzle that actually work.

Anyway. Happy M365 Agentsing!

References

Comments

Interactive comments not implemented yet. Showing legacy comments migrated from WordPress.

No comments yet.

Whitewater Magpie Ltd.
© 2025
Static Site Generation timestamp: 2025-09-09T15:56:20Z