首页
看点啥
插画图片
首页 看点啥 GitHub Models 7-30 退役全拆解:Inventory + Capability Probe + Shadow Traffic + Brownout

GitHub Models 7-30 退役全拆解:Inventory + Capability Probe + Shadow Traffic + Brownout

2026-07-22 0

TL;DR

版本矩阵

功能状态说明
2026-06-16 GitHub Models 不再向新客户开放⚠️ 待官方公告核验原文母稿日期 2026-07-20;web 搜索未命中 2026 年 GitHub Models 退役官方公告,具体日期需以 GitHub Changelog 为准
2026-07-16 第一次 Brownout⚠️ 待官方公告核验原文自述"已过去;本文未取得用户系统的实测日志",需在 GitHub Changelog 核验
2026-07-23 第二次 Brownout(请求返回错误)❓ 未公开母稿日期 7-20,此事件为未来,需主动探测
2026-07-30 全面关闭(Playground/Catalog/Inference API/BYOK)❓ 未公开母稿日期 7-20,此事件为未来,需以当日官方公告为准
关闭范围:Playground + Model Catalog + Inference API + BYOK Endpoint⚠️ 按作者主张原文明确,需以 GitHub 官方公告为准
现有客户同样受影响⚠️ 按作者主张原文明确,需以 GitHub 官方公告为准
官方建议:模型目录、部署、推理 → Microsoft Foundry⚠️ 按作者主张原文明确,需以 GitHub/F5 官方公告为准
官方建议:GitHub 工作流内 AI → GitHub Copilot⚠️ 按作者主张原文明确,需以 GitHub 官方公告为准
GitHub Models REST API 曾支持 Streaming、JSON Schema、Tool Calling、组织归因✅ 已验证多源开发者文档 + 第三方迁移文章
Microsoft Foundry 模型目录 + 部署 + 推理✅ 已验证Microsoft 官方 Azure AI Foundry 文档
Vercel AI Gateway(统一 API + 用量/预算 + 路由/Fallback)✅ 已验证Vercel 官方文档
OpenRouter(多 Provider 路由 + Fallback + BYOK/ZDR)✅ 已验证OpenRouter 官方文档
LiteLLM(开源 LLM Gateway,支持多 Provider)✅ 已验证LiteLLM 官方仓库
4 类 GitHub Models 角色:Model Discovery / Playground / Inference API / BYOK✅ 已验证(作者分析)原文第二段,作为分析框架
AI Access Layer 6 模块(Model Alias / Capability Registry / Policy / Routing / Telemetry / Credential Broker)✅ 已验证(作者架构)原文第四节,作为架构图
OpenAI-compatible 14 维差异表✅ 已验证(作者分析)原文第七节表,作为兼容性测试清单
Capability Probe 12 项✅ 已验证(作者设计)原文第八节,作为探测清单
5 步 Cutover(0%/1%/5%/25%/50%/100%)✅ 已验证(作者设计)原文第十节,作为分批切换建议
自动回滚 4 条件(error_rate/schema_invalid_rate/p95/cost)✅ 已验证(作者设计)原文第十节,作为示例
Provider 退出预案 13 项(资产/Owner/Alias/Registry/第二 Provider/Probe/质量基线/Shadow/Flag/Key 轮换/数据导出/最长迁移/退出触发器)✅ 已验证(作者设计)原文第十五节,作为预案模板
7-20 到 7-30 实施日历✅ 已验证(作者设计)原文第十四节,作为时间表
Brownout 演练 5 项(错误/降级/状态/密钥/回滚)✅ 已验证(作者设计)原文第十一节,作为演练清单
AscendLab Provider Capability Tester 工具机会(CLI + Key 不写日志 + 可重复 Probe + capability-registry.yaml + Markdown)✅ 已验证(作者设计)原文第十六节,作为工具机会描述
GHM-01 / GHM-02 / GHM-03 / FOUNDRY-01 / GW-01 / GW-02 / GW-03 来源链接⚠️ 待验证原文给出来源代号但未给完整 URL,需在 [S01] 链接核验

