一次创建请求可能已经到达供应商客户端没收到响应不等于任务没有产生。摘要AI 视频生成是长任务创建接口可能先返回任务句柄真正结果要在之后查询。最危险的处理不是超时本身而是把不确定状态直接解释成失败并再次创建。本文从 Microi吾码当前源码和 13 项可复现测试出发解释稳定 RequestId、租户与用户隔离、任务句柄、状态白名单和恢复流程怎样共同守住有限生成额度。✦① 超时只证明你没有及时收到答案一次视频创建通常跨过客户端、吾码后端、模型中转与供应商队列。任何一段网络都可能在任务已经落地后断开。如果客户端把“没有收到 200”直接翻译成“没有创建”下一次点击就可能消耗第二份额度。所以第一条工程原则是超时属于未知状态不是失败终态。未知状态需要回读只有拿到明确的不存在、失败或参数冲突证据才允许决定下一步。错误直觉网络错误发生在响应路径上供应商任务是否已经创建发生在业务路径上。两条路径不能被一个异常对象合并。提交创建请求 ├─ 收到任务句柄 → 保存句柄 → 查询状态 └─ 响应超时 → 复用 RequestId 回读禁止新建✦② 创建与查询必须是两条不同的动作恢复链路的核心不是多试几次而是把创建和查询分开。创建动作会产生费用、占用每日配额并生成供应商任务查询动作只读取已经存在的状态。它们不能共用一个“重试”按钮也不能由同一个循环在异常后自动切换。正确流程是把 RequestId 和任务句柄写入记录。页面刷新、Codex 重启或网络恢复后先用旧记录查询任务仍在 Preparing、Queueing 或 Processing就继续等待而不是再建一条。创建前确定一个业务槽位例如当天第 1 条视频第 2 幕。同一槽位始终复用同一个 RequestId 和完全相同的参数。创建返回后立即保存任务句柄不确定响应则按旧键回读。只有旧任务明确失败且策略允许才生成新的业务槽位。✦③ RequestId 不是随机追踪号当前参数模型明确把 RequestId 定义为调用方稳定幂等键。同一个用户、租户和 RequestId 只能对应同一份生成参数。它的作用不是方便日志搜索而是让系统识别“这仍然是同一次业务意图”。如果每次重试都生成新 UUID后端只能看见三次不同请求即使每一条链路都实现了幂等也无法知道它们其实来自同一个按钮。稳定来自业务命名不来自随机性。RequestId 日期 内容槽位 场景序号 示例article:20260816:tide-eye:scene-02 重试复用原值 新场景创建新值参数约束RequestId 必须为 8—120 位只使用字母、数字、点、下划线、冒号和短横线稳定比看起来随机更重要。✦④ 为什么还要绑定租户和用户同一个文字键在不同租户或不同用户下不应互相抢占任务。源码中的幂等键不是简单拼接 RequestId。它还包含标准化后的 OsClient、用户摘要和 RequestId 摘要。这样既能让同一用户的同一请求收敛也不会让不同租户碰巧使用相同文字键时互相覆盖。任务句柄与文件句柄同样绑定用途、租户和用户并验证签名。一个 task 句柄不能伪装成 file 句柄另一个用户也不能拿它读取当前用户的结果。幂等与授权在同一条恢复链路上各做一件事。源码事实幂等键由租户段、用户 SHA-256 摘要和 RequestId SHA-256 摘要构成句柄还会拒绝用途错配与篡改。✦⑤ 6 秒 1080P 是安全默认值不是宣传口号当前 Microi吾码参数默认模型是 MiniMax-Hailuo-2.3默认时长 6 秒、默认分辨率 1080P。源码允许 6 秒或 10 秒但明确拒绝10 秒 1080P这一组合要求改成 768P 或 6 秒。这种约束应在请求进入供应商前完成。若把不支持的组合交给远端再等待错误不仅反馈慢还会把参数问题和网络问题混在一起。前置验证让失败更便宜、更清楚。默认MiniMax-Hailuo-2.3、6 秒、1080P。Fast 模型必须提供首帧不能把文生视频参数直接套用。首尾帧、模型和分辨率组合均需先走本地归一化。✦⑥ 状态白名单比猜供应商文案可靠当前状态归一化只接受 Preparing、Queueing、Processing、Success 和 Fail。供应商突然返回 completed、done 或其他新字符串时系统不会擅自把它当成功而是归为Unknown。Unknown 不是坏体验而是防止错误解释。它要求调用方保留原始响应、检查协议变化并升级适配而不是把一个没见过的词当成可以下载和发布的成片。状态原则只对协议中已知的终态做不可逆动作未知值先进入诊断不自动创建新任务也不自动发布。✦⑦ 13 项测试到底证明了什么本地 .NET 10 测试13 执行、13 通过、0 失败结果与源码 SHA-256 已归档。本轮只运行 MiniMaxVideoSupportTests结果为13 / 13 通过。覆盖安全默认值、Fast 模型首帧要求、HTTPS 首帧、时长与分辨率组合、尾帧限制、句柄绑定与篡改、幂等键隔离、状态白名单。证据文件保存了命令、退出码、TRX、源码路径、行号和 SHA-256。它证明当前代码里的门禁按测试预期工作不证明线上供应商永远可用也不把本地测试包装成生产成功率。可复现事实13 项测试通过退出码为 0。源码事实租户、用户、RequestId 共同限定幂等范围。未被证明所有网络故障都能自动恢复或供应商从不变更协议。✦⑧ 一套不会浪费额度的恢复清单保存原始 RequestId、参数摘要、任务句柄与最后一次已知状态。遇到超时先查询旧任务无法确认时标记 Unknown并保留诊断。禁止在 Unknown 状态下换一个 RequestId 盲目再建任务。Success 后下载并校验媒体Fail 后记录原始错误再决定新槽位。每次公开发布同样只提交一次回读任务终态后再汇总平台结果。这套流程看起来比“失败就重试三次”慢一点却把最昂贵的动作从网络重试里拿了出来。AI 视频额度有限时先恢复事实再恢复流程才是真正可靠的自动化。结论RequestId 守住的不是一串日志而是同一次业务意图的唯一性。超时之后先查旧任务才能避免把未知状态变成重复付费。