用途:当使用 Microsoft Agents SDK(Microsoft.Agents.Hosting.AspNetCore 及相关包)在 C#/.NET 中构建的智能体出现故障时,按顺序排查。多数故障分三类:代码无法构建或启动、配置错误、智能体不可达。
主要能力与排查步骤(须按顺序逐项完成):
- 构建代码:运行 dotnet build,期望退出码为 0 且无错误。常见问题包括缺包(dotnet add package Microsoft.Agents.Hosting.AspNetCore)、命名空间或 using 错误、目标框架不匹配(需 .NET 8+)。
- 启动应用:运行 dotnet run,可用 dotnet run --verbosity detailed;在 appsettings.Development.json 中设置日志级别 Default/Debug、Microsoft.Agents/Debug。常见启动错误涉及缺少 IStorage 注册、缺少 AddAgentAspNetAuthentication、端口被占用、appsettings.json 结构异常。
- 确认可达:向 http://localhost:3978/api/messages 发 POST 请求,返回 401 表示运行且鉴权开启,200 表示鉴权关闭,000 或连接被拒表示未运行、端口错误或崩溃。
- 校验 appsettings.json:确认文件被加载;Connections 需为嵌套结构而非扁平键;ConnectionsMap 必须是数组,省略时默认映射到第一个连接;TokenValidation 的 Audiences 必须含 ClientId,TenantId 需匹配应用注册所在租户,本地匿名开发可设 Enabled:false;用户登录需检查 AgentApplication:UserAuthorization,处理器键须与路由注册的 autoSignInHandlers 一致,否则登录会静默失败。
- 校验凭据:向 https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token 发起 client_credentials 请求,成功返回 access_token;常见错误 AADSTS700016、AADSTS7000215、AADSTS90002 分别对应 ClientId、ClientSecret、TenantId 问题。
- 用 Agents Playground 测试:安装命令 npm install -g agentsplayground;匿名智能体用 agentsplayground -c emulator;已鉴权智能体用 agentsplayground -c msteams --client-id ... --client-secret ... --tenant-id ...。频道选项有 msteams、webchat、directline、emulator、agents。若连接成功但无响应,可能缺少消息处理器,可添加回退处理器验证。
常见运行时错误:IStorage 无法解析、端点映射 404(需区分 MapAgentApplicationEndpoints 与 MapAgentEndpoints)、未注册智能体、每请求 401、卡片反序列化 JsonException、OAuth 登录卡片出现但令牌交换失败、流式分块不出现(需在 finally 中调用 EndStreamAsync)。OAuth 连接名只能通过 Azure 门户的 Test Connection 端到端验证。
限制:资料未提供该技能自身的安装方式、许可、收费与版本兼容细节;部分行为依赖具体 SDK 版本与环境。