GitHub Models 将于 2026 年 7 月 30 日全面退役,关闭 Playground、Model Catalog、Inference API 和 BYOK Endpoint;7 月 23 日还有一次 Brownout。GitHub 建议将模型目录与推理场景迁往 Microsoft Foundry,把 GitHub 工作流中的 AI 使用转向 GitHub Copilot。但这不是一对一替换:模型 ID、版本、鉴权、限流、Streaming、Tool Calling、Structured Output、多模态、Embedding、数据策略和计费都可能不同。

正确的迁移对象不是某个 Base URL,而是完整的模型访问契约。团队需要先建立 Inventory,再把调用能力描述为 Provider Capability Registry;使用兼容探针验证接口和行为;通过 Shadow Traffic 对比质量、延迟、成本与失败;最后进行分批 Cutover 和可回滚切换。OpenAI-compatible 只能减少客户端改造,不能证明语义、配额和治理兼容。

GitHub Models 的退出也说明一个产品事实:通用模型入口若缺少独立工作流和治理价值,容易被更大的 Agent 产品、云平台或 AI Gateway 吸收。独立开发者应把 Provider 当作可替换依赖,并为平台退出建立标准预案。

核心结论

  1. 先拆解 GitHub Models 的四类角色:发现、试验、推理、BYOK。每类能力的替代方案不同。
  2. GitHub 官方迁移建议是方向,不是无损映射。Foundry 和 Copilot 的产品边界不同,不能替代所有自定义应用。
  3. OpenAI-compatible 只是接口家族。Tool Schema、JSON 约束、错误、Streaming 事件、Usage、重试和费用仍需逐项测试。
  4. Brownout 是最有价值的演练窗口。应记录错误码、恢复时间、Retry 行为和业务降级,而不是等待 7 月 30 日直接切断。
  5. 迁移必须可回滚:Feature Flag、双写、Shadow Traffic、Provider Registry、Key Rotation 和状态对账缺一不可。

1. 官方时间线与关闭范围

日期事件状态
2026-06-16GitHub Models 不再向新客户开放已发生
2026-07-16第一次 Brownout已过去;本文未取得用户系统的实测日志
2026-07-23第二次 Brownout,请求返回错误未来
2026-07-30全面关闭未来

官方公告列出的关闭范围:

官方方向:

需要注意,GitHub Models REST API 曾支持 Streaming、JSON Schema、Tool Calling 和组织归因等能力。迁移清单不能只记录模型名称和 Prompt。

2. GitHub Models 原本承担的四个角色

Model Discovery+ Playground / Prompt Experiment+ Unified Inference API+ BYOK Endpoint= GitHub Models Product Surface

2.1 Model Discovery

用户通过 Catalog 比较模型、能力、发布者和基础信息。替代它需要的是 Registry、筛选、能力说明和版本治理。

2.2 Playground

用于快速测试 Prompt、参数和输出。替代它需要保存实验配置、结果、成本和可复现性,而不只是另一个聊天界面。

2.3 Inference API

承担应用运行时调用。这里迁移风险最高,涉及:

2.4 BYOK

BYOK 不只是"把自己的 Key 放进去"。它通常还涉及统一 Endpoint、路由、用量归因、失败回退和凭据托管。迁移时必须决定:继续使用 Gateway BYOK、直连 Provider,还是迁入云平台托管部署。

3. 迁移 Inventory

在改代码前,先列清所有使用点:

application,owner,environment,endpoint,model_id,capability,requests_per_day,p95_latency_ms,max_tokens,tools,structured_output,streaming,embedding,byok_provider,data_classification,criticality,rollback_ownersupport-bot,cs-platform,prod,github-models,gpt-x,chat,120000,1800,4096,true,true,true,false,openai,internal,critical,alicecontent-pipeline,growth,prod,github-models,model-y,chat,8000,4200,8192,false,true,false,false,,public,medium,bobsemantic-search,search,prod,github-models,embed-z,embedding,600000,350,,false,false,false,true,,internal,critical,carol

必须补充的隐藏依赖:

4. 目标架构:应用不直接绑定 Provider

Application↓ Stable Internal ContractAI Access Layer├── Model Alias Registry├── Capability Registry├── Policy / Budget / Data Region├── Routing / Retry / Fallback├── Telemetry / Evaluation└── Credential Broker↓Foundry / Direct Provider / Vercel Gateway / OpenRouter / Other

