Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
AI 视频代理:构建批评循环实现质量保证
2026/08/27

AI 视频代理:构建批评循环实现质量保证

构建 AI 视频代理的批评循环,定义镜头验收规则、修复范围和重试预算,通过人工审核门控和选择性修复防止不合格视频进入最终编辑流程。

AI 视频代理需要一个在生成后的独立验收决策。 一个任务可能成功完成,但剪辑仍然改变了人脸、弯曲了产品、编造了标签文本,或在无法连接到下一个镜头的帧上结束。批评循环捕捉这些失败,解释什么出了问题,只将受影响的镜头发回修复。

这是应用于视频制作的评估-优化工作流程。生成器制作一个剪辑;批评者用明确的标准比较它;代理要么接受、修复、提交或停止。[1]

TL;DR

  • 生成前写镜头合同。区分必须保持固定的细节和允许变化的运动、光照和摄像机变化。
  • 先运行确定性检查:任务状态、输出 URL、文件可读性、时长、尺寸和音频存在。
  • 让批评者返回证据和修复范围,而不是一个含糊的质量分数。
  • 只重试失败的镜头,保留已经通过的每一部分。
  • 为完成的尝试设置上限。没有停止条件的循环会把一个困难的镜头变成无限账单。
  • 为真实人脸、法律文本、品牌主张和最终剪辑保留人工门控。

AI 视频代理批评循环从镜头规划到生成、检查、选择性修复和批准

为什么完成的生成不是已接受的镜头

生成基础设施和创意审查回答不同的问题。 任务系统知道提供商是否返回了文件。它不知道 瓶子是否保持了其比例,演员是否保持可识别性,或最后一帧是否与故事板匹配。

这种区别也影响成本。在 reAPI 上,completed 任务在 usage.credits 中报告结算的费用,而失败的任务在工作流以失败结束时被退款。[3] 如果任务完成而你的团队因创意缺陷拒绝了剪辑,它仍然是一个已完成的生成。应用程序因此需要一个创意重试的预算,即使提供商失败成本为零。

将生成结果视为候选项,而不是最终资源。

第一步:给 AI 视频代理一个镜头合同

批评者不能从"这看起来好吗?"做出一致的决定。在第一个请求之前写下验收规则,这样规划者、生成器、 批评者和人工审核者都在判断同一件事。

{
  "shot_id": "03-product-orbit",
  "intent": "Reveal the side label while keeping the bottle centered",
  "must_keep": [
    "bottle silhouette and cap width",
    "label colors and aspect ratio",
    "no added words or marks",
    "single continuous shot"
  ],
  "allowed_change": [
    "camera moves 30 degrees left",
    "background becomes slightly warmer"
  ],
  "end_state": "front label readable and product centered",
  "max_completed_attempts": 3,
  "max_provider_failures": 2
}

合同应描述可观察的条件。"优质"、"电影"和"漂亮"可能属于创意简报,但它们是很差的通/不通规则。"盖宽度不变"和"没有添加文本"更容易检查和修复。

如果工作需要详细的产品参考准备,请使用Seedance 2.5 电商工作流程。如果失败是镜头之间的身份漂移,GPT Image 2 和 Seedance 2.0 字符工作流程涵盖参考包和连续性移交。批评循环位于任一工作流程上方,而不是替代它。

第二步:在使用模型批评者前拒绝技术失败

不是每个检查都需要另一个 AI 调用。使用代码检查代码可以验证的事实,然后为多模型评估者或人工保留视觉判断。

检查最佳方法失败操作
任务终态API 状态等待、重试真正的失败或停止
输出 URL 存在响应验证在审查前拒绝
文件可以解码媒体探测因破坏的输出拒绝
时长在容限内媒体元数据修复或人工审查
尺寸匹配交付规范媒体元数据拒绝或按照许可调整大小
预期音轨存在媒体元数据修复音频或重新生成
首尾帧存在帧提取继续连续性检查

这个顺序很重要。要求视觉模型评估损坏的文件会浪费 时间并产生模糊的反馈。干净的技术门控给批评者 有效的证据来检查。

同样的原则在更广泛的代理评估中出现:有用的评估混合方法,没有单一层捕捉每个问题。[2]

第三步:要求批评者提供证据、严重性和修复范围

一个总体分数隐藏了你实际需要的决定。返回 0.78 的批评者不会告诉代理是否要重新生成镜头、修复音频、 或将剪辑发送给一个人。

改用结构化输出:

{
  "decision": "repair",
  "severity": "hard_fail",
  "failed_check": "bottle geometry changes during the orbit",
  "evidence": {
    "time_range": "4.2s-5.0s",
    "observation": "cap narrows and label aspect ratio shifts"
  },
  "repair_scope": "shot_03_only",
  "preserve": ["camera path", "lighting", "duration"],
  "next_instruction": "reinforce product geometry from the identity reference"
}

保持批评者的词汇小。四个决定通常足够:

  • accept:每个硬规则通过;
  • repair:失败有狭窄的、可操作的范围;
  • human_review:证据是模糊的或判断敏感;
  • stop:重试上限或预算已达到。

这种结构防止了自动化视频质量保证中的常见失败:批评者在发现一个局部缺陷后重写整个简报。

第四步:只修复失败的部分

选择性修复是循环的主要经济利益。如果五个镜头通过 而第六个有一个糟糕的最后一帧,不要把整个序列发回生成。

