AMR 生产发布影响报告

生成时间:2026-09-22 03:14:35Z(UTC);触发事件:飞书消息「生产发布影响报告」。分析对象:从 origin/main HEAD 5149e3f66 发布 Web、API、Link、Admin、DB migration 与 Model Routing Catalog 的影响。HEAD = #56 revert(admin): restore previous UI patterns(2026-09-22 03:06 UTC,author Liu Yi)。

口径:Web / API / Link / Admin 四个服务以 EKS Ready Pod 实际运行镜像 tag 中的 commit 为生产发布点(Grafana → Prometheus,namespace nexu);DB migration 与 Model Routing Catalog 以 对应 Forgejo workflow 最近一次成功运行的 commit_sha 为生产发布点。六个维度分别计算 BASE_*…TARGET 范围;feature 表每一列只写「该维度发布点之后」的变更,发布点之前的内容一律归入 「已在生产生效」

结论速览

当前生产发布点(四个服务取 EKS Pod 实态,DB / Catalog 取 Forgejo workflow 记录)

Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 查询 kube_pod_container_infokube_pod_status_ready{condition="true"}(namespace, pod) 关联后的 Ready Pod 镜像;DB migration 与 Catalog 的发布点来自 Forgejo workflow 最近一次成功运行的 commit_sha。越新的发布点意味着该维度已上线越多内容。