内部契约需要稳定,但不能过度抽象成最低公分母。建议把通用字段与 Provider Extension 分开:

{"model_alias": "reasoning-medium","messages": [{"role": "user", "content": "..."}],"response_format": {"type": "json_schema", "schema": {}},"tools": [],"policy": {"data_classification": "internal","region": "us","max_cost_usd": 0.08,"fallback_allowed": true},"provider_options": {"reasoning_effort": "medium"}}

provider_options 应通过 Allowlist,避免业务随意把 Provider 私有参数渗透到所有代码。

5. Provider Capability Registry

providers:foundry-prod:type: microsoft-foundryendpoint: ${FOUNDRY_ENDPOINT}region: eastus2auth: managed-identitydataPolicy: enterprise-approvedvercel-gateway:type: vercel-ai-gatewayauth: api-keydataPolicy: review-requiredmodels:reasoning-medium:candidates:- provider: foundry-prodmodel: deployment-reasoning-v3capabilities:chat: truestreaming: truetools: trueparallel_tools: falsejson_schema: strictvision: falseembeddings: falsemax_input_tokens: 128000usage_in_stream: verified- provider: vercel-gatewaymodel: provider-x/model-ycapabilities:chat: truestreaming: truetools: trueparallel_tools: unknownjson_schema: best_effortvision: trueembeddings: falsemax_input_tokens: 200000usage_in_stream: unknownpolicy:primary: foundry-prodfallback: [vercel-gateway]allowedData: [public, internal]

Registry 中的能力必须来自自动探针和人工评测,不能只抄营销页面。

6. OpenAI-compatible 能解决什么

通常可以减少:

7. OpenAI-compatible 不能保证什么

维度可能差异
模型 ID名称、版本、部署名、别名不同
System/Developer Message支持程度和优先级不同
Structured Output严格 Schema、Best-effort、拒绝行为不同
Tool CallingTool Choice、并行调用、参数修复不同
StreamingSSE Event、Delta、Usage、Finish Reason 不同
多模态图片输入格式、大小、URL 支持不同
Embedding维度、归一化、Batch 上限不同
错误HTTP 状态、错误码、可重试性不同
限流RPM/TPM/并发/动态配额不同
TokenizerToken 数和费用估计不同
Safety拒绝、过滤、内容策略不同
数据治理保留、训练、区域、ZDR 不同
费用输入/输出/缓存/工具/区域不同
输出质量Prompt 对同类模型也可能漂移

因此,迁移验收必须覆盖"接口可调用"和"业务行为可接受"两层。

8. Capability Probe

本内容包的 tools/provider_probe.py 提供一个最小探针。生产探针应覆盖:

  1. 基础非 Streaming Chat;
  2. Streaming 首 Token、结束事件和 Usage;
  3. JSON Schema 严格符合率;
  4. 单 Tool、并行 Tool、无效参数;
  5. 长上下文边界;
  6. Unicode、中文和代码;
  7. 图片输入;
  8. Embedding 维度、批量和确定性;
  9. 429、5xx、Timeout 和连接中断;
  10. Request ID、Trace、Usage 和费用字段;
  11. 数据区域和日志策略;
  12. Key 权限与失效行为。

结果示例:

{"provider": "foundry-prod","model": "deployment-reasoning-v3","tested_at": "2026-07-20T09:00:00Z","capabilities": {"chat": {"status": "pass", "p50_ms": 1320},"streaming": {"status": "pass", "first_token_p50_ms": 410},"json_schema": {"status": "pass", "valid_rate": 1.0},"parallel_tools": {"status": "fail", "reason": "single tool only"}}}

9. Shadow Traffic

Shadow Traffic 将生产请求复制到候选 Provider,但候选结果不返回用户。

Production Request├── Current GitHub Models → User Response└── Redacted Shadow Copy → Candidate Provider↓ Evaluation Store

必须控制

评估指标

LLM-as-a-Judge 只能作为一层,应加入确定性验证、任务结果和人工抽样。

10. Cutover 与 Rollback

分阶段切流

0%→ Probe1%→ Internal / Synthetic5%→ Low-risk Tenants25% → Broader Production50% → Compare Capacity / Cost100% → Primary→ Keep Old Path Disabled-but-Ready until retirement

