跳到主要内容
AI教程

使用 Hermes 构建第 1 阶段电视剧工作流

本教程介绍 Hermes 戏剧代理架构,并逐步讲解第 1 阶段的接收、丰富、演员图像生成、验收门槛、模式检查,以及向异步剧集制作的过渡。

使用 Hermes 构建第 1 阶段电视剧工作流

Hermes 的功能

Hermes 是一种剧集代理架构,用于组织故事接收、内容丰富、资产创建、剧集构建、运行时事件和制作工作流。当前实现涵盖第 1 阶段的接收与内容丰富、第 2 阶段的 JSONL 构建与验证、第 2 阶段和第 3 阶段的运行时行为、事件处理,以及 Comfy worker 集成。

该项目围绕一个包含 Chat、Assets 和 Job 面板的 Streamlit 宿主应用设计。一次对话对应一个 series_id,而项目将权威剧集数据存储在 projects/{slug}/ 中。

了解阶段模型

代码库记录了 S1–S7 架构。第 1 阶段负责接收与内容丰富:一行概念会变成剧本和演员图片,并包含明确的验收步骤。第 2 阶段构建异步 JSONL 任务并启动异步 Comfy 处理。第 3 阶段使用 on_episode_complete hook 更新运行时状态,其中包括支持生成第二集。

第 4 至第 7 阶段属于同一 Agent v1 范围。其详细架构记录在代码库的 架构文档 中,而锁定的实现决策记录在 DECISIONS.md 中。

准备代码库

从代码库根目录开始。README 将项目目录命名为 drama-series-agent,因此在运行第 1 阶段命令前,请先进入该目录。

cd drama-series-agent

README 未规定单独的依赖安装命令。运行脚本或导入包之前,请使用代码库现有的 Python 环境和项目设置。

运行第 1 阶段接收脚本

要根据标题搭建新的剧集项目,请使用 --title 选项运行接收脚本。下面的示例使用了与 README 一致的中文标题:

python scripts/hermes_drama_intake.py --title 我的短剧

此命令会启动第 1 阶段的接收工作流。随后,项目布局会为运行时事实、文学内容、剧集模板、演员数据和技能提供专用位置。

要查看系统使用的 JSON Schema,请运行:

python scripts/hermes_drama_intake.py --dump-schemas

在集成工具或根据代码库契约验证载荷时,查看 Schema 会很有帮助。

完成 S1-B 内容丰富流程

README 通过 handle_tool_call 暴露 S1-B 工作流。从 drama_series_agent.drama.dispatch 导入分发器:

from drama_series_agent.drama.dispatch import handle_tool_call

搭建项目后,请按以下顺序执行操作:

  1. run_literary_generate:根据接收内容生成文学包。
  2. accept_literary_package:明确接受生成的文学输出。
  3. extract_cast_table:提取演员表。
  4. run_cast_image_generate:生成演员图片。
  5. accept_cast_images:接受生成的演员资产。
  6. mark_audio_deferred:记录音频工作已延期。
  7. get_s1_gate_status:检查剧集是否为 ready_for_s2。

验收步骤非常重要:第 1 阶段不仅是一连串生成调用。文学包和演员图片必须先完成接受,第 1 阶段关卡才会报告已准备好进入第 2 阶段。

以项目布局为指引

Hermes 将不同类型的项目数据分离到可预测的挂载点中:

  • hermes/architecture/ 包含 S1-B、S2–S3 流程序列文档、S4–S7 范围以及架构决策。
  • hermes/contracts/ 包含 JSON Schema 和示例。
  • projects/{slug}/ 存储 L1 事实,包括 series_runtime.json、接收数据、交接数据和决策。
  • dramas/{slug}/ 是文学挂载点。
  • templates/{slug}/ 是 HostApp 剧集挂载点。
  • data/cast/{slug}/ 存储演员和声音数据。
  • skills/drama-intake/ 包含第 1 阶段的 A 技能。
  • skills/drama-series-develop/ 覆盖项目开发领域,例如大纲、世界观构建、角色和视觉风格。
  • skills/0xsline-short-drama/ 提供文学技能运行时使用的文学技能。
  • skills/drama-series-h3-r2v-prompts/ 提供 H3 Ref2VA 接线能力。

了解主要 Python 包

代码库将 Python 功能划分为多个专注的包:

  • drama_series_agent.intake 负责检测、搭建、摄取和交接。
  • drama_series_agent.drama 包含 JobEvent、SeriesRuntime、EventBus、S1-B 内容丰富、S3 hook 和 Comfy worker。
  • drama_series_agent.adapters.r2v 提供 MiniMax H3 R2V 剧集运行器和验证功能。
  • drama_series_agent.utils.skills_paths 用于解析技能位置。

扩展工作流时,请遵循这些包边界,不要将接收、运行时和适配器逻辑放在同一个模块中。

从第 1 阶段进入制作

当 get_s1_gate_status 报告 ready_for_s2 后,剧集即可向第 2 阶段推进。第 2 阶段会构建并验证 JSONL 任务,并以异步方式运行。代码库还通过 comfy_worker.enqueue_comfy_episode 接入 Comfy worker。

第 2 阶段及后续处理应通过运行时事件传达进度,而不是将聊天视为完整的作业日志。已锁定的决策规定,聊天界面显示里程碑,而异步工作由作业层和事件层处理。

当一集完成时,第 3 阶段的 on_episode_complete 钩子会更新系列运行时状态。此运行时更新支持下一集流程,包括预期的“生成第二集”行为。

实用集成提示

  • 让一个对话只关联一个 series_id,确保运行时状态明确无歧义。
  • 在构建外部集成前,使用 --dump-schemas 检查架构。
  • 保留文学输出和演员图像的明确验收顺序。
  • 将项目挂载目录作为运行时、文学、剧集和演员数据的事实来源边界。
  • 在更改 Streamlit 宿主或工作流边界前,先阅读 DECISIONS.md。
  • 生成作业事件或 series_runtime 负载时,使用 hermes/contracts/ 中记录的契约。
  • 将第 2 阶段处理视为异步过程,并通过宿主应用的作业界面和聊天界面显示里程碑。

结论

Hermes 提供了一条结构化路径,可将一句话的戏剧构想转化为通过验收的第 1 阶段包,然后进入异步剧集制作。请从接收脚本开始,完成 S1-B 生成与验收流程,验证 ready_for_s2 闸门,并利用文档化契约和运行时钩子安全地扩展工作流。