用途:把依赖 Microsoft.Bot.Builder 等包的 .NET 机器人迁移到 Microsoft 365 Agents SDK,走 ActivityHandler/TeamsActivityHandler 兼容层,尽量少改代码并保留原类名。该技能止步于兼容层,完成后会询问用户是否继续转为 AgentApplication。
主要能力:提供包与命名空间替换对照表(如 Microsoft.Bot.Builder→Microsoft.Agents.Builder、Microsoft.Bot.Builder.Teams→Microsoft.Agents.Extensions.Teams、Microsoft.Bot.Schema→Microsoft.Agents.Core.Models),并默认使用最新的非 beta 稳定版 Agents SDK 包。说明已弃用且无对应替代的包(如 Microsoft.Bot.Builder.AI.Luis、AI.QnA、Dialogs.Adaptive、LanguageGeneration 等),应删除包引用但保留代码,并将由此产生的构建错误告知客户。
使用方式:迁移步骤包括更新包与命名空间、保留机器人类只改 using、处理对话机器人状态(保留 OnTurnAsync 或使用 AutoSaveStateMiddleware)、用新的 Program.cs 替换 BotController.cs 与 AdapterWithErrorHandler.cs(调用 builder.AddAgent<MyBot>()、注册 IStorage、AddAgentAspNetAuthentication、MapAgentEndpoints,注意不要对 ActivityHandler 用 MapAgentApplicationEndpoints 或 AddAgentApplicationOptions)。涉及自定义 BotAdapter 时改为 ChannelAdapter 或 CloudAdapter,自定义 IMiddleware 更新命名空间。需新增 AspNetExtensions.cs(从 Agents SDK 示例复制),并删除指定文件。appsettings.json 按 MicrosoftAppType(SingleTenant、UserAssignedMSI、MultiTenant/缺失)生成对应 Connections、ConnectionsMap、TokenValidation 结构。
限制:无 Agents SDK 对应物的弃用包代码无法迁移,只标记为超出范围的阻塞问题;非标准 MicrosoftAppType 不生成 Connections:ServiceConnection,需手动配置。具体价格、平台支持等信息资料暂未提供。