另一条路:基于多 Agent 协作的 AI 影视制作管线深度解析

「另一条路」(项目代号 another-road)是一个基于 OpenCode AI Agent 框架构建的影视/动画制作管线工作区。它的核心思路是:将影视制作的全流程——从剧本解析、角色/场景/道具设定提取、视觉资产生成,到分镜拆解、AI 视频生成——拆解为多个专业化的 Agent 协作节点,通过一个统一的 Orchestrator(路由调度员)进行任务分发与结果汇总。

这套系统的独特之处在于:它不是简单的”一个 Prompt 出视频”,而是一套严格分阶段、职责边界清晰、元数据驱动的工程化管线。每个 Agent 只做自己分内的事,不越权;所有产物通过 Coordinator 统一归档;阶段流转通过不可逆状态机管理;图像生成通过 MCP 服务器标准化接入。

10
专业 Agent
17
技能模块
6
制作阶段
5
MCP 工具

系统全景架构

整个系统由四个层次构成:Agent 编排层、技能能力层、MCP 工具层、元数据管理层。各层职责分离,通过 JSON Schema 和文件系统协议进行通信。

flowchart TD U["用户指令"] ORC["Orchestrator 路由调度"] AGENTS["10 个专业 Agent
Coordinator / Producer / Writer
Character/Prop/Set Director
Art / Storyboard / Video Director"] SKILLS["17 个技能模块
按需加载"] MCP["GRSAI MCP Server
5 个工具"] META[".meta 元数据
project / stages / manifest / events"] U --> ORC ORC --> AGENTS AGENTS -.-> SKILLS AGENTS --> MCP MCP --> EXT["外部 API
GRSAI / COS / LibTV"] AGENTS --> META
图 1:系统全景架构——四层分层设计

系统采用严格的分层架构:Agent 编排层负责意图识别和任务分发,技能能力层提供具体操作指南,MCP 工具层封装外部 API 调用,元数据管理层追踪项目状态和产物。Agent 之间不直接通信,全部通过 Orchestrator 中转。

配置入口:opencode.json

系统的核心配置文件 opencode.json 定义了所有 Agent 的角色、模型、权限和工具访问策略。不同 Agent 使用不同的大语言模型:

Agent模型模式核心理由
orchestrator默认primary快速路由,无需深度推理
producermimo-v2.5-freesubagent剧本理解+联网检索,免费模型降本
storyboard-directordeepseek-v4-prosubagent分镜创作需要强创作能力
coordinator默认subagent元数据操作,逻辑简单
art-director默认subagentMCP 工具调用编排
权限设计亮点

Orchestrator 被明确禁止读取 .opencode/skills/** 和加载任何技能——它是纯粹的路由器,不是执行者。Art-director 是唯一被授予 grsai_* 工具权限的 Agent,其他 Agent 的图像生成工具全部被设为 false。这种”最小权限”设计防止了 Agent 越权操作。

Orchestrator 路由调度机制

Orchestrator 是整个系统的”大脑入口”,但其设计哲学极为克制:它只做一件事——理解意图、分发任务、汇总结果。

Orchestrator 的行为规则被定义为六条”铁律”,核心思想是零调研、3 秒决策、绝不亲自动手。这意味着 Orchestrator 收到用户消息后,不会先去读文件、搜索代码或了解项目状态,而是直接根据意图匹配表 spawn 对应的子 Agent。

flowchart TD A["用户输入"] --> B{"意图明确?"} B -->|"是"| C{"多意图?"} B -->|"否"| D["spawn general"] C -->|"是"| E["并行 spawn"] C -->|"否"| F["spawn 单个 Agent"] E --> G["等待完成"] F --> G D --> G G --> H["汇总并返回"]
图 2:Orchestrator 路由决策流程

意图匹配表

Orchestrator 通过一张预定义的意图匹配表将用户自然语言映射到具体的子 Agent:

用户说(关键词)spawn 目标典型场景
创建项目、初始化coordinator新项目立项
继续、下一步、推进coordinator阶段流转
剧本、设定、分集剧本producer剧本结构化
角色参考图、角色形象character-director角色资产
场景参考图、环境设计set-designer场景资产
道具参考图、物品设计prop-maker道具资产
出图、画图、生图art-director执行生图
分镜、故事板storyboard-director分镜创作
视频生成、制作视频video-director视频产出
写剧本、润色writer剧本创作
配置、技能修改system-engineer系统维护
设计取舍:为什么禁止 Orchestrator 调研?

如果 Orchestrator 在分发前先调研(读文件、查状态),会导致两个问题:一是延迟增加,用户每句话都要等 Orchestrator 读完上下文才开始处理;二是职责边界模糊,Orchestrator 会逐渐变成”什么都会一点”的全能 Agent,破坏多 Agent 协作的根本前提。唯一例外是”最小化项目列表读取”——仅扫描 .meta/projects/ 目录名,用于项目定位。

六阶段制作管线

从原始剧本到 AI 视频成片,系统定义了六个标准化制作阶段,每个阶段有明确的执行 Agent、前置条件和产出物。

flowchart LR P1["1.项目初始化"] --> P2["2.设定提取"] P2 --> P3["3.全局视觉资产"] P3 --> P4["4.分镜拆解"] P4 --> P5["5.剧集参考图"] P5 --> P6["6.视频生成"] P6 --> C{"有下一集?"} C -->|"是"| P4 C -->|"否"| D["交付完成"]
图 3:六阶段制作管线流程(阶段 4-6 循环执行至所有集数完成)

阶段 1:项目初始化

Coordinator 执行。生成项目 UUID,创建 .meta/projects/{id}/ 元数据目录,初始化四个核心文件:project.json(项目信息)、stages.json(16 阶段状态机)、manifest.json(产物清单)、events.jsonl(事件日志)。同时创建项目业务目录骨架,逐项询问用户填写画幅、分辨率、模型等全局配置,写入 project_config.json

阶段 2:监制提取设定

Producer 执行,是整个管线最上游的内容处理节点。Producer 实现了”三重信息融合”:剧本文本 + 联网历史检索 + 多模态视觉采样。它会扫描前期采样图用 Vision 能力提取视觉信息,识别历史真实内容并联网检索官职服饰、建筑形制等权威资料,最终输出全局设定、角色设定、场景设定、道具设定和分集剧本。

核心过滤原则

Producer 只为核心角色、关键场景、关键道具做设定,不为龙套/过场项浪费资源。信息不足时优先用搜索结果填充,仍不足用 [待补充] 占位,绝不编造

阶段 3:全局视觉资产生成

Character Director + Prop Maker + Set Designer 生成任务表 JSON,再交由 Art Director 执行 AI 生图。角色资产分两步生成:Tier 1 选角资产(白 T 恤七视图,排除服装干扰聚焦角色本体)→ Tier 2 默认定妆(基于角色设定的造型设计)。这种分层设计巧妙地解耦了”角色本体”与”服装造型”。

阶段 4:拆解分镜

Storyboard Director 执行,将分集剧本拆解为场→组→镜三级结构化 JSON。每个镜头包含 17 个字段(景别、摄影机角度/运动、焦距景深、光线、氛围、台词、音效等)。关键设计是”Agent 智能创作 + 脚本机械拆分分离”——LLM 负责理解剧本和创作分镜内容,Python 脚本仅做最后一步机械拆分为独立组 JSON。

阶段 5:剧集级参考图 + 资产同步

基于分镜脚本中的出场信息,各 Director 生成剧集级参考图任务表,Art Director 执行生图后,由 Coordinator 将所需妆造资产从全局依赖目录复制到 temp/分组素材/{剧集号}/,供 Video Director 使用。这里引入了妆造衣橱机制:global 模式初始化衣橱,episode 模式只读匹配,发现新妆造时向 Orchestrator 报告。

阶段 6:视频生成

Video Director 执行,通过 LibTV CLI 将分镜组 JSON 转化为画布上的 video 节点并触发 AI 视频生成。核心流程:绑定画布项目 → 上传参考素材 → 创建 video 节点 → 批量分组运行 → 轮询等待完成。如有下一集,回到阶段 4 循环执行。

Agent 角色矩阵

系统定义了 10 个 Agent,分为三类:路由层(1 个)、制作层(8 个)、工程层(1 个)。每个 Agent 有严格的职责边界和权限控制。

flowchart TD ORC["Orchestrator 路由层"] subgraph Pre["前期处理"] CO["Coordinator"] PR["Producer"] WR["Writer"] end subgraph Asset["资产生成"] CD["Character Director"] SD["Set Designer"] PM["Prop Maker"] AD["Art Director"] end subgraph Post["后期制作"] SB["Storyboard Director"] VD["Video Director"] end SE["System Engineer"] ORC --> Pre ORC --> Asset ORC --> Post ORC --> SE
图 4:Agent 角色矩阵与组织关系
Agent角色核心职责特殊权限
Orchestrator路由调度员意图识别→spawn→汇总禁止读 skills/、禁止加载技能
Coordinator项目统筹元数据管理、阶段推进、产物归档绝不读取产物业务内容
Producer监制剧本解析、设定提取、分集剧本可联网 WebSearch
Writer编剧剧本创作/润色/故事扩展可联网 WebSearch
Character Director角色导演角色参考图任务表
Set Designer置景师场景参考图任务表
Prop Maker道具师道具参考图任务表
Art Director美术指导执行 AI 生图唯一拥有 grsai_* 权限
Storyboard Director分镜导演分集剧本→分镜头脚本使用 deepseek-v4-pro
Video Director视频导演分镜→视频生成
System Engineer系统工程师技能创建/编辑、MCP 开发可修改 .opencode/ 配置

职责边界的”三不原则”

RULE 01

不越权执行

存在对应子 Agent 的任务,必须 spawn 该子 Agent 执行。自行写文件、调 API 属于违规。

RULE 02

不跨界制作

Coordinator 只做元数据管理,不参与任何内容制作。内容制作必须由对应专业子 Agent 完成。

RULE 03

不读业务内容

Coordinator 绝不读取产物业务内容(剧本/设定/图像/分镜),只操作文件路径和元数据,控制 token 开销。

技能体系:17 个能力模块

技能(Skill)是 Agent 的”操作手册”。每个 Skill 定义了特定领域的详细工作流、约束规则和输出规范。Agent 在执行时按需加载对应 Skill。

系统的 17 个技能可分为四大类:制作核心技能(8 个)、文档处理技能(2 个)、工程辅助技能(5 个)、创作辅助技能(2 个)。

制作核心技能

技能功能关键设计
producer剧本解析+设定提取三重信息融合(文本+检索+视觉)
script-writer剧本创作/润色支持电影/动画/短视频/广告/游戏
roles-ref-generator角色参考图任务表三模式:global/episode/group + 妆造衣橱
scene-ref-generator场景参考图任务表左俯瞰+右三宫格,2:1 固定
prop-ref-generator道具参考图任务表上4下2六视图,16:9 固定
art-directorAI 生图执行器MCP 工具统一封装,批量分级策略
storyboard-generator分镜脚本生成场→组→镜三级,17 字段/镜头
video-director-libtv视频生成全流程{Image N} 引用机制 + 临时脚本传 prompt

角色资产的三模式架构

roles-ref-generator 技能定义了三种定位模式来覆盖角色资产的生命周期:

flowchart TD subgraph G["global 模式"] G1["读取角色设定"] --> G2["Tier1 选角 七视图"] G2 --> G3["Tier2 定妆 七视图"] G3 --> G4["初始化妆造衣橱"] end subgraph E["episode 模式"] E1["提取分镜妆造标注"] --> E2{"衣橱中有?"} E2 -->|"是"| E3["输出匹配清单"] E2 -->|"否"| E4["报告需补充"] end subgraph GR["group 模式"] R1["读取群组设定"] --> R2["生成群像图"] end
图 5:角色参考图生成的三模式架构
妆造衣橱机制

这是系统中一个精妙的资产管理设计。global 模式初始化”妆造衣橱”(角色所有造型资产的统一索引),episode 模式只读匹配衣橱中已有资产,发现新妆造时报告 Orchestrator 补充。这确保了角色造型在整个系列中的一致性,避免了”每集重新生成导致角色长相不一致”的问题。

MCP 服务器架构:GRSAI 图像生成

系统通过 MCP(Model Context Protocol)标准将外部 API 能力封装为工具,供 Agent 安全调用。GRSAI Server 是唯一的生产级 MCP 服务器,提供 5 个工具。

GRSAI Server 基于 FastMCP 标准范式构建,采用异步架构,核心流程为”提交→轮询→下载”三段式。它将图像生成 API、腾讯云 COS 存储和配置管理整合为一个自包含服务。

flowchart TD subgraph S["GRSAI MCP Server"] T1["health_check"] T2["submit_image"] T3["poll_result"] T4["batch_generate"] T5["upload_cos"] end subgraph C["grsai_client.py"] SUB["submit_image"] POLL["poll_image"] PROC["本地图转COS"] end EXT1["GRSAI API"] EXT2["腾讯云 COS"] T2 --> SUB T3 --> POLL T4 --> SUB T4 --> POLL SUB --> PROC PROC --> EXT2 SUB --> EXT1 POLL --> EXT1 T5 --> EXT2
图 6:GRSAI MCP Server 架构与工具调用链

图像生成三段式流程

sequenceDiagram participant AD as Art Director participant MCP as MCP Server participant API as GRSAI API participant COS as COS AD->>MCP: submit_image alt 有本地参考图 MCP->>COS: upload COS-->>MCP: URL end MCP->>API: POST generate API-->>MCP: task_id MCP-->>AD: submitted AD->>MCP: poll_result loop 最多20轮 MCP->>API: GET result API-->>MCP: pending/succeeded end alt 成功 MCP-->>AD: completed else 超时 MCP-->>AD: timeout end
图 7:图像生成提交-轮询-下载时序图

模型自适应参数处理

不同模型族对参数格式的要求不同:

# gpt-image 系列:需要像素格式
aspectRatio = resolve_aspect_ratio("16:9", "4K")  # → "3840x2160"

# nano-banana 系列:直接传比例格式
aspectRatio = "16:9"  # 原样传递
imageSize = "4K"      # 原样传递

系统通过 _is_nano_banana_model(model) 判断模型族,自动选择参数格式。同时维护了一张 ASPECT_RATIO_PIXEL_MAP 常量表,将 13 种比例 x 3 档分辨率映射到具体像素值。

批量生成策略

任务量推荐策略工具调用
≤10 张批量模式grsai_batch_generate(提交+轮询+下载一揽子)
>10 张分批提交batch_type=“submit_only” → 逐个 grsai_poll_result
单张两步模式grsai_submit_imagegrsai_poll_result

数据流转与 Schema 设计

多 Agent 协作的核心挑战是数据格式一致性。系统通过共享 JSON Schema 和标准化产物路径映射,确保 Agent 间的数据交接无歧义。

flowchart LR SCRIPT["原始剧本"] --> P2["阶段2: 设定提取"] P2 --> P3["阶段3: 视觉资产"] P3 --> P4["阶段4: 分镜"] P4 --> P5["阶段5: 剧集参考图"] P5 --> P6["阶段6: 视频生成"] P2 -.-> SET["全局/角色/场景/道具设定"] P3 -.-> IMG["参考图 PNG"] P4 -.-> SB["分镜 JSON + 分组"] P5 -.-> REF["剧集参考图"] P6 -.-> VID["AI 视频"]
图 8:全管线数据流转与产物依赖关系

核心 Schema:image-generation.json

所有图像生成任务遵循统一的 JSON Schema,它是上游 Director Agent 和下游 Art Director 之间的”合同”:

{
  "tasks": [
    {
      "prompt": "提示词(必填,原样透传 API)",
      "model": "gpt-image-2",
      "aspectRatio": "16:9",
      "imageSize": "1K",
      "filename": "output.png",
      "images": ["参考图URL或本地路径"]
    }
  ],
  "model": "gpt-image-2",
  "output_path": "./output",
  "oss_path": "project/xxx/reference/"
}

Schema 的设计有几个关键约束:additionalProperties: false 防止字段注入;prompt 是唯一必填字段;模型优先级为 task.model > 顶层.model > 配置文件 GRSAI_MODEL;本地路径会自动触发 COS 上传。

元数据管理:事件溯源模式

Coordinator 通过 events.jsonl 实现事件溯源,所有操作都记录为不可变事件:

事件类型触发时机记录内容
project.created项目创建项目 UUID、名称、类型
stage.transition阶段流转from_stage、to_stage、时间戳
artifact.registered产物注册文件路径、SHA-256、type、size
artifact.deprecated旧产物废弃被替换的产物 ID

通过回放事件日志,可以重建任意时刻的项目状态快照。这是一种典型的 CQRS/Event Sourcing 模式在 Agent 系统中的应用。

16 阶段状态机

stages.json 定义了 16 个生产阶段的精细状态机,比 6 阶段管线更细粒度——它将阶段 3 的”角色/道具/场景”任务表和美术产出拆分为独立的 6 个子阶段:

#阶段 ID名称对应管线阶段
1project_init项目初始化阶段 1
2material_sorting素材整理阶段 1-2
3supervisor_extraction监工提取阶段 2
4global_character_tasks全局角色任务阶段 3
5global_character_art全局角色美术阶段 3
6global_prop_tasks全局道具任务阶段 3
7global_prop_art全局道具美术阶段 3
8global_scene_tasks全局场景任务阶段 3
9global_scene_art全局场景美术阶段 3
10episode_character_ref单集角色参考阶段 5
11episode_storyboard单集分镜阶段 4-6
12delivery交付阶段 6 完成后
状态机不可逆性

阶段状态一旦标记为 completed 就不可回退。每次阶段流转前,Coordinator 会校验阶段完整性(16 阶段齐全)、确认当前阶段已完成、验证前驱产物存在,然后才更新状态。这种严格性保证了管线的可追溯性。

核心设计模式总结

透过代码和配置,可以提炼出这套系统最值得借鉴的六个工程设计模式。

PATTERN 01

智能创作与机械执行分离

LLM 负责内容理解与创作,Python 脚本仅做无状态的机械拆分、Schema 校验、哈希计算。这种分离让脚本可测试、可复用,也让 LLM 专注于真正需要智能的部分。

PATTERN 02

元数据与业务内容严格分离

Coordinator 只管路径和元数据(名称、大小、哈希、类型),绝不读产物业务内容。这是控制 token 开销的核心约束。

PATTERN 03

共享 Schema 驱动协作

共享 JSON Schema 是多 Agent 间的”接口契约”。上游按 Schema 生成数据,下游按 Schema 消费数据,Schema 校验脚本作为中间守门人。

PATTERN 04

事件溯源 + 不可逆状态机

所有操作记录到 events.jsonl,阶段状态不可回退。通过回放事件日志可重建任意时刻的项目状态快照。

PATTERN 05

最小权限原则

Orchestrator 禁止加载技能;只有 Art Director 拥有 grsai_* 工具权限;temp/ 目录禁止删除。每个 Agent 只被授予所需的最小权限集。

PATTERN 06

分层资产生成解耦

角色资产分 Tier 1(白 T 恤选角)和 Tier 2(定妆造型)两层生成。妆造衣橱机制管理角色造型生命周期。

flowchart LR subgraph D["六大设计模式"] D1["智能创作+机械执行"] D2["元数据+业务分离"] D3["Schema驱动协作"] D4["事件溯源+状态机"] D5["最小权限"] D6["分层资产解耦"] end D1 --> B1["可测试可复用"] D2 --> B2["Token最小化"] D3 --> B3["契约明确"] D4 --> B4["审计追踪"] D5 --> B5["防越权"] D6 --> B6["一致性保证"]
图 9:六大设计模式及其工程收益

重构演进:从散装脚本到统一 MCP

系统的工具层经历了一次完整的 7 阶段重构(Phase 0-6),将分散的 CLI 脚本收拢为统一的 MCP 服务器。

flowchart LR P0["Phase0 骨架"] --> P1["Phase1 凭证"] P1 --> P2["Phase2 LLM工具"] P2 --> P3["Phase3 图像API"] P3 --> P4["Phase4 校验整合"] P4 --> P5["Phase5 SKILL改造"] P5 --> P6["Phase6 废弃清理"]
图 10:MCP 服务器重构的 7 阶段路线图

重构前 vs 重构后

维度重构前重构后
图像生成art-director 直接调 CLI 脚本统一走 MCP grsai_batch_generate
LLM 调用storyboard-generator 调 call_llm.py统一走 MCP grsai_call_llm
凭证管理分散在各 Skill 的 config.py统一 config.py,环境变量 > 文件
Validators3 个 ref-generator 各有一份共享 image_task_validator.py
废弃脚本打 DEPRECATED 标记,不删除

重构的核心收益是凭证收口、代码去重、接口标准化。重构后 MCP Server 提供 5 个工具:grsai_health_checkgrsai_call_llmgrsai_generate_imagegrsai_batch_generategrsai_upload_cos,覆盖了图像生成和 LLM 调用的全部需求。

总结与思考

「另一条路」展示了一种工程化的 AI Agent 协作范式——不是追求”一个 Prompt 解决一切”,而是将复杂任务拆解为严格分阶段、职责清晰的专业节点。

这套系统的价值不在于它使用了多先进的模型,而在于它解决了一个核心工程问题:如何让多个 AI Agent 在长流程任务中可靠协作。它的答案是一套完整的”协议栈”——意图匹配表定义路由规则、共享 Schema 定义数据契约、事件溯源定义状态追踪、最小权限定义安全边界、不可逆状态机定义流程纪律。

值得借鉴的设计

  • Orchestrator 的克制:路由器就是路由器,不做调研、不加载技能、3 秒决策。这种克制避免了”上帝 Agent”的反模式。
  • Coordinator 的元数据隔离:只管路径和哈希,不读内容。这是控制 token 开销的关键。
  • 妆造衣橱机制:通过 global/episode/group 三模式 + 衣橱索引,解决了系列片中角色造型一致性的难题。
  • 智能创作与机械执行分离:LLM 做创作,脚本做拆分和校验,各司其职。

改进空间

  • 当前 Agent 间通信完全依赖文件系统,缺乏内存级的数据传递机制,大量文件 I/O 可能成为性能瓶颈。
  • events.jsonl 的单文件追加模式在高并发场景下可能存在写入竞争。
  • 缺少自动化的失败恢复机制——如果某个 Agent 执行失败,需要人工介入重新 spawn。
  • COS 上传整文件读入内存,大文件场景需要流式上传优化。
一句话总结

「另一条路」证明了一件事:AI Agent 的工程价值不在于单个 Agent 有多聪明,而在于多个 Agent 如何被组织成一条可靠、可追溯、可扩展的生产管线。这套系统的架构思路——分层解耦、Schema 驱动、事件溯源、最小权限——对任何多 Agent 协作场景都有参考价值。