承接 从 Copilot 到 Agent 的角色跃迁 · GitHub Actions 工作流执行前审批调研日期2026-07-31本文目标把 GitHub Models 正式退役转成一份可执行的资产盘点、模型接入迁移与验收清单避免 Agent 项目把“换一个端点”误当成一次可控迁移。2026-07-30GitHub 确认 GitHub Models 已正式退役playground、模型目录、推理 API 与 BYOK 均不再向任何客户提供服务包括仍有活跃用量的现有客户。GitHub 在公告中把 Microsoft Foundry 指向需要模型访问的项目把 GitHub Copilot 指向直接在 GitHub 内构建 AI 工作流的场景。这里最容易被忽略的一点是公告没有承诺存在“原端点、原密钥、原模型名不变”的一键替换。因此正确问题不是“哪个 SDK 能最快跑通”而是哪些 Agent 能力依赖这项已退役服务、它们失败时会不会误做决策、以及新接入是否通过了与业务相同的验收。一、先把官方事实和迁移决策分开维度已核验事实团队需要自行决定的事服务状态截至 2026-07-30GitHub Models 的推理 API、模型目录、playground 与 BYOK 都已退役哪些系统必须立刻切换哪些功能应先降级或暂停官方指向GitHub 提到 Microsoft Foundry 与 GitHub Copilot 两个方向是否适合你的地区、合规、模型能力、成本与现有架构兼容性公告未给出 API 级的无缝替代承诺模型参数、结构化输出、工具调用、流式返回、限流与审计如何重新验证回滚已退役服务不能作为回滚目标为新接入预留开关、第二条受控路径和人工降级流程本文中的清单、代码边界和验收矩阵是工程建议不是 GitHub 对替代服务的功能承诺。二、第一小时先画出爆炸半径而不是先改 SDKGitHub Models 的依赖通常不只在一处业务代码。Agent 项目至少要同时检查下面五类资产位置要找什么为什么容易漏应用代码直接 HTTP 调用、推理 SDK、模型名、endpoint一个工具节点可能绕过了统一客户端Agent 编排默认模型、fallback、工具调用与 JSON 输出约束“主对话能答”不代表子 Agent 还能正确协作CI/CD冒烟测试、评测、发布后验证中的模型调用运行时已迁移流水线仍可能用旧凭据配置与密钥台账环境变量名、Secret 名称、BYOK 说明不应把新厂商凭据误塞回旧变量语义人工流程playground 调试、模型选型记录、值班手册人手验证路径失效故障时没人知道该看哪里下面的 PowerShell 只用于初步定位字符串它不会也不应该打印任何 Secret 值。按你的代码栈补充扩展名和项目专用关键字$extensions (.ts, .tsx, .js, .mjs, .py, .yml, .yaml, .json, .toml) $patterns ( github[ .-]?models, models\.inference, BYOK, model[_-]?endpoint, model[_-]?provider ) Get-ChildItem -Path . -Recurse -File | Where-Object { $extensions -contains $_.Extension } | Select-String -Pattern $patterns | Select-Object Path, LineNumber, Line把结果整理成一张小表调用者、用途、是否面向用户、输入数据等级、当前失败行为、负责人。只要有一项不清楚就不要直接替换默认模型。三、迁移目标不是“换供应商”而是建立可替换的模型边界面对这次退役常见的三种落点如下方案适用场景需要额外验证的点迁往 Microsoft Foundry业务需要直接调用模型并希望集中管理模型接入区域、身份、模型能力、配额、数据处理与费用边界改用 GitHub Copilot 能力工作本来就发生在 GitHub 内例如编码、审查或工作流辅助它是产品工作流能力不应假定等价于通用推理 API自建模型网关并接入一个或多个提供方多 Agent、多个环境或需要明显的可移植性网关本身的鉴权、审计、限流、回退和配置治理无论选哪一种应用侧都应只认识自己的模型契约而不是某一家平台的 SDK。下面是一个不绑定提供商的 TypeScript 最小边界它可直接通过 TypeScript 编译但其中的具体 ProviderClient 需要由你的项目实现。// model-client.ts export type GenerateInput { messages: Array{ role: system | user | assistant; content: string }; jsonMode?: boolean; traceId: string; }; export type GenerateOutput { text: string; provider: string; model: string; requestId?: string; }; export interface ModelClient { generate(input: GenerateInput): PromiseGenerateOutput; } export class RoutedModelClient implements ModelClient { constructor( private readonly primary: ModelClient, private readonly secondary: ModelClient | undefined, private readonly allowFallback: boolean, ) {} async generate(input: GenerateInput): PromiseGenerateOutput { try { return await this.primary.generate(input); } catch (error) { if (!this.allowFallback || !this.secondary) throw error; return this.secondary.generate(input); } } }这个边界刻意不把“任意错误都回退”写死。涉及扣费、部署、删改数据或高风险工具调用的 Agent失败后更合理的默认值通常是停在人工复核而不是悄悄换一个模型继续执行。四、把迁移验收拆成能力、风险和可观测性三层只做一次“你好世界”不能证明迁移完成。建议用一个非生产项目跑下面的验收矩阵再逐步扩大到真实流量验收项最小测试通过标准身份与隔离用最小权限凭据发起一次调用并故意使用错误凭据正常请求可用错误凭据被拒绝且日志不泄露敏感内容输出契约为 JSON、函数调用或结构化字段准备固定样例成功输出能被下游解析失败不会被当成有效业务数据Agent 工具链跑一次包含检索、工具调用、汇总的最小任务工具参数、停止条件与审计关联仍然正确延迟与限流以可控并发重复调用超时、429 或服务错误进入明确的重试/降级路径而不是无限重试风险动作模拟需要发布、付款或写入的数据操作模型异常时不能绕过审批、授权或幂等保护观测从请求入口追到模型调用和最终业务结果每次调用能关联 trace、provider、model、耗时和结果类别日志不记录提示词中的敏感数据如果你的 Agent 依赖模型输出生成工具参数还要添加“坏输出”测试缺字段、额外字段、错误类型、过长文本和看似正确但违反业务规则的值。模型服务迁移最危险的情况往往不是调用直接报错而是返回了不同风格的成功结果随后被下游当真。五、迁移顺序先建立开关再逐步移动调用冻结旧依赖的扩散。在新需求中禁止复制旧 endpoint、旧 SDK 初始化代码和旧 Secret 名称。盘点并标记风险。将前文扫描到的调用分为读操作、业务自动化和高风险写操作。建立适配层与配置开关。让 provider、model、超时、重试策略和是否可回退都能按环境调整不要把这些值散落在各个 Agent 提示词中。影子验证或低风险灰度。使用脱敏样例比较结构正确性、耗时和失败路径而不是只比较自然语言“看起来像不像”。把高风险路径留在人类门后。即使新模型通过了普通问答测试发布、权限变更和外部写操作仍应保留上一篇所说的审批与最小权限边界。记录新运行手册。更新负责团队、Secrets 所在位置、预算/配额告警、故障降级和“不能回滚到 GitHub Models”这条事实。六、四个常见误区1把 GitHub Copilot 当成通用推理 API 的直接替身GitHub 提到 Copilot 是为了在 GitHub 内构建 AI 工作流这并不等价于它提供与原推理 API 相同的请求协议、模型目录或计费行为。先按你的调用形态评估再做接口设计。2把旧的 GitHub 凭据复制给新平台新的模型接入应签发与新用途相符、范围最小的凭据。不要因为变量名方便就复用旧 Token也不要在日志、Issue 或评测快照中写入新 Secret。3只测试主聊天不测试工具调用Agent 在真实场景中的失败经常发生在 JSON 约束、函数参数、长上下文、流式中断和重试。至少把一条端到端工具链作为迁移门槛。4把“fallback”理解成回滚GitHub Models 已退役不能在出问题时切回去。真正的回滚是事先验证的第二条路径、特性开关、人工接管和可解释的暂停机制。结语平台退役是一场架构边界考试。把模型调用留在一个可观察、可配置、可限制权限的适配层里下一次模型变更才不会变成全仓库搜字符串的救火。建议先完成资产盘点和一条低风险 Agent 的端到端验收再迁移涉及外部写操作的流程。只有当错误、降级和审计同样被验证过新的模型接入才算真正可用。来源与延伸阅读GitHub Models is now retiredGitHub 官方公告发布于 2026-07-30。GitHub Models is being fully retired on July 30, 2026退役范围与此前演练中断的官方说明。GitHub Models is being fully retired on July 30, 2026:将模型能力放入清晰验收与人工审阅流程供应链防线深度实践GitHub Actions 的执行前拦截来了Agent CI/CD 还要补哪三道门:为迁移后的高风险 Agent 动作保留执行前门禁。