Microsoft 365 Agents Python 开发技能
用 Python 构建 Teams、Microsoft 365 与 Copilot Studio 多渠道代理。
文档要求使用环境变量保存密钥、MSAL、JWT 中间件和显式 Graph 认证,并展示了令牌用途;但未规定最小权限范围、用户确认、令牌生命周期/日志脱敏、外部数据流披露或回滚方案,MemoryStorage 仅提示生产环境替换。因此主要风险可见但治理不完整,扣分。
主流程、路由、流式处理和异常处理均有示例,且流式响应使用 finally 收尾;但示例存在未展示的依赖与导入问题(如 Activity),Copilot 示例与“始终使用 async with”原则不一致,版本签名需外部核验,缺少针对关键路径的测试和异常输入反馈。按静态校准不超过10,扣分。
触发词、Python 受众、Teams/M365/Copilot Studio 场景和主要能力较明确;但未充分说明不适用范围、部署前置条件、不同认证模式边界、输入输出契约,也没有中文使用或中国大陆网络可达性说明。场景清晰但边界和环境适配证据有限,扣分。
SKILL.md 具备元数据、安装、环境变量、分层示例、最佳实践、参考链接及 capabilities.md;MIT 许可和 Microsoft 归属清楚。缺少明确维护负责人、变更日志、兼容版本矩阵、依赖锁定、故障排查和完整资源清理说明,且部分文档要求依赖外部 MCP,扣分。
内容直接覆盖 aiohttp 托管、路由、流式响应、OAuth 和 Copilot Studio 客户端,能够作为编码参考;但多个代码片段需要自行补全导入、配置、版本核验和生产化安全细节,缺少可验证的代表性输出或端到端结果。静态校准限制最高为7,取满上限但不再加分。
文件提供 Microsoft Learn、GitHub samples、PyPI 等可追溯参考,并有仓库级 CI/测试材料;但这些材料未证明该指定技能关键路径已执行验证,且缺少该技能专属测试、固定版本和交叉核验记录。仅给有限可审计证据,扣分。
- 实现前必须核对当前 SDK API 签名和包版本;文档明确要求通过外部 Microsoft Docs MCP/PyPI 验证。
- 不要把示例直接视为生产配置:应限定 OAuth/Graph 最小权限,避免记录令牌,明确用户同意、数据发送目的、存储策略和失败恢复。
- 检查所有示例的导入、异步资源关闭和 CopilotClient 清理逻辑;MemoryStorage 仅适合开发。
- 若运行环境无法访问 Microsoft/Azure 服务、Graph、Copilot Studio 或外部文档 MCP,核心功能和核验流程可能受阻。
它能做什么 & 适用场景
该技能为 Microsoft 365 Agents SDK for Python 提供面向编码代理的开发指导。它覆盖 aiohttp 托管、AgentApplication 路由、流式响应、MSAL 身份验证和 Copilot Studio 客户端。内容包含安装命令、环境变量、可运行代码模式以及生产实践。适合需要用 Python 构建 Microsoft 365、Teams 或 Copilot Studio 代理的开发者。
指导编码代理安装 Microsoft Agents SDK 相关 Python 包,配置客户端、租户和连接信息等环境变量,并生成 aiohttp Web 应用、CloudAdapter、AgentApplication、TurnContext 和路由处理器代码。它展示消息、会话更新、invoke、错误和 OAuth 保护路由的实现,也说明如何通过 Azure OpenAI 流式输出、调用 Microsoft Graph,以及直接连接 Copilot Studio。实现前要求通过 microsoft-docs MCP 核对 API 签名,并在 PyPI 确认相关包版本。
- 为 Teams 或 Microsoft 365 构建使用 aiohttp 托管的 Python 多渠道代理的开发者。
- 需要用 AgentApplication 按消息内容、命令或活动类型分发请求的团队。
- 希望通过 MSAL 和 Microsoft Graph 为代理加入 OAuth 登录、令牌获取或登出流程的开发者。
- 需要将 Azure OpenAI 流式回复接入 Microsoft 365 代理体验的团队。
- 需要从 Python 直接启动对话并向 Copilot Studio 代理提问的开发者。
优缺点一览
- 提供从安装、环境配置到 aiohttp 服务入口的完整 Python 示例。
- 覆盖消息路由、OAuth、Microsoft Graph、Azure OpenAI 流式响应和 Copilot Studio 客户端。
- 明确要求异步处理、显式认证管理器、资源上下文管理和流结束清理。
- MIT 许可,且仓库通过技能集合方式安装。
- 示例依赖多个 Microsoft Agents 包、Azure Identity、MSAL、aiohttp 和 OpenAI 客户端,部署配置较多。
- 内容要求使用 microsoft-docs MCP 和 PyPI 核对最新信息,API 或包版本不能仅依赖示例。
- 技能只描述 Python SDK;没有提供独立的测试套件或平台兼容性测试证据。
- CopilotClient 明确不实现上下文管理器,部分令牌缓存实现也只留作示例占位。
如何安装
先安装整个技能集合:运行 npx skills add microsoft/skills,在向导中选择 m365-agents-py。README 说明技能会安装到所选编码代理的目录,例如 GitHub Copilot 使用 .github/skills/;本技能的仓库路径是 .github/plugins/azure-sdk-python/skills/m365-agents-py/SKILL.md。运行代理代码时,按技能说明使用 pip 安装所列 Microsoft Agents SDK 包、python-dotenv 和 aiohttp。
如何使用
在编码代理中输入例如“使用 Microsoft 365 Agents SDK for Python 创建一个 aiohttp 托管的 Teams 代理,并配置 AgentApplication、MSAL 身份验证和消息路由”。实现前让代理核对 AgentApplication、start_agent_process 和身份验证选项的最新签名,并确认 PyPI 包版本。根据需要提供客户端 ID、客户端密钥、租户 ID、Azure OpenAI 或 Copilot Studio 环境变量。
对比同类
该仓库 README 列出了面向 .NET 和 TypeScript 的 Microsoft 365 Agents SDK 技能,但本条目仅覆盖 Python 版本。