由于 GitHub Models 将退役,旧路径的最终回滚窗口有限。迁移完成前应至少保留两个可用候选 Provider,而不是把单点从 GitHub 转移到另一个平台。

自动回滚条件示例

rollback:window: 10mconditions:- metric: request_error_rateop: ">"value: 0.02- metric: schema_invalid_rateop: ">"value: 0.01- metric: p95_latency_msop: ">"value: 6000- metric: cost_per_success_usdop: ">"value: 0.12action:setPrimary: secondary-providerdisableNewProvider: truepage: ai-platform-oncall

11. Brownout 演练

2026-07-23 应把 Brownout 当成故障演练:

不能提前写死具体错误码。实验模板见 ../research-bundles/2026-07-20-ai-engineering-content-pack/experiments/github-models-brownout-test-plan.md

12. Key 与凭据迁移

不要复用旧 Key 语义

轮换流程:

Create New Credential↓ Test In Non-prodAdd To Gateway / Broker↓ Shadow TrafficSwitch Primary Credential↓ MonitorRevoke Old Credential↓ Search Residual References

13. Foundry、Gateway、OpenRouter 与直连的比较维度

方案优势风险/成本适合
Microsoft Foundry企业部署、Azure 身份/网络/治理、模型目录云绑定、Deployment 管理、SDK/Endpoint 变化Azure 企业团队
Vercel AI Gateway统一 API、用量/预算、路由/Fallback平台依赖、兼容需验证Web/AI SDK 生态、快速迁移
OpenRouter多 Provider 路由、Fallback、BYOK/ZDR 选项Provider 链复杂、费用/数据策略需逐路由理解多模型探索与冗余
LiteLLM/自建 Gateway控制强、可自托管、可定制策略运维、兼容、监控、安全责任有平台团队、强合规
Provider 直连功能最完整、最少中间层业务耦合、凭据分散、退出成本高单 Provider、专有能力关键

决策不应只看请求价格,还应看故障域、数据路径、审计、预算、延迟和退出能力。

14. 迁移实施日历

2026-07-20

2026-07-21—22

2026-07-23

2026-07-24—27

2026-07-28—29

2026-07-30

15. 模型平台退出预案

每个外部 Provider 都应有:

退出触发器包括:退役公告、价格上涨、配额下降、区域/合规变化、模型删除、质量漂移、重大故障和公司风险。

16. AscendLab 工具机会:Provider Capability Tester

定位

输入多个 OpenAI-compatible Endpoint、模型和 Key 环境变量,执行安全、无副作用的能力测试,输出:

MVP

后续

17. 发布检查表

18. 常见错误

只换 Base URL

可能在 Tool、JSON、Streaming、Tokenizer、Error 或 Usage 上静默失败。

只做离线 Prompt 对比

生产差异包括并发、限流、长尾延迟、网络、Tool 副作用和数据策略。

Fallback 到不满足数据政策的 Provider

高可用不能凌驾于数据等级和区域限制。

在 Brownout 期间无限重试

会造成请求风暴和费用放大。应使用熔断、指数退避和全局并发控制。

把 Gateway 当成永久保险

Gateway 自身也可能退役或故障。内部契约、导出和第二路径仍然必要。

19. 限制与待验证

20. 延伸章节

参考来源

错误速查卡

