用途:Microsoft 365 Agents SDK 用于构建面向 Teams、Copilot Studio 和网页聊天的多渠道智能体。本技能适用于代码导入 @microsoft/agents-hosting、@microsoft/agents-hosting-express 等相关包,或用户正在构建此类智能体的场景。
主要包:@microsoft/agents-hosting 提供核心能力(AgentApplication、CloudAdapter、TurnContext、TurnState、存储);@microsoft/agents-hosting-express 提供 startServer() 便捷封装;@microsoft/agents-hosting-storage-blob 与 @microsoft/agents-hosting-storage-cosmos 分别提供 Azure Blob 与 CosmosDB 存储后端;@microsoft/agents-hosting-dialogs 提供对话系统。要求 Node 18+,可用 node --env-file .env(Node 20+)加载环境变量。
配置:需要 Microsoft Entra 应用注册(clientId、clientSecret、tenantId)与 Azure Bot 资源(消息终结点 https://<your-host>/api/messages,Microsoft App ID 需与 clientId 一致)。本地开发可用 Bot Framework Emulator,部署前无需 Azure Bot;clientId 留空可跳过鉴权校验。推荐使用现代环境变量格式,以 connections__ 和 connectionsMap__ 前缀配置连接,双下划线分隔路径段。旧格式仅用于向后兼容,新智能体不应使用。
使用方式:可用 startServer(agent) 创建带 express.json()、authorizeJWT() 中间件和 POST /api/messages 路由的 Express 应用,默认监听 PORT(3978);也可手动使用 CloudAdapter 与 authorizeJWT 搭建。支持主动消息(保存 ConversationReference 后调用 adapter.continueConversation)、用户令牌授权流程(onSignInSuccess、getToken、exchangeToken 实现 OBO)、Agentic 授权(无用户提示的智能体间授权)以及卡片与流式响应。
本地测试:可安装 agentsplayground(npm install -g agentsplayground)作为模拟连接器与频道客户端,支持 msteams、webchat、directline、emulator、agents 等频道。
限制与注意:MemoryStorage 仅用于本地开发,不持久化;生产应使用 Blob 或 CosmosDB 存储。常见错误包括 ConversationReference 字段名应为 agent 而非 bot、JwtPayload.aud 可能为字符串或数组、适配器回调会吞掉异常需自行捕获重抛。OpenTelemetry 可观测性参见 agents-sdk-typescript-otel 技能。具体收费、价格与效果资料暂未提供。