用途:Microsoft 365 Agents SDK 用于构建面向 Teams、Copilot Studio 和网页聊天的多渠道智能体。当代码引入 Microsoft.Agents.Hosting.AspNetCore、Microsoft.Agents.Builder 等相关包,或需要搭建此类智能体时使用。
主要能力:提供 ASP.NET Core 托管与端点映射、基于 MSAL 的认证(客户端凭据、OBO)、AgentApplication 与 ITurnContext/ITurnState 核心、模型与活动类型、存储抽象、Teams 扩展、对话系统(waterfall、prompts)以及 AI 相关功能。最小项目只需 Microsoft.Agents.Hosting.AspNetCore 与 Microsoft.Agents.Authentication.Msal,其余为传递依赖。要求 .NET 8+,使用最新稳定版,非必要不用 --prerelease。
使用方式:需要 Microsoft Entra 应用注册(ClientId、ClientSecret、TenantId)和 Azure Bot 资源(消息端点 https://<your-host>/api/messages,Microsoft App ID 与 ClientId 一致)。本地开发可将 TokenValidation:Enabled 设为 false,无需 Azure Bot。配置写在 appsettings.json 与 appsettings.Development.json,密钥放后者并加入 .gitignore。ConnectionsMap 按 ServiceUrl 正则匹配连接,首个匹配生效,"*" 为默认。认证类型支持 ClientSecret、UserManagedIdentity、FederatedCredentials。Program.cs 中调用 builder.AddAgent<MyAgent>()、AddSingleton<IStorage, MemoryStorage>()、AddAgentAspNetAuthentication,并映射 MapAgentRootEndpoint 与 MapAgentApplicationEndpoints。运行 dotnet run。可用 Agents Playground 本地测试:npm install -g agentsplayground。
适用场景:Teams、Copilot Studio、网页聊天等渠道的智能体;支持路由、TurnState、用户令牌授权与 OBO、自适应卡片与 Hero 卡片、卡片动作与搜索、流式响应(含 Azure OpenAI)。
限制:需 .NET 8+ 与 Azure 资源;MemoryStorage 仅限本地开发不持久;MapAgentApplicationEndpoints 用于 AgentApplication 子类,MapAgentEndpoints 用于 ActivityHandler 兼容层,混用会导致运行时路由失败;OAuth 连接名只能在 Azure 门户测试。