Dev & Engineering ✓ Microsoft · Official microsoft-365-agentspython-sdkaiohttpteamscopilot-studiomsalazure-openai

Microsoft 365 Agents SDK for Python

Build async, multichannel agents for Teams, Microsoft 365, and Copilot Studio.

FollowSkills review · FSRS-2.0
Use with care
50/ 100 5-point scale 2.5 / 5
1 2 3 4 5 6
1Trust14 / 25 · 2.8/5

The documentation recommends environment-held secrets, MSAL, JWT middleware, and explicit Graph authentication, and it shows the intended token use. However, it does not define least-privilege scopes, user confirmation, token lifecycle or log redaction, complete external data-flow disclosure, or rollback. MemoryStorage is only flagged for replacement in production. Main risks are visible but governance is incomplete, so points are deducted.

2Reliability8 / 20 · 2.0/5

Core hosting, routing, streaming, and error-handling paths are illustrated, and streaming cleanup uses finally. However, examples have omitted or potentially unresolved dependencies/imports such as Activity, the Copilot example conflicts with the broad async-with rule, API signatures require external verification, and no skill-specific tests or abnormal-input diagnostics are provided. Under static calibration the score is capped at 10 and is reduced for these gaps.

3Adaptability9 / 15 · 3.0/5

Trigger phrases, Python audience, Teams/M365/Copilot Studio scenarios, and major capabilities are reasonably clear. Non-fit boundaries, deployment prerequisites, authentication-mode boundaries, and input/output contracts are under-specified, with no Chinese-language or mainland-China reachability guidance. The scenario is clear but semantic and environment-fit evidence is limited, so points are deducted.

4Convention9 / 15 · 3.0/5

The skill includes metadata, installation instructions, environment variables, layered examples, best practices, reference links, and a capabilities reference. MIT licensing and Microsoft attribution are clear. It lacks an explicit maintainer, changelog, compatibility matrix, dependency pinning, troubleshooting guidance, and complete resource-cleanup instructions; some guidance also depends on external MCP access. Points are deducted for these maintenance and usability gaps.

5Effectiveness7 / 15 · 2.3/5

The material directly covers aiohttp hosting, routing, streaming, OAuth, and the Copilot Studio client, making it useful as implementation guidance. However, several snippets require users to fill in imports, configuration, version checks, and production security details, and no directly verified representative output or end-to-end result is supplied. Static calibration caps effectiveness at 7, which is awarded as the ceiling but not exceeded.

6Verifiability3 / 10 · 1.5/5

The files provide traceable Microsoft Learn, GitHub sample, and PyPI references, plus repository-level CI/test material. Those materials do not demonstrate executed verification of this skill's key paths, and there are no skill-specific tests, pinned dependency versions, or documented cross-checks. Evidence is auditable but limited, so points are deducted.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a
Before you use it
  • Verify current SDK API signatures and package versions before implementation; the document explicitly requires external Microsoft Docs MCP and PyPI verification.
  • Do not treat the snippets as production-ready: enforce least-privilege OAuth/Graph scopes, prevent token logging, and define user consent, data purpose, storage, and recovery behavior.
  • Check every example for imports, asynchronous resource cleanup, and CopilotClient shutdown; MemoryStorage is intended only for development.
  • If the environment cannot reach Microsoft/Azure services, Graph, Copilot Studio, or the external documentation MCP, core operation and verification may be blocked.
See the full review method →

What does this skill do, and when should you use it?

This skill gives coding agents implementation guidance for the Microsoft 365 Agents SDK for Python. It covers aiohttp hosting, AgentApplication routing, streaming responses, MSAL authentication, Microsoft Graph calls, and the Copilot Studio client. It includes installation commands, environment-variable templates, complete code patterns, and production-oriented practices. It fits developers building Python agents for Microsoft 365, Teams, or Copilot Studio.

It instructs a coding agent to install the Microsoft Agents SDK Python packages, configure connection and tenant settings, and produce an aiohttp application using CloudAdapter, AgentApplication, TurnContext, storage, and routing handlers. The examples cover conversation updates, string and regex message routes, invoke activities, error handling, OAuth-protected routes, Microsoft Graph requests, Azure OpenAI streaming, and direct Copilot Studio conversations. Before implementation, it directs the agent to verify current API signatures through the microsoft-docs MCP and confirm package versions on PyPI.

  1. A Python developer building an aiohttp-hosted multichannel agent for Teams or Microsoft 365.
  2. A team routing commands, messages, and activity types through AgentApplication decorators.
  3. A developer adding MSAL-based sign-in, token retrieval, Microsoft Graph access, and sign-out flows.
  4. A team integrating Azure OpenAI streaming responses into a Microsoft 365 agent.
  5. A developer connecting directly to a Copilot Studio agent from Python and streaming conversation actions.

What are this skill's strengths and limitations?

Pros
  • Provides end-to-end Python patterns from package installation and environment configuration to the aiohttp server entry point.
  • Covers routing, OAuth, Microsoft Graph, Azure OpenAI streaming, and Copilot Studio integration.
  • Emphasizes async handlers, explicit authentication managers, context-managed resources, and guaranteed stream cleanup.
  • Released under the MIT license and installable through the repository’s skill collection.