Web · EKS Pod 实态
Workload:nexu/amr-web · container web · 镜像仓库 amr-web
观察时间:2026-09-22 03:10:05Z
Ready Pods:2 / 2(updated 2,available 2)
Pod:amr-web-5ffd46c587-gv6kramr-web-5ffd46c587-fbks9
实际 commit:4676d97e1
镜像 digest:sha256:379d86f96df5444ca256058b6cb702b67a6376e3fc97b485fc8f603337802079
Pod 与镜像:186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-web:prod-4676d97e17fb7518253506fe9d9f65c3c2b9782f
审计:deploy-web-eks-prod.yml 最近成功 run 记录 @ 2026-09-22T02:31:45Z → 2026-09-22T02:35:49Z(trigger_user nettee);与 Pod 实态一致:是(commit/digest 完全相同)
本次新增(compare 4676d97e1…5149e3f66):1 commit(s),其中命中 apps/web/0
API · EKS Pod 实态
Workload:nexu/amr-api · container api · 镜像仓库 amr-api
观察时间:2026-09-22 03:10:10Z
Ready Pods:2 / 2(updated 2,available 2)
Pod:amr-api-6546769f97-wdlb5amr-api-6546769f97-g4sv4
实际 commit:feb5eb7fa
镜像 digest:sha256:ce9939f10b5da205dfc354e7d41fb63462eb46d097238edf40c590f10fca7740
Pod 与镜像:186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-api:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b
审计:deploy-api-eks-prod.yml 最近成功 run 记录 @ 2026-09-21T02:22:15Z → 2026-09-21T02:29:38Z(trigger_user nettee);与 Pod 实态一致:是(commit/digest 完全相同)
本次新增(compare feb5eb7fa…5149e3f66):12 commit(s),其中命中 services/api/0
Link · EKS Pod 实态
Workload:nexu/amr-link · container link · 镜像仓库 amr-link
观察时间:2026-09-22 03:10:18Z
Ready Pods:2 / 2(updated 2,available 2)
Pod:amr-link-77686d8974-2lqbmamr-link-77686d8974-7jq7r
实际 commit:4676d97e1
镜像 digest:sha256:d6d339a87fb3299004f80e96ab827e2b5af643a31dfa2210bdb3e5134a64af80
Pod 与镜像:186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-link:prod-4676d97e17fb7518253506fe9d9f65c3c2b9782f
审计:deploy-link-eks-prod.yml 最近成功 run 记录 @ 2026-09-22T02:32:33Z → 2026-09-22T02:36:11Z(trigger_user nettee);与 Pod 实态一致:是(commit/digest 完全相同)
本次新增(compare 4676d97e1…5149e3f66):1 commit(s),其中命中 services/link/0
Admin · EKS Pod 实态
Workload:nexu/amr-admin · container admin · 镜像仓库 amr-admin
观察时间:2026-09-22 03:10:22Z
Ready Pods:2 / 2(updated 2,available 2)
Pod:amr-admin-5584867b4f-zj9smamr-admin-5584867b4f-925qv
实际 commit:feb5eb7fa
镜像 digest:sha256:38602be657776d73314da9fc33fb4696fc4ecdd6323100829e26e446fa87ddfa
Pod 与镜像:186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-admin:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b
审计:deploy-admin-eks-prod.yml 最近成功 run 记录 @ 2026-09-21T02:22:03Z → 2026-09-21T02:26:48Z(trigger_user nettee);与 Pod 实态一致:是(commit/digest 完全相同)
本次新增(compare feb5eb7fa…5149e3f66):12 commit(s),其中命中 apps/admin/4
deploy-db-migrations-prod.yml · workflow 记录
最近成功 run:run 记录 · 2026-09-20T08:16:13Z → 2026-09-20T08:23:21Z(trigger_user nettee
发布点 commit:ff912897d(run 实际执行的 commit)
其后 16 个 commit 无一触及 db/migrations / db/schema无待执行 migration(最新 migration 仍是 db/migrations/20260914115313_account_erasure.sql20260914101138_touchpoint_test_context_realtime.sql
deploy-model-routing-catalog-prod.yml · workflow 记录
最近成功 run:run 记录 · 2026-09-21T11:36:39Z → 2026-09-21T11:39:49Z(trigger_user nettee
发布点 commit:e36d61024(run 实际执行的 commit)
其后 2 个 commit(9061e88724676d97e1)命中 db/seeds/seed-model-routing-catalog.sql / data/json尚未发布,需重跑本 workflow

EKS 观察口径:每个服务先用业务容器 + 镜像仓库精确过滤 kube_pod_container_info{container="…", image=~".*/amr-…:prod-[0-9a-f]{40}"},再按 (namespace, pod) 关联 Ready 指标,因此结果不含 API CronJob、Link Redis、metrics exporter 等附属工作负载。四个服务各自 Ready Pod 集合内 commit 与 digest 完全一致,spec / updated / available 副本数一致(web 2/2/2、api 2/2/2、link 2/2/2、admin 2/2/2,且等于 Ready Pod 数),六个 workflow 的成功 run 均落在我们观察到的最新样本之内(观察于 2026-09-22T03:10:00Z),无滚动发布 / 回滚混合状态、无解析失败。四个 deploy-*-eks-prod.yml 最近成功记录的 commit_sha 与 Pod 实态完全一致(web/link 4676d97e1,api/admin feb5eb7fa),未发现 GitOps 手工回滚造成的差异。

本次发布真正新增的 feature 和影响面

feature 表只包含「各维度生产发布点之后」的变更:四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 workflow 记录为基线。状态标记:待发布 表示位于该维度发布点之后、尚未生效;已生效 表示该维度发布点已包含它。

Feature 聚合规则:以业务行为、用户路径、数据契约和部署依赖为准,不按 PR、分支、作者或目录机械划分;PR、commit 与 path 仅作为可点击的追溯证据。

Feature / Author / Commits Web API Link Admin DB schema / migration DB catalog(seed)
Lgrok-4.7 上线:xAI 一线通道 + OpenRouter 兜底路由与计费

待发布(Catalog) 在 Model Routing Catalog 中新增公开模型 grok-4.7llm / public / capability advancedcontext_limit 500,000、context_budget 232,000、原生 reasoning_effort: medium)与两条 active 路由:provider_xai priority 10(upstream grok-4.7)→ provider_openrouter priority 20(upstream x-ai/grok-4.7)。

计费:公开价 USD 2 / 6 / 0.5(cache read,每 1M tokens);provider_xai.json 另记 200K 以上长上下文档 USD 4 / 12 / 1.0(因 context_budget 232,000 可达该档);provider_openrouter.json 记 OpenRouter 侧报价 1.6 / 4.8 / 0.4。models.dev 的 “popular price” 在 OpenRouter 折扣与官方价之间无法唯一决策(no clear popular price),因此新增了一条带主源 URL 的 MODELS_DEV_PRICING_OVERRIDES,把 OpenRouter 专属折扣挡在公开价之外。

发布边界:公开模型的 release phase 初始化为 pre_release(沿用 grok-4.5/4.6 先例,未加 gate 候选行),生产 fail-closed;apply 后模型技术上 active,但仍需正常发布评审把 phase 推到 released 才对客户可请求。对客户可见的另一个副作用:同一 build_model_json.py 运行顺带刷新了无关的 claude-opus-5 OpenRouter 元数据展示名(Claude Opus 5/anthropicAnthropic: Claude Opus 5/Anthropic)。

Author:Liu Yi(本次全部 6 个 commit 的 author 都是 Liu Yi)

compare:e36d61024…5149e3f66;验证:catalog 生成器 158 tests passed,data/scripts 9 passed,xAI / OpenRouter 直连探针(medium / xhigh / tool_choice=auto)HTTP 200;Go wire-shape 与 e2e/link 未在本地执行,依赖 CI。

无(apps/web 在其发布点之后零变更);但 catalog 数据会驱动公共定价页展示,见下方发布建议第 3 条。 无(services/api 零变更)。 无需发布。配套的 Link 适配补丁(bifrost-core/schemas/utils.gogrok-4.7 加入 grokModelsWithXHighReasoningEffort,避免客户 xhigh 被降级为 high)位于 9061e8872,而 BASE_LINK = 4676d97e1 已包含它,已在生产 无。 无 migration(该 commit 不触碰 db/migrationsdb/schema)。 待发布。变更 data/json/models.jsonprovider_routes.jsonroute_policies.jsonpublic_pricing.jsonopenrouter_metadata.jsonprovider_pricing/provider_xai.jsonprovider_pricing/provider_openrouter.jsondata/scripts/build_model_json.pydb/seeds/seed-model-routing-catalog.sqldb/seeds/generate_model_routing_catalog_*_test.pydb/seeds/seed-model-routing-catalog-test-activation.sql。发布动作 = 在 origin/main 触发 deploy-model-routing-catalog-prod.yml(seed 为幂等 baseline apply)。
Mmimo-v2.6-pro / mimo-v2.6-flash 上线:小米 MiMo V2.6 双档模型

待发布(Catalog) 新增两个公开模型:mimo-v2.6-pro(capability advanced)、mimo-v2.6-flash(capability standard),均为 llm / public / activecontext_limit 1,048,000(由唯一 active 路由的 1,048,576 向下取整到 K)、context_budget 232,000(200K 压缩点 + 32K 预留输出,属运营阈值而非价格断点)。

路由:两个模型各一条 provider_openrouter 路由(upstream xiaomi/mimo-v2.6-pro / xiaomi/mimo-v2.6-flashchat_completionspriority 20);小米无 first-party 通道,其余 models.dev provider(kiloopencode-go)属聚合商,不在接入集合内。计费:pro USD 0.435 / 0.87 / 0.0036(cache read),flash USD 0.14 / 0.28 / 0.0028;公开价走常规 models.dev 路径(三家一致、cache_read 唯一胜出),未加手工 override。

推理强度:OpenRouter 只报 reasoning.mandatory=false,没有 supported_efforts/default_effort,按 specs/current/link/model-reasoning-effort.md 禁止从「是推理模型」推断等级,因此两个模型都不设 reasoning_effort,各自沿用后端默认,无需 Link 适配改动。发布边界:release gates 新增 public_model_mimo_v2_6_pro / public_model_mimo_v2_6_flash,phase pre_release生产 fail-closed;测试种子会 force-release,因此 test 环境 apply 后可立即演练。

Author:Liu Yi

compare:e36d61024…5149e3f66;验证:catalog 生成器 159 passed,新增 real-data test 断言公开模型 / 唯一 active 路由 / 后端价一致 / reasoning_effort 未设 / gate 成员;OpenRouter 直连探针(默认请求 + tool_choice=auto)通过;managed llm-provider E2E 未跑,翻 phase 前可补一次 provider-pinned run。

无(同上,catalog 驱动的定价展示见发布建议第 3 条)。 无。 无(无 adapter wire-shape 变更)。 无。 无 migration。 待发布。变更 data/json/models.jsonprovider_routes.jsonroute_policies.jsonpublic_pricing.jsonopenrouter_metadata.jsonprovider_pricing/provider_openrouter.jsonmodel_routing_catalog_release_gates.jsondb/seeds/seed-model-routing-catalog.sqldb/seeds/generate_model_routing_catalog_real_data_test.pydb/seeds/seed-model-routing-catalog-test-activation.sql。发布动作同上(deploy-model-routing-catalog-prod.yml)。
SAdmin 表单 / 标题 / 表格筛选三处 UI 重构,发布前已整体回退(净变更为零)

待发布(Admin)但净变更为零 范围内 Admin 侧共有 4 个 commit:#47 把表单类弹窗改为右侧抽屉(会员 tier / 模型规则 / 模型折扣 / 历史退款恢复 / 触点活动)、#49 让 17 个顶层页面标题复用侧边栏 i18n key 并删除冗余描述、#50 用共享 QueryFilterBar 统一复杂查询表格的筛选形态;随后 #56 把这三项完整回退apps/admin 恢复到 feb5eb7fa 的状态,PR 自述并以 git diff --exit-code feb5eb7fa -- apps/admin 校验)。

独立复核:git diff feb5eb7fa..5149e3f66 -- apps/admin 输出为空 → 现在重建 Admin 镜像不会带来任何 UI 行为变化,因此不再列为待发布 feature;只在报告里保留为「范围内已回退」证据。

Author:Liu Yi

compare:feb5eb7fa…5149e3f66;验证:PR #56 自述 pnpm --filter @vela/admin test 859 passed / 3 skipped、pnpm lintgit diff --exit-code;本次独立复核净 diff 为空。

无。 无。 无。 净变更为零:4 个 commit 中 #47/#49/#50 已被 #56 完整回退,feb5eb7fa..5149e3f66 -- apps/admin 映射到的文件(app/[locale]/(protected)/*/page.tsxfeatures/membership/{tier,model-rule,model-discount}-dialog.tsxfeatures/refund-management/historical-cancel-only-form.tsxfeatures/touchpoints/activity-manager.tsxcomponents/ui/query-filter-bar.tsxi18n/messages/{en,zh}.json)差异为 0。若仍要发布 Admin 镜像,等价于原地重建。 无。 无 catalog 变更。

六个维度之外的窗口内变更(不产生生产运行时影响,故不入 feature 表):4ab7c7d4a/8bab676fc/feb5eb7fa 的生产发布授权收敛(#35/#36/#37,改 .forgejo/workflows/*)、4fbe5d85c/49955f78e 的 feature-test 绑定(#38,只改 deploy/environments/feature-test/bound-branch.json)、#42/#43 的 specs/change/**specs/current/link/* 文档、#53/#55 的 specs/link/bifrost-patches.md 等。CI 与文档不属于六个 AMR 生产发布维度。

已在生产生效(各维度发布点之前,本次不重复发布)

以下内容的 commit 均位于对应生产发布点之前,已在生产运行;四个服务以 EKS Pod 实态为基线,DB migration 与 Catalog 以 workflow 记录为基线。

发布建议

  1. Migration 判断不需要跑 migration。BASE_DB = ff912897d 之后的 16 个 commit 没有触及 db/migrationsdb/schema,因此 deploy-db-migrations-prod.yml 无需触发(跑了也只是 no-op)。
  2. 发布顺序与每步实际内容(只有 Catalog 有净新增):
    1. DB migration:跳过(0 migration)。
    2. Model Routing Catalogdeploy-model-routing-catalog-prod.yml):唯一必须执行的发布,在 origin/main HEAD 5149e3f66 触发一次新的 workflow_dispatch;apply 将写入 grok-4.7 与 mimo-v2.6-pro/flash 的模型、路由、后端价、公开价与 release gate 行(3 个模型、3 条路由、release gates +2)。
    3. Link / API / Web / Admin:重跑 deploy-*-eks-prod.yml 只重建同一份业务代码(range 内相应目录净 diff 为 0;Web 甚至已在 HEAD 5149e3f66),无功能收益。若为对齐版本号仍要发,建议先 Catalog、后服务(服务侧不需要等待 Catalog,但先 Catalog 可让定价 / 路由数据与新镜像一同观测)。
  3. Release phase 与公开定价展示(需要人工确认):catalog apply 后 grok-4.7mimo-v2.6-pro/flash 仍停在 pre_release(fail-closed,客户不可请求),需按正常发布评审由 Admin 把 phase 推进到 released;MiMo 两个模型在 data/json/model_routing_catalog_release_gates.json 候选列表中,grok-4.7 沿用 grok-4.5/4.6 先例未加候选行(baseline 会把缺失 phase 初始化为 pre_release)。另外 public_pricing.json 会新增三条价格行(SpaceXAI: Grok 4.7Xiaomi: MiMo-V2.6-ProXiaomi: MiMo-V2.6-Flash),公共定价页 / 结算依赖 catalog 数据:apply 后请确认未 released 的模型是否应按预期出现在定价展示中(如需隐藏,应在 Catalog 侧调整而非改 Web 代码)。
  4. 发布方式约束:所有生产 workflow 必须由授权人在 main 上发起新的 workflow_dispatchrun_attempt == 1),不得对历史 run 做原生重跑;本次基线 run 的 trigger_user 均为 nettee
  5. 发布后观测
    • Catalog 落地:核对 public_model_grok_4_7 / public_model_mimo_v2_6_pro / public_model_mimo_v2_6_flash 的 phase 与路由优先级(grok-4.7:xAI 10 → OpenRouter 20;mimo-v2.6-*:OpenRouter 20)。
    • 计费:grok-4.7 公开价 2/6/0.5、xAI 长上下文档 4/12/1.0、OpenRouter 1.6/4.8/0.4;mimo-v2.6-pro 0.435/0.87/0.0036、flash 0.14/0.28/0.0028。若出现账实不符,先核对 provider 侧真实价目。
    • 副作用核对:claude-opus-5 的展示名 / 公司被刷新为 Anthropic: Claude Opus 5 / Anthropic(#53 生成产物),属预期内的上游值同步。
    • 稳定性:apply 后观察 catalog 相关 API 错误率、Admin 模型列表加载、以及(若推进 phase 后)两个新模型的请求成功率 / 延迟 / 回退链是否按 priority 生效。

备注:本报告的 workflow、commit、PR 与 compare range 均使用 Forgejo 链接(code.powerformer.net/core/amr),workflow 链接指向可触发页面;四个服务的 compare range 基于 EKS Pod 观察到的 BASE,DB migration 与 Catalog 的 compare range 基于各自 workflow 的 BASE,未统一使用最旧基线,也未用服务 workflow 的 SHA 替代 Pod 实态。EKS 观察时间:2026-09-22 03:14:35Z 之前一次查询(web 03:10:05Z → admin 03:10:22Z,UTC)。