
Hermesの役割
Hermesは、ストーリーの受付、拡充、アセット作成、エピソード構築、ランタイムイベント、本番ワークフローを整理するドラマシリーズ向けエージェントアーキテクチャです。現在の実装は、Stage 1の受付と拡充、Stage 2のJSONL構築と検証、Stage 2およびStage 3のランタイム動作、イベント処理、Comfyワーカー統合を対象としています。
このプロジェクトは、Chat、Assets、Jobパネルを備えたStreamlitホストアプリケーションを中心に設計されています。1つの会話は1つのseries_idに対応し、プロジェクトは正式なシリーズデータをprojects/{slug}/に保存します。
Stageモデルを理解する
リポジトリでは、S1〜S7のアーキテクチャが文書化されています。Stage 1は受付と拡充を担当し、1行のコンセプトからスクリプトとキャスト画像を作成し、明示的な承認手順を実行します。Stage 2は非同期JSONLワークを構築し、非同期のComfy処理を開始します。Stage 3ではon_episode_completeフックを使用してランタイム状態を更新し、2本目のエピソード生成にも対応します。
Stage 4〜7も同じAgent v1のスコープに含まれます。詳細なアーキテクチャはリポジトリのアーキテクチャドキュメントに記載され、固定された実装上の決定事項はDECISIONS.mdに記録されています。
リポジトリを準備する
リポジトリのルートから開始します。READMEではプロジェクトディレクトリをdrama-series-agentとしています。Stage 1のコマンドを実行する前に、このディレクトリへ移動してください。
cd drama-series-agentREADMEでは、依存関係のインストール用に別のコマンドは指定されていません。スクリプトを実行したりパッケージをインポートしたりする前に、リポジトリに用意された既存のPython環境とプロジェクト設定を使用してください。
Stage 1の受付スクリプトを実行する
タイトルから新しいドラマプロジェクトの雛形を作成するには、--titleオプションを付けて受付スクリプトを実行します。次の例では、READMEに合わせて中国語のタイトルを使用しています。
python scripts/hermes_drama_intake.py --title 我的短剧このコマンドはStage 1の受付ワークフローを開始します。その後、プロジェクト構成によって、ランタイムの正規データ、文学コンテンツ、エピソードテンプレート、キャストデータ、スキルの専用保存場所が提供されます。
システムで使用されるJSONスキーマを確認するには、次を実行します。
python scripts/hermes_drama_intake.py --dump-schemasスキーマの確認は、ツールを統合したり、リポジトリの契約に対してペイロードを検証したりする際に役立ちます。
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かどうかを確認します。
承認手順は重要です。Stage 1は単なる生成呼び出しの連鎖ではありません。Stage 1ゲートがStage 2への準備完了を報告するには、文学パッケージとキャスト画像を承認する必要があります。
プロジェクト構成を手引きとして使う
Hermesでは、異なる種類のプロジェクトデータを予測可能なマウント先に分離しています。
hermes/architecture/には、S1-B、S2〜S3のシーケンスドキュメント、S4〜S7のスコープ、アーキテクチャ上の決定事項が含まれます。hermes/contracts/にはJSONスキーマと例が含まれます。projects/{slug}/には、series_runtime.json、受付データ、引き継ぎデータ、決定事項など、L1の正規データが保存されます。dramas/{slug}/は文学マウントです。templates/{slug}/はHostAppのエピソードマウントです。data/cast/{slug}/にはキャストと音声のデータが保存されます。skills/drama-intake/にはStage 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フック、Comfyワーカーが含まれます。drama_series_agent.adapters.r2vは、MiniMax H3 R2Vエピソードランナーと検証機能を提供します。drama_series_agent.utils.skills_pathsはスキルの場所を解決します。
ワークフローを拡張する際は、受付、ランタイム、アダプターのロジックを1つのモジュールにまとめず、これらのパッケージ境界を使用してください。
Stage 1から本番へ進む
get_s1_gate_statusがready_for_s2を報告したら、シリーズをStage 2へ進めることができます。Stage 2ではJSONLワークを構築・検証し、非同期で実行します。リポジトリでは、comfy_worker.enqueue_comfy_episodeを通じてComfyワーカーも接続されています。
ステージ2以降の処理では、チャットを完全なジョブログとして扱うのではなく、ランタイムイベントを通じて進捗を通知します。固定された決定事項では、チャットにはマイルストーンを表示し、非同期処理はジョブ層とイベント層で処理することが定められています。
エピソードが完了すると、ステージ3のon_episode_completeフックがシリーズのランタイムを更新します。このランタイム更新により、意図された「第2話を生成する」動作を含む、次のエピソードへの移行フローが可能になります。
実践的な統合のヒント
- ランタイム状態が明確になるよう、1つの会話を1つの
series_idに関連付けます。 - 外部統合を構築する前に、
--dump-schemasでスキーマを確認します。 - 文学作品の出力とキャスト画像について、明示された受け入れ手順を維持します。
- ランタイム、文学作品、エピソード、キャストのデータについて、プロジェクトのマウントを信頼できる情報源の境界として使用します。
- Streamlitホストやワークフローの境界を変更する前に、DECISIONS.mdを読みます。
- Job Eventまたは
series_runtimeペイロードを生成する際は、hermes/contracts/に記載されたコントラクトを使用します。 - ステージ2の処理は非同期として扱い、ホストアプリケーションのジョブ画面とチャット画面を通じてマイルストーンを表示します。
まとめ
Hermesは、1行のドラマ構想から受け入れ済みのステージ1パッケージへ進み、さらに非同期のエピソード制作へ移行するための構造化された手順を提供します。まずインテークスクリプトを実行し、S1-Bの生成と受け入れ手順を完了して、ready_for_s2ゲートを確認します。そのうえで、文書化されたコントラクトとランタイムフックを使用して、安全にワークフローを拡張します。