失败狭窄的响应应该保持冻结的内容
产品或人脸后期漂移从同一经批准的起始帧重新生成一个镜头身份参考、框架、时长
最后一帧错过移交重述终态或缩短动作开场帧、字符、布景
生成的文本错误从生成中删除关键文本并在后期添加已接受的运动和构图
音频缺失修复音频路径或仅在需要原生同步时重新生成可能时已接受的视觉剪辑
摄像机运动错误简化为一个具有定义终帧的运动主题、环境、光照

不要让批评者引入第二个创意方向。它的工作是 比较、诊断和限制下一个尝试。规划者拥有简报。

第五步:设置重试预算和停止规则

每个自动化循环都需要退出。Anthropic 的评估-优化指导 在评估标准清晰且反馈可以产生可测量的改进时推荐该模式;当批评者不能 表达有用的更正时,这是一个糟糕的匹配。[1]

使用尝试上限和支出上限:

creative retry ceiling =
  maximum completed attempts × estimated completed-task cost

估计来自所选模型的实时费率卡。结算金额 来自任务的 usage.credits;读取该值而不是尝试 重建模型特定计费规则在客户端。[3]

实用的停止政策可能在同一硬规则失败两次时升级, 当下一个修复会改变以前接受的属性时,或当 剩余预算无法涵盖另一次尝试时。这些是产品决定, 而不是普遍的模型限制。

最小批评循环实现

循环可以位于任何异步视频模型上方。媒体模型生成; 应用程序存储任务 id,等待终态,运行技术 检查,并仅在有效输出上调用批评者。

type CriticDecision =
  | { action: 'accept' }
  | { action: 'repair'; repairPrompt: string }
  | { action: 'human_review'; reason: string }
  | { action: 'stop'; reason: string };

async function produceAcceptedShot(contract: ShotContract) {
  let request = contract.initialRequest;
  let completedAttempts = 0;
  let providerFailures = 0;

  while (
    completedAttempts < contract.maxCompletedAttempts &&
    providerFailures < contract.maxProviderFailures
  ) {
    const task = await submitVideo(request);
    const result = await pollUntilTerminal(task.id);

    if (result.status === 'failed') {
      providerFailures++;
      continue;
    }

    completedAttempts++;
    await runDeterministicMediaChecks(result.output.video_urls[0], contract);
    const decision: CriticDecision = await reviewShot(result, contract);

    if (decision.action === 'accept') return result;
    if (decision.action !== 'repair') return decision;

    request = applyNarrowRepair(
      contract.initialRequest,
      decision.repairPrompt
    );
  }

  return { action: 'stop', reason: 'attempt or provider-failure ceiling reached' };
}

生产代码也需要持久化、超时、速率限制处理和一个 记录人工最终批准哪个输出。最重要的是,不要 因为客户端停止等待而提交重复。视频任务可以 运行几分钟,任务端点提供权威状态。[3]

reAPI 在 AI 视频代理工作流程中的位置

批评循环不应依赖一个视频模型。规划者可能需要 一个镜头的长镜头、另一个的更强参考控制,或一个更便宜的 草稿路由,同时视觉方向不确定。

reAPI 通过一个目录暴露当前视频模型并使用异步 任务生命周期进行媒体生成。[4] 这 在保持提交、轮询、结算使用、失败处理和输出存储 一致的同时,模型特定的请求字段保持显式。代理可以 改变模型而不假装它们的控制表面是相同的。

视频模型目录开始,然后使用选定的 模型的文档以获取其实际字段。使用规范任务 API 参考进行轮询、输出、使用、错误和退款 语义。

FAQ

AI 视频批评者需要观看整个视频吗?

不一定。确定性检查可以检查元数据,而视觉批评者 可以从采样帧和规划的开始和结束状态开始。连续 运动、唇同步、声音或短期文物可能需要完整视频和 音频审查。当可用评估者不能检查相关 证据时升级。

生成器和批评者应该使用同一模型吗?

他们可以,但不一定。角色分离比模型的数量更重要 供应商数量。批评者需要合同、输出证据 和受限的决策模式;它不应该继承重写权限 创意简报。

AI 视频代理应该允许多少次重试?

没有通用数字。根据镜头重要性、已完成的 生成成本、交付时间和批评者的反馈可能会改变结果的可能性来设置上限。升级 重复硬失败而不是循环直到 预算消失。

在 reAPI 上失败的视频生成被收费吗?

失败的任务会自动退款。被你的批评者因 创意原因拒绝的已完成剪辑仍然是一个已完成的任务,并在 usage.credits 中报告其结算费用。[3]

哪些检查应该总是需要一个人?

保留人工决定用于法律或事实主张、可识别的相似性、 关键品牌文本、敏感内容和最终编辑批准。自动化 检查应该缩小审查队列,而不是默默地承担责任。

结论

当 AI 视频代理工作流程能够拒绝一个技术上 成功但不可用的镜头时,它变得有用。首先定义合同、使用代码 进行客观检查、要求批评者提供证据、只修复失败的范围、 在预算或反馈质量用尽时停止。循环不保证 完美的生成。它防止一个坏镜头无声地变成 编辑的问题。

References

  1. Anthropic. Building effective agents: evaluator-optimizer workflows, gates, and stopping conditions. Retrieved August 27, 2026 from anthropic.com
  2. Anthropic. Demystifying evals for AI agents. Retrieved August 27, 2026 from anthropic.com
  3. reAPI. Tasks API: polling, usage.credits, status values, and refund behavior. Retrieved August 27, 2026 from reapi.ai/docs/api/tasks
  4. reAPI. Live model catalog and video model availability. Retrieved August 27, 2026 from reapi.ai/models

Further reading