Microsoft 365 Agents SDK
Type: full-code · Vendor: Microsoft · Language: C#, JavaScript, Python · License: MIT · Status: active · Status in practice: emerging · First released: 2024-11-19
The Microsoft 365 Agents SDK is a development framework for building conversational agents that receive messages across channels such as Teams, Copilot, web, and Slack, route each activity to a handler, and respond with conversation state intact.
Description. The Microsoft 365 Agents SDK is a framework for building conversational agents in C#, JavaScript, or Python. It provides a channel abstraction layer so agent logic written once works across Microsoft Teams, Microsoft 365 Copilot, a company website, Slack, and other surfaces, normalizing each incoming message into a common Activity and translating responses back to each channel's format. It is AI-agnostic by design, handling message receipt, state, and event routing while leaving response generation to whatever AI service or orchestration library the developer wires in. It is the successor to the Bot Framework SDK.
Agent loop shape. When a message arrives the SDK receives it from whatever channel sent it and normalizes it into a common Activity, routes that activity to the appropriate handler in the agent code based on activity type, then sends the response back through the same channel in that channel's format. Developers write handlers for the activity types they care about while the SDK handles authentication, format translation, channel connectivity, and turn-by-turn conversation state.
Primary use cases
- multi-channel conversational agents and bots
- Microsoft Teams and Microsoft 365 Copilot agents
- channel-agnostic message handling across Slack, web chat, and Teams
- conversation state management across turns
Key concepts
- Activity → translation-layer (docs) — The common normalized message format the SDK produces from any channel's incoming message, so a developer's handler reasons over one shape regardless of whether the message came from Teams, Slack, or web chat.
- Turn → short-term-memory (docs) — A single unit of work in a conversation; the SDK tracks state across turns through built-in state and storage so context survives between messages.
- Channel abstraction layer → translation-layer (docs) — The layer that connects to each surface (Teams, Copilot, Slack, web) and handles its authentication and protocol, so the agent's core behaviour is written once and reused across channels.
- AI-agnostic scaffolding (docs) — The design stance that the SDK provides message receipt, state, and event routing but makes no assumption about what generates the reply, so the developer plugs in any AI service or orchestration library.
Patterns this full-code implements —
- ★Topic-Based Routing
The SDK routes each normalized Activity to the handler registered for that activity type, so a message activity triggers one handler and a user-joining activity triggers another.
- ★★Translation Layer
A channel abstraction layer lets agent logic be written once: the SDK translates each incoming and outgoing message to and from the format the specific channel expects, so adding a channel does not r…
- ★★Short-Term Thread Memory
The SDK introduces the concept of a turn as a single unit of work and provides built-in state and storage so context carries across turns within a conversation without the developer wiring up a persi…
Neighbourhood
Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.