Limitations
  • The examples require several Microsoft Agents packages along with aiohttp, MSAL, Azure Identity, and the OpenAI client.
  • The instructions require checking the current documentation and PyPI versions, so examples should not be treated as immutable API guarantees.
  • The provided material does not include a dedicated test suite or platform compatibility evidence for this individual skill.
  • CopilotClient is documented as not implementing the context-manager protocol, and the token-cache implementation is only a placeholder in the example.

How do you install this skill?

Install the collection with npx skills add microsoft/skills, then select m365-agents-py in the wizard. The README says skills are installed in the selected coding agent directory, such as .github/skills/ for GitHub Copilot. The repository source path for this skill is .github/plugins/azure-sdk-python/skills/m365-agents-py/SKILL.md. For the generated application, install the listed Microsoft Agents SDK packages plus python-dotenv and aiohttp with pip.

How do you use this skill?

Give the coding agent a request such as: “Build an aiohttp-hosted Teams agent with the Microsoft 365 Agents SDK for Python, AgentApplication routing, MSAL authentication, and message handlers.” Ask it to verify the latest signatures for AgentApplication, start_agent_process, and authentication options, and to confirm the relevant PyPI package versions. Supply the required client, secret, and tenant environment variables, plus Azure OpenAI or Copilot Studio variables when those integrations are needed.

How does this skill compare with similar options?

The README identifies .NET and TypeScript Microsoft 365 Agents SDK skills in the same repository, but this profile covers only the Python skill.

FAQ

Does this skill deploy an agent or provision Azure resources automatically?
The source provides implementation and configuration guidance; it does not describe automatic deployment or resource provisioning.
Is MemoryStorage suitable for production?
No. The skill says to use MemoryStorage for development and BlobStorage or CosmosDB in production.
Must Azure OpenAI be accessed with an API key?
No. The example prefers DefaultAzureCredential with an AAD token provider rather than `AZURE_OPENAI_API_KEY`.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Microsoft 365 Agents SDK for TypeScript

Build TypeScript enterprise agents with routing, Express hosting, streaming responses, and Copilot Studio integration.

Dev & Engineering ✓ Microsoft · Official

Microsoft 365 Agents SDK for .NET

Build ASP.NET Core agents that connect across Teams, Microsoft 365, and Copilot Studio.

Dev & Engineering ✓ Microsoft · Official

Microsoft 365 Agent Evaluator

Design and run evaluation suites for Microsoft 365 Copilot declarative agents

Dev & Engineering ✓ Microsoft · Official

Microsoft Foundry Python Projects Skill

Gives coding agents dependable patterns for building Foundry AI applications with the Azure AI Projects Python SDK.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for Python

A practical skill for securing Python Azure applications with Microsoft Entra ID credentials.

Dev & Engineering ✓ Microsoft · Official

Azure AI Foundry Agent Framework

Helps Python developers build persistent Azure AI Foundry agents with hosted tools, MCP integrations, threads, and streaming.

Dev & Engineering ✓ Microsoft · Official

Azure Tables for Python

A practical guide to building authenticated Azure Tables applications with Python entity CRUD, queries, and partition-scoped batch operations.

Dev & Engineering ✓ Microsoft · Official

Azure AI Vision Image Analysis

Guides Python coding agents in implementing Azure AI Vision image understanding.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Python

Guides secure, production-minded Blob Storage operations in Python.

Dev & Engineering ✓ Microsoft · Official

Azure Queue Storage for Python

Gives coding agents reliable Python patterns for secure Azure Queue Storage messaging and asynchronous task processing.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB for Python

A practical guide for building reliable Python applications on Azure Cosmos DB’s NoSQL API.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault SDK for Python

Gives Python coding agents practical guidance for securely managing Azure Key Vault secrets, keys, and certificates.

Dev & Engineering ✓ Microsoft · Official

Azure API Management for Python

Gives coding agents practical Python SDK patterns for managing Azure API Management services, APIs, products, subscriptions, and policies.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Python

Generate Python code for querying Azure Monitor logs and metrics.

Dev & Engineering ✓ Microsoft · Official

Azure AI Content Safety for Python

Guides Python applications in detecting harmful text and images and enforcing custom blocklists.

Dev & Engineering ✓ Microsoft · Official

Azure App Configuration for Python

Centralize Python application settings, feature flags, and dynamic configuration in Azure.

Dev & Engineering ✓ Microsoft · Official

Azure Container Registry for Python

Manage Azure container images, artifacts, and repositories from Python.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Custom Log Ingestion

Guides Python agents to send custom logs to Log Analytics through the Logs Ingestion API.

Dev & Engineering ✓ Microsoft · Official

Azure Conversation Understanding for Python

Helps Python developers analyze conversation intents and entities with the Azure SDK.

Dev & Engineering ✓ Microsoft · Official

Azure Document Translation for Python

Batch-translate Azure Blob Storage documents in Python while preserving their original formats.

Related skills