用途:评估并迁移 JavaScript/TypeScript 机器人,从 BotBuilder/Bot Framework SDK 迁移到 Microsoft 365 Agents SDK 的 AgentApplication,同时保留可观察行为。始终先评估并报告,再编辑代码。以 migration-map.md 为主要参考,针对检测到的每个包、类、方法、属性或处理器进行检索。
主要能力:检查机器人的包、导入、入口点、处理器、状态、中间件、托管、认证、测试与部署文件;清点每个 Bot Framework 符号与行为,并按迁移映射分类为 Direct(替换包或 API 并保留设计)、Rewrite(实现受支持的 AgentApplication 模式)、Decision(存在经验证的 SDK 支持选项,但需用户选择)、Unsupported(无经验证的稳定 JS Agents SDK 等价物)。
使用方式:先产出迁移计划(Summary、Migration plan 表格、Validation plan),评估阶段不修改项目代码;随后停止并询问要实现哪些编号的 Direct 与 Rewrite 项、以及做哪些 Decision 选择,Unsupported 项排除在实施之外。获得明确选择后,确认已评估的文件、依赖与范围未变化;若变化则刷新计划并重新获取选择。否则仅实现所选项目并更新锁文件。之后运行构建/类型检查、lint 与测试,启动服务并尽可能验证消息端点及受影响的自定义、invoke、存储与主动路径。最后报告已迁移项、仍需的决策、未改动的 Unsupported 行为与验证结果。若存在多个机器人且范围不清,在第二步前先询问评估哪个。
限制:不得虚构 SDK API、垫片、占位符或不相关替代品;无经验证稳定目标的行为标记为 Unsupported。迁移映射仅作候选,须针对计划使用的确切稳定包版本声明验证每个 Direct 与 Rewrite 目标;仅仓库或 @next 功能归为 Decision,无经验证包目标的功能归为 Unsupported。Unsupported 代码及其依赖保持不变。仅在用户选择经验证选项后实施 Decision 项。除非用户批准,保留导出、模块系统、端点路径、中间件顺序、路由优先级、invoke 响应、状态键、存储标识符、OAuth 连接名与 Teams 命令 ID。AgentApplication 选择首个匹配路由,具体路由应放在兜底路由之前,并合并此前通过 next() 链式传递的行为。仅当无保留导入或运行时使用时才移除 Bot Framework 依赖。优先使用兼容的稳定包版本并保留包管理器;仅 @next 可用的功能归为 Decision 并先询问。保持生产认证启用,绝不暴露密钥。仅做安装、构建、测试与运行所选迁移项所必需的更改。
适用场景:需要将 BotBuilder/Bot Framework 的 JS/TS 机器人迁移到 Microsoft 365 Agents SDK 的开发者。Node.js 版本要求见官方 package.json。