MG-02-013 开发计划
状态说明:以当前有效边界为准。供应执行规则与历史实现证据保留;客户身份、售价、结算、全量旧跨仓契约及图像开放计划不代表当前验收范围。
1. 交付策略
项目从空仓库实现。开发里程碑用于控制依赖和验收,不代表生产运行多个版本。所有 P0 完成后进行一次生产入口切换;旧 new-api 不继续作为新网关的在线代理。
每个里程碑必须:
- 有冻结接口和 Owned Paths;
- 有对应验收编号;
- 通过单元、组件或契约门禁;
- 不依赖真实付费 Provider 才能运行 CI;
- 未验证的 Supply 默认 disabled。
2. M0:设计基线、现网事实和复用审查
交付:
- 当前仓库文档基线;
- 生产公开接口、模型和真实请求 Fixture;
- 当前 Channel、Provider、模型、能力和价格清单;
- 最近 30 天请求量、并发和队列峰值;
- 三个 S3/R2 桶和内容交付现状;
- new-api Provider Adapter 复用清单;
- new-api UI 组件和许可证复用清单;
- 继续服务用户和新 Key 发放清单;
- 验收矩阵模板。
退出:
- 所有实际使用的图像/视频路径已知;
- 首批生产 Public Model 和 Supply 矩阵已知;
- 每个 Supply 的能力、价格、计费点和视频真人政策有证据或明确缺口;
- H1 根据现网峰值复核;
- 没有依赖废弃 model-schedule 的设计。
对应验收:
P0-CFG-001..007
P0-MDL-001..004
P0-LOAD-001..004 的目标冻结3. M1:仓库骨架和平台基础
实现:
- Go module、命令入口和配置加载;
- Chi HTTP 生命周期、Request ID、错误信封和健康检查;
- PostgreSQL Migration Runner;
- Redis 和对象存储客户端;
- UUIDv7 公共 ID;
- 十进制金额;
- 结构化日志、指标和 Trace;
- Outbox 基础;
- React 19 前端骨架和设计 Token;
- CI、格式、Lint、单元测试和秘密扫描。
并行:
- Agent A:Go/HTTP/Observability;
- Agent B:PostgreSQL/Redis/Object Store;
- Agent C:Frontend Shell;
- Agent D:CI/Test Harness。
必须先合并的共享契约:
- ID;
- Error Envelope;
- Media Type;
- Money;
- Config 接口。
退出:
- API 和 Worker 可以启动、优雅关闭;
- PostgreSQL/Redis 组件测试运行;
- 前端登录壳和权限路由工作;
- CI 不访问真实 Provider;
- 秘密不会进入日志。
4. M2:用户、客户组、API Key 和使用记录骨架
实现:
- 管理员和普通用户登录;
- User、CustomerGroup、APIKey;
- Key 一次性展示和安全哈希;
- Public Model 权限;
- 同步/异步并发与频率限制;
- MediaRequest、Attempt、MediaOutput 基础;
- 统一使用记录查询;
- 管理审计。
并行:
- Auth/User Backend;
- Record Backend;
- 用户与 Key UI;
- 使用记录列表骨架。
退出:
- P0-AUTH 全部通过;
- 普通用户和管理员数据范围隔离;
- 同步请求可以写入统一记录但不创建 AsyncTask;
- UI 不出现个人资料、充值或聊天入口。
5. M3:Channel、模型发现和 Supply 配置
实现:
- Channel 和 Credential Version;
- Credential 信封加密;
- Provider Adapter Registry;
- Catalog/Price Discovery 接口;
- 模型发现快照和差异;
- Supply、ImageCapability、VideoCapability;
- Cost Rule Version;
- Supply 真实测试证据;
- 单一配置向导;
- Public Model、Binding 和模型广场基础。
首批只实现 Fake Catalog Adapter,随后按复用审查实现真实 Adapter。
退出:
- P0-CFG、P0-MDL 全部通过;
- 添加新 Channel 不需要第二套视频路由配置;
- 单个 Supply 可独立测试、启停和计价;
- 缺少价格/能力/证据不能生产启用。
6. M4:调度、成本、健康和容量
实现:
- Image/Video 独立能力匹配;
stable_first与cost_first;- 按秒、按次、固定区间和价目表 Quote;
- Channel/Supply 两级健康;
- 错误分类;
- 熔断、半开和恢复;
- Channel/Supply Capacity Lease;
- Public Model Dispatch Policy;
- Supply Binding Role;
- Degradation Rule 和 933→900 Fixture;
- 路由模拟和决策快照;
- 队列唤醒。
并行条件:
- 调度输入输出和 Snapshot Schema 先合并;
- Cost、Health、Capacity、Image Matcher、Video Matcher 可并行;
- 最终 Scheduler Orchestrator 串行集成。
退出:
- P0-SCH、P0-POL、P0-COST、P0-HLT、P0-DEG 通过;
- 固定快照得到确定性选择;
- 单 Supply 故障不影响同 Channel 其他 Supply;
- 933→900 只按已发布规则发生。
7. M5:同步与异步图像
实现:
- OpenAI 图像规范化;
- 默认同步执行;
- 同步总超时和一次透明换路;
- 显式
Prefer: respond-async; - Image AsyncTask、Dispatcher/Poller;
- 多输出和顺序;
- URL/Base64;
- 图像结果存储与内容交付;
- 图像 API、模型广场和使用记录 UI。
退出:
- P0-IMG-SYNC、P0-IMG-ASYNC 通过;
- 同步图像不进入长队列;
- 异步图像有平台 Task;
- 图像代码不包含视频或真人能力。
8. M6:异步视频
实现:
- OpenAI
/v1/videos; - ByteDance ModelArk
/api/v3/contents/generations/tasks创建与单任务查询; - 统一 Video Request;
- AsyncTask、Dispatcher、Poller;
- 初次加一次换 Supply;
- 20 分钟重试截止;
- submission_uncertain;
- 异步素材转存;
- Provider 结果转存;
- 任务查询兼容;
- 能力降级响应;
- 视频使用记录和任务详情。
退出:
- P0-VID、P0-RET、P0-AST 通过;
- 两种视频接口使用同一调度链;
- 不存在第三次提交;
- 内容错误不换 Provider;
- Provider 成功但平台无结果时不显示成功。
9. M7:核心后台和告警
实现:
- 数据看板;
- 完整模型广场;
- Channel/Supply 向导;
- Public Model 编排和路由模拟;
- 用户与客户组;
- 统一使用记录详情;
- Channel/Supply 健康;
- 队列与容量;
- 告警、确认和恢复;
- 核心设置;
- API 文档页面。
退出:
- P0-UI、P0-LOG 通过;
- 所有页面使用真实 API;
- 生产构建没有 Demo 数据入口;
- 角色、状态、降级和部分可用表达清晰;
- 可访问性门禁通过。
10. M8:真实 Provider 适配器
每个 Provider 独立任务和 worktree,实现:
- 模型发现;
- 价格发现(支持时);
- 图像或视频请求转换;
- 提交/查询;
- 错误分类;
- 结果解析;
- 脱敏 Fixture;
- 真实测试证据。
首批范围按当前生产事实冻结,不按实现容易程度排序:
Omega
MetaJing
当前 new-api 图像 Provider
其他当前启用的图像/视频 Channel同一 Provider 的不同 Request Profile 可以由不同任务实现,但共享接口必须先冻结。 当前停用和自动停用的媒体 Channel 只导入为 disabled Draft,不执行真实付费冒烟, 也不计入 production-ready 退出门槛。
退出:
- 每个 production_ready Supply 通过真实 Provider 验收;
- 没有从 new-api 复制旧调度依赖;
- 复用来源和许可证完整;
- 价格、收费节点和错误分类有证据。
11. M9:故障、负载和生产切换
执行:
- 完整 Fake E2E;
- PostgreSQL、Redis、Worker、Provider 和对象存储故障演练;
- H1 和现网峰值 ×2 负载;
- 安全扫描;
- 配置导入演练;
- 用户和新 Key 验证;
- 域名和反向代理切换演练;
- 回滚演练;
- 生产冒烟。
部署目标为一台新的独立服务器和单机 Docker Compose。本里程碑必须产出可部署制品、 隔离环境报告和切换/回滚演练报告,但本轮不实际修改现网流量入口。
退出:
- 所有 P0 通过;
- 负载、故障和恢复报告签字;
- 首批生产 Supply 全部有证据;
- 告警可到达管理员;
- 旧系统不再接受新的媒体创建请求;
- 新旧异步任务边界清楚。
12. 多 Agent 实施批次
每一批遵循“共享契约先合并,再并行实现”:
Batch 1
ID/Error/Money/Media Type
HTTP Skeleton
DB/Redis/Object Store
Web Shell
Batch 2
Auth/User/Key
Records
Channel/Credential
Catalog Adapter Fake
Batch 3
Supply/Capabilities/Cost
Public Model/Bindings
Health/Capacity
Web Configuration
Batch 4
Image Scheduler
Video Scheduler
Cost Engine
Fallback Engine
Batch 5
Image Execution
Video Dispatcher/Poller
Result Storage
Public API
Batch 6
Provider Adapters
Admin UI
Fault/Load
Cutover Tooling每批开始前由协调者创建 OMG 编号任务、Owned Paths、依赖、验收编号和测试命令。
13. 开发完成定义
任务完成需要:
- 只修改 Owned Paths;
- 实现正常和错误路径;
- 对应验收编号有测试;
- 运行任务规定门禁;
- 没有秘密和真实付费调用;
- 有清晰 Git commit;
- Agent worktree 干净;
- 提供 commit、测试、证据和风险;
- 集成分支通过完整门禁;
- 文档与代码一致。