
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-agentREADME 未规定单独的依赖安装命令。运行脚本或导入包之前,请使用代码库现有的 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搭建项目后,请按以下顺序执行操作:
run_literary_generate:根据接收内容生成文学包。accept_literary_package:明确接受生成的文学输出。extract_cast_table:提取演员表。run_cast_image_generate:生成演员图片。accept_cast_images:接受生成的演员资产。mark_audio_deferred:记录音频工作已延期。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 闸门,并利用文档化契约和运行时钩子安全地扩展工作流。