症状根因定位修复
把 GitHub Models 退役当成 7-30 当天切换忽略 Brownout 演练窗口和 7-24 之后的分阶段切流查原文第十一节 Brownout 演练 + 第十四节实施日历改写为"7-20 冻结 / 7-21-22 准备 / 7-23 演练 / 7-24-27 切流 / 7-28-29 切离 / 7-30 退役"
假设 Foundry / Copilot 是 GitHub Models 一对一替代Foundry / Copilot / GitHub Models / 直接 Provider 产品边界不同查原文第十三节比较表 + 核心结论第 2 条改写为"Foundry 更接近企业云治理 / Copilot 更接近 GitHub 内 Agent 工作流 / 不能替代所有自定义应用"
只换 Base URL把 OpenAI-compatible 等同于行为兼容查原文第七节 14 维差异表改写为"Tool Schema/JSON/Streaming/Tokenizer/Error/Usage/限流/数据治理 14 维需逐项探测"
把 Shadow Traffic 当成"安全测一下"忽略 PII 去除、数据等级、Tool 副作用、用户数据发到未批准区域查原文第九节 Shadow Traffic 必须控制 6 项改写为"Shadow 也要 PII 处理 + 数据等级限制 + 工具不真触发 + 控制额外成本"
在 Brownout 期间无限重试没有熔断/退避/全局并发控制查原文第十八节常见错误改写为"使用熔断 + 指数退避 + 全局并发控制,避免请求风暴和费用放大"
把 Gateway 当成永久保险Gateway 自身可能退役查原文第十八节 + 第十五节退出预案 13 项改写为"内部契约 + 导出 + 第二路径仍然必要,Gateway 不是银弹"
用 model 字符串做能力判断同一 model 字符串在不同 Provider / Region / Deployment 行为可能不同查原文第五节 Provider Capability Registry + 能力必须来自自动探针改写为"Registry 中的能力必须来自自动探针和人工评测,不能只抄营销页面"
假设 Microsoft Foundry 的 Deployment 跟 GitHub Models 模型 ID 1:1同一模型在不同 Foundry Region / Subscription / Deployment 有差异查原文第十三节 Microsoft Foundry 风险栏 + 第十九节"具体模型映射取决于 Region"改写为"Foundry Deployment 取决于 Region / Subscription / Deployment,需要按账户级核验"
用"Provider 也支持 OpenAI API"作为迁移标准忽略 Tool Schema / JSON / Streaming / Tokenizer / 错误 / 用量 / 限流 / 数据治理查原文第七节 14 维差异表改写为"接口兼容 ≠ 行为兼容;14 维差异表必须逐项探测"
假设 Fallback Provider 自动满足数据政策Fallback Provider 可能不满足数据等级和区域查原文第十八节常见错误"Fallback 到不满足数据政策的 Provider"改写为"Fallback 也要走 Capability Registry + 数据政策 + 区域校验,不能凌驾于数据等级"
用 Capable but 慢的 Provider 作为 Primary没测延迟,只看能力查原文 Capability Probe 12 项 + Shadow Traffic 评估指标改写为"Capable + 延迟 + 成本 + 数据政策多维评分,不只看功能"
假设 Brownout 期间能用同一 Key 重试同一 Key 在 Brownout 期间可能临时失效查原文第十二节 Key 轮换流程改写为"Brownout 期间旧 Key 可能临时失效,Key Rotation 需提前演练"
假设 7-30 后 Gateway 会自动把数据从旧 Provider 导到新 Provider7-30 旧 Provider 关闭,Gateway 不会自动迁移查原文第十二节 Key 与凭据迁移 + 第十五节退出预案改写为"7-30 前 100% 切离 + Key 轮换 + 数据导出 + 残留扫描"
把 Embedding 和 Chat 混在同一 Gateway 路由Embedding 维度/归一化/Batch 上限不同查原文第七节 + 第十九节限制改写为"Embedding 和 Chat 走不同 Capability Registry / Probe / Provider,Embedding 迁移可能重建索引"
假设"用一个 SDK 跑通所有 Provider"不同 Provider 的 SDK / 鉴权 / 路由不同查原文第四节 AI Access Layer 架构 + 第六节 OpenAI-compatible 范围改写为"统一内部契约 + Provider 适配层,而非用一个 SDK 跑通所有 Provider"
假设迁移完成 = 项目结束平台退出需要长期预案查原文第十五节退出预案 13 项改写为"迁移完成 = 退出预案执行完成(资产清单/Owner/Alias/Registry/第二 Provider/Probe/质量/Shadow/Flag/Key 轮换/数据导出/最长迁移/退出触发器/演练频率)"
喜欢(0)

上一篇

AI应用工程:Agent 是如何工作的?——从一次模型调用到可运行的执行循环

AI应用工程:Agent 是如何工作的?——从一次模型调用到可运行的执行循环

下一篇

一堆if把Agent Loop写乱了:Hooks到底解决了什么

一堆if把Agent Loop写乱了:Hooks到底解决了什么
猜你喜欢