What it does
Microsoft 365 Agents Toolkit (the renamed Teams Toolkit) is the developer tooling that scaffolds, debugs, provisions and publishes custom Teams apps. Those apps are built from a handful of capabilities — bots, message extensions, tabs and meeting extensions — packaged behind one app manifest.
Key facts
- Teams Toolkit has been renamed Microsoft 365 Agents Toolkit. It ships as a VS Code extension, a Visual Studio extension and a CLI.
- It handles Entra app registration, bot registration, multiple environments (dev/test/prod), local debugging through Dev Tunnels and Azure provisioning via Bicep. Agents Playground lets you test a bot without a Teams registration.
- The TeamsFx SDK is deprecated, with community-only support stated as running until September 2026. Microsoft's direction is Teams SDK for Teams-only apps and bots, and Microsoft 365 Agents SDK for multichannel agents. Teams AI Library v1 is also deprecated.
- Bots work in three scopes: personal, group chat and channel.
- Message extensions have two command types: search (from compose box or command box) and action (also from a message, opening a modal). Up to 10 commands per message extension.
- API-based message extensions are built from an OpenAPI description and support search commands only; bot-based ones support action, search and link unfurling but need Azure bot infrastructure.
- Message extensions can't be @mentioned and don't work in group chats with external users.
- Meeting app surfaces: pre-meeting tab, side panel, meeting stage (Share to stage), in-meeting notifications/dialogs and post-meeting. Organisers and presenters can start apps on stage; attendees can view and interact.
- Meeting apps aren't supported in end-to-end encrypted calls, instant channel meetings or shared channel meetings. Federated users get presenter-only support in scheduled meetings; anonymous users only in scheduled/instant meetings.
- Custom (LOB) meeting apps are available in GCC, GCC High, DoD and 21Vianet; third-party meeting apps only in GCC.
- Teams Developer Portal is the place to configure, validate and distribute app packages outside the IDE.
When to use / skip
If the requirement is "post a message when something happens" or "let someone approve a request from a card", reach for Workflows first — it's no-code and someone in the business can own it. Build a custom app when you need conversational logic, proper authentication against a line-of-business system, search across that system from the compose box, or a tab that lives inside a meeting. That's the point where Agents Toolkit earns its keep.
For a UC or contact-centre consultant, the realistic custom-app work is a notification bot posting incident or queue alerts, a message extension that searches a CRM and drops a card into chat, or a meeting side panel for a structured process. Anything AI-heavy is now framed as a custom engine agent — that conversation belongs with the Copilot and agents workstream, even though the toolkit is the same.
Configuration decisions
- SDK choice for new builds: Teams SDK (Teams-only) or Microsoft 365 Agents SDK (multichannel). Don't start anything new on TeamsFx.
- API-based versus bot-based message extension — API-based is simpler to run but search-only.
- Hosting and identity: which Azure subscription, single-tenant Entra app registration, and who owns the secrets or certificates after handover.
- How the app is distributed: sideloaded in dev, published to org through Developer Portal or Agents Toolkit, then made available via Manage apps.
- Whether a bot needs to be pre-installed for users via setup policy so it can send proactive messages.
- Meeting app scope — which meeting types it has to work in, given the unsupported scenarios above.
Gotchas
- TeamsFx's community support window has closed as of this writing. Inherited projects built on it need a migration plan, not just a rebuild.
- A bot can only proactively message a user who has the app installed. That's why notification bots usually go out via setup policy installs.
- Search commands can't be triggered from a message — only action commands can. Clients often ask for "search from this message" and it's not a thing.
- Link unfurling needs a bot-based message extension and a domain subscription in the manifest.
- Meeting apps don't follow a one-to-one call when it escalates to a group call; it's a new session and apps have to be re-added.
- Dev Tunnels are fine for local debugging but aren't a production hosting option. Don't let a pilot quietly run from a developer's laptop.
- Toolkit support for GCC and sovereign clouds lags commercial. Check the current state on Learn before committing a government delivery date.
Consultant notes
- Keep three environments (dev, test, prod) from the start; Agents Toolkit makes it cheap and it saves the "who changed the manifest in prod" conversation.
- Agree app ownership up front — publisher name, support contact and privacy/terms URLs in the manifest — before the admin team will approve it.
- Give developers their own sideload-enabled tenant or group so the production setup policy stays locked down.
- Document every Graph and RSC permission the app requests; it's the first thing a security reviewer will ask about.
- When a client's ask is really a Copilot agent, hand it to that workstream rather than letting the app project absorb it.
Worth revisiting after the next Agents Toolkit major release, or once Microsoft publishes a firm end-of-support date for the Bot Framework SDK