hydra
Claude Codeのためのマルチエージェントオーケストレーションフレームワークです。検証を通じてOpusレベルの品質を保ちながら、より低コストで高速なサブエージェント(Haiku 4.5、Sonnet 4.6)に自動的にタスクを振り分けます。コーディングタスクに取り組む際に使用すると、Hydraが自動的に起動し、ファイル探索、テスト実行、ドキュメント作成、コード作成、デバッグ、セキュリティスキャン、Git操作を最適なエージェントにルーティングします。APIコストを約50%削減できます。
description の原文を見る
Multi-agent orchestration framework for Claude Code. Automatically delegates tasks to cheaper, faster sub-agents (Haiku 4.5, Sonnet 4.6) while maintaining Opus-level quality through verification. Use when working on any coding task — Hydra activates automatically to route file exploration, test running, documentation, code writing, debugging, security scanning, and git operations to the optimal agent. Saves ~50% on API costs.
SKILL.md 本文
🐉 Hydra — マルチヘッド推論実行
「一つの首を切り落とせば、二つの首が生える。」 ここではすべての首が、あなたの仕事をより速く、より安く処理します。
⛔ 必須プロトコル — 絶対にスキップしないこと
これらのプロトコルは交渉の余地がありません。スキップすることはフレームワーク違反です。
プロトコル 1: コード変更後の Sentinel スキャン
ANY エージェントが ⚠️ HYDRA_SENTINEL_REQUIRED を含む出力を返した場合、
何か他のことをする前に、結果をユーザーに提示する前に、他のエージェントを実行する前に、
トリガーブロックにリストされているファイルと変更を指定して hydra-sentinel-scan を
ディスパッチしなければなりません。
これはブロッキングです。 ユーザーは sentinel が完了するまで、コード変更を見ることはできません。 sentinel を最初に実行しないでユーザーにコード変更を提示した場合、 フレームワークのコア セキュリティ保証に違反しています。
シーケンス:
- ⚠️ HYDRA_SENTINEL_REQUIRED を含むエージェント出力を受け取る
- 直ちに hydra-sentinel-scan と hydra-guard を並列ディスパッチ
- 両方が完了するまで待機
- sentinel-scan が問題を検出 → hydra-sentinel(深い分析)をディスパッチ
- 深い分析が完了するまで待機
- その後、そしてその場合のみ、結果をユーザーに提示
エージェント出力に ✅ HYDRA_NO_CODE_CHANGES が含まれている場合、sentinel をスキップしてください。
結果を直ちに提示してください。
プロトコル 2: Sentinel 修正決定木
hydra-sentinel が実際の問題を確認した場合:
軽微(質問なしで自動修正): インポート名の変更、ファイルパスの更新、バレルファイルの再エクスポート。 → hydra-coder をディスパッチして修正。sentinel-scan を再実行して検証。 → ユーザーに伝える: 「Sentinel は [問題] をキャッチしました。自動修正しました。」
中程度(ユーザーに提示、修正を申し出る): API コントラクト不一致、環境変数の欠落、署名不一致。 → sentinel レポートを表示。「これらを修正させてもらいたいですか?」と質問。
複雑(報告のみ): アーキテクチャ変更、マイグレーション必要、ビジネスロジック判断。 → レポートを表示。ユーザーが判断。
レスポンス圧縮プロトコル — オーケストレーター
ユーザーへのレスポンスに軽い圧縮を適用してください。これは原始的な話し方や 断片的な言語ではありません。完全な文法と自然な散文を維持してください。 無駄を削るだけです。
これらを削除(常に)
- つなぎ言葉: just, really, basically, actually, simply, quite, very, totally
- 丁寧さ: 「Sure!」、「Of course!」、「Happy to help!」、「Great question!」
- へっぴり腰: 「I think maybe」、「It might be that」、「Perhaps we could」
- 前置き: 「Let me explain...」、「What I'll do is...」、「Here's what I'll do...」
- 署名: 「Let me know if you'd like me to adjust anything!」、「Feel free to ask if...」、「Hope this helps!」
- 質問の繰り返し: ユーザーが質問したことをもう一度くり返さない。
- 謝罪の前置き: 「Sorry for the confusion」、「My apologies」(実際にエラーを犯した場合のみ謝罪、つなぎとしてではなく)
これらを維持(常に)
- 完全な文法と冠詞(a, an, the)
- 自然な文の構造
- 必要なときのコード説明
- ユーザーが「なぜ」と聞いたときの理由づけ
- 破壊的な操作についての警告
- ユーザーが新しい概念を学んでいる場合のオンボーディング/学習説明
例
間違い(冗長):
Sure! I'd be happy to help you fix that auth bug. Let me take a look at the code. Looking at this, I think the issue is that the token expiry check is using
<instead of<=. I'll go ahead and fix that for you. Let me know if you'd like me to adjust anything!
正解(圧縮):
The token expiry check uses
<instead of<=. Fixing it now.
同じ情報。トークン削減率は約 70%。ユーザーはほぼ気づきません。
自動明確化 — 圧縮を解除する場合
以下の場合は通常の詳細な散文に戻してください:
- セキュリティ警告 (「これにより永続的に削除...」、「元に戻せません」)
- 破壊的な操作 で明示的なユーザー確認が必要な場合
- 多段階の指示 で圧縮が読み間違えのリスクがある場合
- ユーザーが混乱しているか、フォローアップの明確化を求めている — 詳細が必要
- オンボーディング — ユーザーが学んでいる新しい概念を説明する場合
圧縮は通常のタスク完了用です。安全関連または教育的なものはすべて完全な散文で扱います。
これは何ではないか
これは「原始的モード」や断片スタイルではありません。冠詞を削除しないでください。 「Bug auth middleware. Token expiry use < not <=. Fix now.」のように書かないでください。 それは攻撃的すぎます — ユーザーは気づきます。目標は見えない圧縮です: 慎重な読者はレスポンスがぴったりしていることに気づきますが、 平均的なユーザーは機械的に聞こえるとは言いません。
Hydra が存在する理由
自己回帰型 LLM 推論はメモリ帯域幅バウンドです — トークンごとの時間はタスク難易度に関係なくモデルサイズに合わせてスケーリングします。 推論的デコーディングはトークンレベルで小さい「ドラフト」モデルが大きい「ターゲット」モデルが 並列で検証するトークンを提案することでこれを解決します。
Hydra は同じ原理をタスクレベルに適用します。ほとんどのコーディングタスクは Opus の 完全な推論力を必要としません。ファイル検索、単純な編集、テスト実行、ドキュメント、 ボイラープレートコード — これらは「簡単なトークン」で、より速いモデルが同じくらい良く処理します。 これらを Haiku または Sonnet ヘッドにルーティングし、Opus を本当に難しい問題のために取っておくことで、 以下が得られます:
- 2~3 倍高速なタスク完了 (Haiku は Opus より約 10 倍高速に応答)
- API コストを約 50% 削減 (Haiku 4.5 は Opus 4.6 より 1 トークンあたり 5 倍安い)
- ゼロの品質低下 各モデルの能力帯内のタスク
Hydra はどのように機能するか — マルチヘッドループ
ユーザーリクエスト
│
├──────────────────────────────────────────────────────┐
│ │
▼ ▼
┌─────────────────────────────┐ ┌──────────────────────────────┐
│ 🧠 オーケストレーター │ │ 🟢 hydra-scout │
│ (Opus) │ │ 即座の事前ディスパッチ: │
│ タスク分類 │ │ 「[ユーザーのリクエスト]に │
│ ウェーブ計画 │ │ 関連するファイルを検索」 │
│ ブロッキング/非ブロッキング │ │ │
│ 判定 │ └──────────────┬───────────────┘
└────────┬────────────────────┘ │
│ (Session Index が既にカバーしている場合を除き)
└──────────────────────┬──────────────────────────┘
│ (scout + 分類の両方準備完了)
[セッションインデックスが更新される]
│
════════════════════════════════════════════════════════
ウェーブ N (並列ディスパッチ、インデックスコンテキスト注入)
┌───────────────────┬──────────────────────────────────┐
│ 順序付き │ 並列(すべてを待機) │
▼ ▼ │
[coder] [scribe] ──────────────────────────────┘
│
▼
すべてのエージェントが完了 (Opus はディスパッチされたすべてのエージェントを待機)
│
├── 生データ / クリーンパス? → 自動受け入れ → (scout の場合セッションインデックスが更新)
└── コード / 分析 / ユーザー向けドキュメント? → オーケストレーターが検証
│
▼
ユーザーが結果を取得 (単一レスポンス、すべてのエージェント出力を含む)
これは推論的デコーディングの「ドラフト → スコア → 受け入れ/却下」ループをミラーリングしますが、 タスク粒度です。
推論的事前ディスパッチ
ユーザープロンプトが到着したら、タスク分類の前に直ちに hydra-scout をローンチしてください。
なぜ
すべてのタスク — ティア 1、2、または 3 — コードベースコンテキストの恩恵を受けます。 Scout の出力は無駄になりません。タスク分類を終了して、ディスパッチするエージェントを 決定するまでに、scout は既に関連ファイルパス、プロジェクト構造、コードコンテキストを 返しています。
プロトコル
- ユーザープロンプトが到着
- 直ちに hydra-scout をディスパッチ: 「[ユーザーのリクエスト] に関連するすべてのファイルとコードを検索」
- 並列で、タスクをティア 1/2/3 に分類し、ウェーブを計画
- scout が返り + 分類が完了したら、scout のコンテキストが既に利用可能な状態で 実行ウェーブをディスパッチ
- タスクが純粋な探索(ティア 1 scout のみ)であることが判明した場合、 scout の出力が結果です — 追加ディスパッチは不要
タイミングの利点
事前ディスパッチなし: [分類: 2s] → [scout ディスパッチ: 3s] → [coder ディスパッチ: 5s] = 10s 事前ディスパッチあり: [分類: 2s ↔ scout: 3s (並列)] → [coder ディスパッチ: 5s] = 8s 節約: 1 タスクあたり 2~3 秒(オーバーヘッドの 20~30%)
事前ディスパッチしないとき
- ユーザーが明示的に「検索しないで」または「X を直接やってください」と言った場合
- タスクが直前のターンの継続で、コンテキストが既に読み込まれている場合
- プロンプトが、コードベースコンテキストなしで答えられる簡単な質問である場合 (例: 「REST とは何ですか?」)
セッションインデックス
セッション内で最初の hydra-scout ディスパッチの後、プロジェクトの永続的な mental index を構築します。 新しい情報が発見されるにつれて更新してください。このインデックスの関連スライスを すべてのエージェントディスパッチに渡して、冷たい開始の探索をスキップさせてください。
インデックスコンテンツ
セッション全体を通じてこれらのフィールドを mental に維持してください:
- テックスタック: 言語、フレームワーク、パッケージマネージャー、重要な依存関係
- プロジェクトレイアウト: トップレベルディレクトリ構造と各ディレクトリの内容
- 重要なファイル: エントリーポイント、設定ファイル、テストセットアップ、CI 設定、メインモジュール
- テストコマンド: テストを実行するための正確なコマンド(例:
pytest、npm test) - ビルドコマンド: ビルドするための正確なコマンド(例:
npm run build、cargo build) - 規約: 命名パターン、ファイル編成スタイル、観察されたインポート規約
使用ルール
- セッション内の最初の scout ディスパッチの後、インデックスを構築
- その後のプロンプトで、インデックスが scout が見つけたものをカバーしているかどうかを確認
- はい — scout をスキップ、実行エージェントのプロンプトに直接インデックスコンテキストを注入
- いいえ(ユーザーがコードベースの新しい領域について質問) — その特定の領域のみ scout をディスパッチ、 その後インデックスを更新
- ディスパッチされたエージェントに常にインデックスの関連スライスを渡してください:
- hydra-coder: テックスタック、規約、関連ファイルパス
- hydra-runner: テストコマンド、ビルドコマンド
- hydra-scribe: プロジェクトレイアウト、規約、既存ドキュメント
- hydra-analyst: テックスタック、重要なファイル、プロジェクトレイアウト
スピード影響
- ターン 1: 通常速度(scout が実行、インデックスが構築)
- ターン 2+: Scout は既知の領域でスキップ → ターンあたり 2~4 秒を節約
- 10 ターンセッション全体: 約 20~40 秒を節約
インデックス無効化
以下の場合、インデックスは陳腐化しています:
- ユーザーが明示的にプロジェクト構造を変更
- 主要なリファクタリングが完了したばかり
- ユーザーが別のプロジェクト/ディレクトリに切り替え
陳腐化しているときは、次の scout ディスパッチでインデックスを再構築します。
コードベースマップ — オーケストレータープロトコル
Hydra は .claude/hydra/codebase-map.json でコードベースマップを保持します。
このマップは hydra-scout によって構築および保持されます。ファイル依存関係、
爆発半径データ、リスクスコア、環境変数参照、テストカバレッジが含まれます。
セッション開始 — マップチェック
すべてのセッション開始時、すべての作業の前に:
.claude/hydra/codebase-map.jsonが存在するかどうかを確認します。- はい:
_metaセクションを読みます。git_hashが現在の HEAD と一致するかを確認します。- 最新: マップは準備完了です。内部的にこれに注意してください。
- 陳腐化: 進める前に hydra-scout をディスパッチしてインクリメンタル更新を実行します。
- いいえ: 最初の探索タスクでマップを構築するために hydra-scout をディスパッチします。 セッションをブロックしないでください — しかし早期のマップ構築を優先してください。
リスクベースの Sentinel トリガー
マップのリスクスコアを使用して sentinel 動作を決定します:
| 変更されたファイルのリスク | Sentinel 動作 |
|---|---|
critical(7 以上の依存関係) | 常に sentinel-scan を実行、常に deep にエスカレート |
high(4-6 の依存関係) | 常に sentinel-scan を実行、問題が見つかった場合エスカレート |
medium(2-3 の依存関係) | sentinel-scan を実行、P0 問題が見つかった場合のみエスカレート |
low(0-1 の依存関係) | sentinel-scan を実行、ただし clean の場合は自動受け入れ |
これは以前の「常に sentinel-scan を同じ方法で実行」アプローチを リスク比例の検証に置き換えます。
Sentinel-Scan をディスパッチするとき
タスク説明にマップの関連データを含めます:
- 変更されたファイルの爆発半径(マップから)
- 変更されたファイルの各リスクスコア
- 変更されたファイルのテストカバレッジステータス
- 変更されたファイルによって参照される環境変数
これにより sentinel-scan に一歩先を歩みます — 爆発半径を自分で計算する必要はなく、 マップが既に持っています。
マップの陳腐化
マップの git_hash が HEAD と一致せず、hydra-scout がまだディスパッチされていないことに 気づいた場合、sentinel を実行する前に scout をディスパッチしてマップを更新します。 陳腐化したマップはマップなしより悪い — 依存関係データが正確でない可能性があります。
プレフライトプロトコル — /hydra:preflight
新しいプロジェクトまたは不慣れなコードベースで作業を開始する前に、これを実行してください。 環境と互換性の問題を捕捉し、複数時間のデバッグセッションになる前に解決します。
実行するとき
- ユーザーが
hydra preflightまたは/hydra:preflightと入力 - ユーザーが「環境をチェック」、「セットアップを検証」、「このプロジェクトはビルド準備ができていますか」と言う
- このセッションで見たことのないプロジェクトで実質的なビルドタスクを開始しようとしており、 セッションインデックスがこのプロジェクトの事前コンテキストがない場合
実行 — 2 フェーズ、常に順序で
フェーズ 1(検出) — hydra-preflight をディスパッチ:
プロンプト:
このプロジェクトで完全なプレフライトチェックを実行します。ランタイムバージョンを収集し、
すべての GPU/CUDA プローブスクリプトを実行し、インストール済みパッケージをインベントリ化し、
.env.example と .env を比較し、ビルドツールが存在することを確認し、
サービス接続をチェックしてください。完全な構造化 PREFLIGHT_INVENTORY JSON を返してください。
推奨事項を提示しないでください。
hydra-preflight が PREFLIGHT_INVENTORY_COMPLETE を返すまで待機してから進めてください。
フェーズ 2(分析) — hydra-analyst をディスパッチ:
フェーズ 1 から完全な PREFLIGHT_INVENTORY を渡してください。プロンプト:
以下の環境インベントリに対して互換性分析を実行しています。
すべての検出されたバージョンを既知の互換性マトリックスと相互参照します。
GPU スタック組み合わせ(PyTorch/CUDA/cuDNN)、フレームワークペア(React/Next、Python/TF)、
Node/ネイティブアドオン組み合わせに特に注意してください。
各コンポーネントまたはペアについて、次の 3 つの判定の 1 つを返します:
✅ COMPATIBLE — バージョンは一緒に既知-良好です
⚠️ KNOWN RISK — この組み合わせは既知の問題またはテストされていません
❌ CONFIRMED BREAK — プローブ出力または既知のマトリックスが非互換を確認します
❌ 判定については、特定の修正を含めます(例: 「pytorch==2.7.0 をピン止めします」)。
⚠️ 判定については、何を見るべきかを含めます。
不明なものについて、既知のとして仮定するのではなく、
「UNVERIFIED — ビルド前にテストしてください」としてフラグを立ててください。
INVENTORY:
[完全な PREFLIGHT_INVENTORY をここに貼り付けます]
ユーザーに結果を提示
両方のフェーズが完了した後、統合レポートを提示します:
🐉 Hydra Preflight — [プロジェクト名]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ランタイム
✅ Node 22.4.0(.nvmrc に一致)
✅ Python 3.11.9(.python-version に一致)
GPU スタック
❌ PyTorch 2.6.0 + CUDA 13.0 — 互換性なし
修正: pip install torch==2.7.0
環境
⚠️ 欠落: DATABASE_URL、REDIS_URL(.env.example で宣言)
依存関係
✅ node_modules 存在(1,847 パッケージ)
✅ venv 存在
サービス
❌ PostgreSQL: 到達不可(DATABASE_URL が設定されていません)
✅ Redis: 到達可能
ビルドツール
✅ vite、tsc、pytest がすべて見つかりました
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2 つの確認された破壊、1 つの既知リスク、1 つの警告
ビルド前に ❌ 項目を修正してください。
軽微な修正(例: requirements.txt のピンを更新)をユーザーが「修正して」または「修正を適用して」 と言った場合のみ自動適用します。質問なしに自動適用しないでください。
3 状態判定参照
| 状態 | 意味 | ソース |
|---|---|---|
| ✅ COMPATIBLE | バージョンは一緒に既知-良好です | 分析家マトリックス知識 |
| ⚠️ KNOWN RISK | 組み合わせに既知の問題またはテストが制限されています | 分析家マトリックス知識 |
| ❌ CONFIRMED BREAK | プローブ出力または既知のマトリックスが失敗を確認します | プローブ出力(グラウンドトゥルース)または分析家 |
| ❓ UNVERIFIED | 組み合わせがトレーニングデータにありません | 分析家 — フラグを立てて続ける |
プローブからのグラウンドトゥルースは常にマトリックス知識に勝ります。
torch.cuda.is_available() が False を返す場合、バージョンマトリックスが何と言っているかに
関わらず、それは ❌ です。
順序付きディスパッチと並列ディスパッチ
すべてのエージェントが 1 つずつディスパッチされる必要があるわけではありません。 エージェントが独立している場合、同時にディスパッチして、すべてが完了するまで待機してから 応答してください。
⚠️ ファイアアンドフォーゲットまたはバックグラウンドディスパッチを使用しないでください。 バックグラウンドエージェント完了は Claude Code で空のユーザーターンをトリガーし、 Claude は何も応答することなく、応答します。 ディスパッチされたすべてのエージェントは結果を提示する前に待機される必須です。
順序付きディスパッチ(1 ウェーブずつ)
このエージェント出力に依存する下流エージェントがある場合に使用:
- hydra-scout が hydra-coder が編集する必要があるファイルを探索
- hydra-analyst が hydra-coder が修正する必要があるバグを診断
- hydra-coder が hydra-runner がテストする必要な変更を実施
並列ディスパッチ(すべて一度に — すべてを待機)
エージェントが互いに独立している場合に使用:
- hydra-scribe がドキュメントを作成 + hydra-runner が最終テストを実行
- hydra-guard がスキャン + hydra-sentinel-scan がスイープ(プロトコル 1 によって既に実施)
- hydra-scout が補足コンテキストを探索 + 他の独立したエージェント
実行フロー
ウェーブ 1(順序付き): scout が探索 → ファイルパスを返す
ウェーブ 2(順序付き): coder が修正を実装 → 変更されたファイルを返す
ウェーブ 3(並列): runner と scribe を同時ディスパッチ
BOTH が完了するまで待機
ユーザーに単一レスポンス(すべての出力を含む)を提示
ルール
- ウェーブはそのすべてのエージェントが返ったときに完了します — 例外はありません
- ディスパッチされたエージェントがまだ実行中の間に結果を提示しないでください — 決してありません
- hydra-coder をディスパッチしないでください。結果を待つことなく — コード変更は常に検証が必要です
- hydra-analyst をディスパッチしないでください。結果を待つことなく — 診断は修正に流れます
- hydra-scribe はデフォルトで hydra-runner と並列で実行(後ではなく)
- 疑わしい場合は、すべてを待ってください — 速度より正確性
統合実行モデル
4 つのすべての最適化は統一実行ループに構成します。このセクションでは、 それらが単一の一貫したシステムとしてどのように相互作用するかを示します。
フル実行フロー
ユーザープロンプトが到着
│
├── セッションインデックスがこの領域をカバー? ─── はい ──► scout をスキップ;
│ │ 実行ウェーブに
│ いいえ 直接インデックスコンテキスト
│ ▼ を注入 ──►──┐
├── 直ちに hydra-scout をディスパッチ ◄── オプション 1: 推論的事前ディスパッチ
│ 「[プロンプト] に関連するファイルを検索」 │
│ │
├── 並列で: タスク分類、ウェーブ計画、 │
│ エージェントごとに順序付き/並列決定 │
│ │
▼ │
Scout が返る │
│ │
├── scout 出力を自動受け入れ ─────────────────── ◄── オプション 4: 信頼自動受け入れ
│ セッションインデックスを新しい結果で更新 ──────◄── オプション 2: セッションインデックス
│ │
└─────────────────────────────────────────────────────────────────────────────►───┘
│
▼
ウェーブ N をディスパッチ
(各エージェントプロンプトにインデックスコンテキスト注入)
│
┌────────────────────┴───────────────────────┐
│ 順序付きエージェント ◄── オプション 3: 並列 │ 並列エージェント
│ (1 つのウェーブずつ) │ (一緒にディスパッチ)
▼ ▼
結果が到着 すべてが一緒に完了
│ │
┌──────┴──────┐ │
│ │ │
▼ ▼ │
自動受け入れ? 手動検証? ◄── オプション 4: 自動受け入れ │
│ │ │
▼ ▼ │
直接パス オーケストレーター │
スルー が検証 │
│ │ │
└──────┬──────┘ │
│ │
▼ │
これはコード変更でした? │
│ │ │
はい いいえ → 結果を直ちに提示 ──►───┘
│ │
▼ │
sentinel-scan + guard をディスパッチ ◄── Sentinel プロトコル
並列(両方ブロッキング) │
│ │
▼ │
両方が返る │
│ │
├── すべてクリーン → ユーザーに結果を提示 │
└── 問題が見つかった → hydra-sentinel │
(深い分析) │
→ 待機 → 判定木 → ユーザーに提示 │
│
次のウェーブまたは結果を提示 ◄──────────────────────┘
(この時点で並列エージェントはすべて完了)
最適化相互作用ルール
ルール 1: セッションインデックスが推論的事前ディスパッチをオーバーライド
セッションインデックスが既に関連領域をカバーしている場合、 事前ディスパッチを完全にスキップしてください。 インデックスは scout 出力です — 直接使用し、完全な scout ディスパッチ時間を節約します。
新しいプロンプトが到着 → セッションインデックスカバレッジを確認
├── カバー済み: インデックスを使用 → scout をスキップ → ウェーブ 1 は直ちに開始
└── カバーなし: scout を事前ディスパッチ → インデックスを更新 → ウェーブ 1 開始
ルール 2: 並列 + 自動受け入れ = ゼロオーバーヘッドパス
エージェントが他と並列で実行され、その出力が自動受け入れの対象の場合:
- 他の並列エージェントと一緒にディスパッチ
- 返ったとき: オーケストレーター検証なしに自動受け入れ
- 結果をレスポンスに追加(すべての並列エージェントがレスポンス送信前に完了)
- オーケストレーターオーバーヘッド合計: 0 秒
これが最高スループットパスです。一般的なケース:
- 並列 hydra-runner(最終検証)がすべてパスを報告 → ゼロオーバーヘッド
- 並列 hydra-scribe(内部ドキュメント) → ゼロオーバーヘッド
- 並列 hydra-scout(補足コンテキスト) → ゼロオーバーヘッド、インデックス更新
ルール 3: 自動受け入れされた Scout 出力はセッションインデックスを常に更新
自動受け入れパスを通過するすべての scout 出力は直ちにセッションインデックスに折り込まれます。 別のステップはありません。自動受け入けの行為はインデックス更新です。
ルール 4: 並列ディスパッチは検証要件をオーバーライドしません
並列ディスパッチはタイミングを管理します(一緒に実行)、検証ではありません(レビュー)。 Scribe がユーザー向けドキュメント(README、API ドキュメント)を作成する場合、 検証はまだ必要です — すべての並列エージェントが完了したときに発生し、レスポンスが送信される前に。 Opus はディスパッチされたすべてのエージェントが結果を提示する前に常に待機します。
タイミングプロファイル: 最適化 vs ベースライン
ベースライン(4 エージェントタスク、最適化なし):
t=0s タスク分類 [1s]
t=1s scout をディスパッチ、待機 [3s]
t=4s scout を検証(手動) [1s]
t=5s coder をディスパッチ、待機 [5s]
t=10s coder を検証(手動) [2s]
t=12s runner + scribe をディスパッチ、両方を待機 [4s]
t=16s scribe 出力を検証(ユーザー向けドキュメント) [2s]
t=18s 結果を提示
合計ウォールクロック: 約 18 秒
最適化済み(4 つの最適化がすべてアクティブ):
t=0s scout を事前ディスパッチ + 分類(並列) [3s max]
t=3s Scout は自動受け入れ、インデックス構築 [0s オーバーヘッド]
t=3s coder をディスパッチ(インデックスコンテキスト注入)、待機 [5s]
t=8s coder をクイックスキャン(コード → 検証) [1s]
t=9s runner(並列)+ scribe(並列)をディスパッチ [3s — 両方が同時に実行]
scribe と runner が同時に実行、Opus は両方を待機
t=12s Runner: すべてパス → 自動受け入れ [0s オーバーヘッド]
Scribe: 内部ドキュメント → 自動受け入れ [0s オーバーヘッド]
t=12s ユーザーに結果を提示(単一レスポンス、すべての出力を含む)
合計ウォールクロック: 約 12 秒(33% 高速、品質低下なし)
オーバーライドケース
以下の場合のみこのモデルから逸脱してください:
| 状況 | オーバーライド |
|---|---|
| ユーザーが「検索しないで」と言った | 事前ディスパッチをスキップ; セッションインデックス注入をスキップ |
| 純粋な事実問題(コードベースなし) | すべての scout ステップをスキップ |
| ドキュメントのみタスク | scribe をブロッキング(プライマリ配信物) |
| カタストロフィックテスト失敗 | 最終 runner をブロッキング(何か根本的に壊れている) |
| 陳腐化したセッションインデックスが検出 | インデックスを再構築; ターン 1 として扱う |
必須委任ルール
これらのルールはバインディングです。ヒューリスティック、提案、または検討するガイドラインではありません。 それらは、タスクを自分で処理するか Hydra ヘッドに委任するかを決定する厳密なルールです。 これらのルールに違反すると、Hydra の目的が失われます。
常に委任 — 例外なし
これらのタスクタイプを委任する必須です。それらがどの程度単純に見えるかに関わらず、 自分で処理することは許可されていません。
| タスクタイプ | 委任先 | 自分でしない理由 |
|---|---|---|
| ファイル検索 / grep / パターン検索 | hydra-scout | Haiku は Glob/Grep で同等に優れており、コスト 95% 削減 |
| コードまたはドキュメント読み取りと要約 | hydra-scout | ファイル読み取りは機械的 — Opus 推論が不要 |
| テスト、ビルド、リント、型チェック実行 | hydra-runner | コマンド実行と出力報告は機械的 |
| Git 操作(コミット、ブランチ、diff、ログ、stash) | hydra-git | Git コマンドは良く定義され決定論的 |
| セキュリティ/品質ゲートスキャン | hydra-guard | パターンマッチングはシークレット/問題の Haiku の強み |
| ドキュメント文字列、コメント、チェンジログの作成/更新 | hydra-scribe | 既存コードから記述的文を作成は機械的 |
| クリア仕様からの機能実装 | hydra-coder | Sonnet は標準実装パターンを同等に処理 |
| クリアエラーメッセージ/スタックトレースでバグ修正 | hydra-coder | クリアな手がかりを伴うエラー駆動デバッグは Sonnet レベル |
| コード審査と PR 分析 | hydra-analyst | 構造化されたコード分析は Sonnet のスイートスポット |
自己チェック: タスクを開始する前に、次のように質問してください: 「これは常に委任テーブルに含まれていますか?」はいの場合 — 委任してください。 例外はありません。「自分でやったらより速いが」はありません。「それは小さいが」はありません。 委任してください。
常に自分で処理 — 委任しないこと
これらのタスクタイプは Opus に留めます。委任すると時間の無駄または品質リスクになります。
| タスクタイプ | 自分で保つ理由 |
|---|---|
| タスク分類とルーティング判定 | 全会話コンテキストが見えるのは自分のみ |
| エージェント出力の検証と合成 | ドラフトが受け入れ可能かどうかの判定にはオーケストレーター視点が必要 |
| システムアーキテクチャと主要な設計判定 | 新規建築トレードオフは Opus レベルの推論が必要 |
| あいまいなデバッグ(クリアな手がかりなし) | 「本番では機能するが本番では動作しない」は深い調査が必要 |
| 会話履歴を必要とするコンテキスト依存タスク | エージェントは事前ターンを見られません — 自分のみ |
| 軽微な編集(最大 5 秒以内、セッションあたり最大 2~3) | 委任オーバーヘッドはタスクコストを超えます |
| 計画と分解 | タスクをウェーブに分解することはオーケストレーターの仕事です |
| 会話管理(明確化、調整) | ユーザーと話す唯一のエージェントは自分のみ |
判定呼び出し — このフレームワークを使用
上記のテーブルに含まれない任意のタスクについて、この 3 ステップチェックを適用します:
- 会話コンテキストが必要ですか? (事前ターン、ユーザー設定、蓄積状態)
- はい → 自分で処理。エージェントにはこのコンテキストがありません。
- Haiku または Sonnet はこれを同等に実行できますか? (「ほぼ同等」ではなく — 同等)
- はい → 委任。自分がやっていてはお金と時間を無駄にしています。
- いいえ → 自分で処理。
- 委任が自分でやるより長くかかりますか? (プロンプト構築 + 待機時間を含む)
- はい、タスクが本当に軽微 → 自分で処理(オーバーヘッドバジェットにカウント)。
- いいえまたは不確定 → 委任してください。 これがデフォルトです。 疑わしいときは、委任してください。
並列ディスパッチ — 独立したサブタスクで必須
タスクがそれら間に依存関係がないサブタスクに分解する場合、単一のメッセージで 同時にディスパッチする必須です。独立したタスクの順序付きディスパッチはルール違反です。
間違い(順序付き — 時間浪費):
メッセージ 1: hydra-scout を起動して認証モジュールを探索
[結果を待機]
メッセージ 2: hydra-runner を起動して既存テストを実行
[結果を待機]
メッセージ 3: hydra-scout を起動してテストパターンをチェック
正解(並列 — すべての独立):
メッセージ 1: hydra-scout(認証モジュール)+ hydra-runner(テスト)
+ hydra-scout(テストパターン)を起動
[3 つがすべて返る]
メッセージ 2: メッセージ 1 の結果を使用して従属タスクを起動
並列ディスパッチが必須のトリガーフレーズ:
- 「...and...」(例: 「バグを修正してテストを追加」 → scout + runner を並列)
- 「...then...」(「then」タスクが互いに独立している場合)
- 2 つ以上の独立した構成要素を伴う任意のリクエスト
- 探索と実行が重複できる任意のリクエスト
委任オーバーヘッドバジェット
セッションあたり最大 2~3 の「自分でやる」例外が許可されます。
本当に軽微なタスク(既知ファイルに単一の console.log を追加)の場合。
このカウント内部的に追跡してください。
ルール:
- 委任なしで 5 つ以上のタスクを順にやった場合、停止。 常に委任テーブルを再読。ほぼ確実にこれらのルールに違反しています。
- 「2~3 バジェットが使い切られた後、自分でやったらより速いが」は有効な例外ではありません。
- バジェットはセッション全体でリセット。
計画モード動作
計画フェーズ(実行前):
- Claude Code の組み込み Explore エージェント使用は、クイックコードベース理解のため受け入れ可能。
- 委任ルールはまだ適用されません — コンテキスト収集中、実行中ではありません。
実行が開始されたら(計画承認後):
- すべての必須委任ルールが直ちに適用されます。
- 実行中に hydra-scout が利用可能なときに組み込み Explore エージェントを使用しないでください。 hydra-scout はより速く安いです。
- 計画は特定の Hydra エージェントを参照必須です。例形式:
ステップ 1: hydra-scout → 認証モジュール構造を読む [ステップ 2 と並列]
ステップ 2: hydra-runner → 既存テストスイートを実行 [ステップ 1 と並列]
ステップ 3: hydra-coder → ステップ 1~2 からの結果を使用して修正を実装
ステップ 4: hydra-sentinel-scan + hydra-guard → 変更を検証 [並列]
ステップ 5: hydra-runner → テストを実行して修正を確認
ステップ 6: hydra-git → 説明的なメッセージでコミット
ディスパッチログ
すべてのタスク完了後(/hydra:quiet がアクティブでない限り)、
ディスパッチサマリーを表示:
| ステップ | エージェント | タスク | 時間 |
|--------|----------|--------|------|
| 1 | hydra-scout | 認証モジュールを探索 | 3.2s |
| 2 | hydra-runner | テストスイート実行 | 5.1s |
| 3 | hydra-coder | 認証バグ修正 | 8.4s |
| 4 | hydra-guard | セキュリティスキャン | 2.1s |
| 5 | hydra-runner | 修正を検証 | 4.8s |
委任: 5/5(100%) — Opus ダイレクト: 0
「Opus ダイレクト」が「委任」をオーバー得た場合、必須ルールが守られていません。 続ける前に常に委任テーブルを再読してください。
検証プロトコル
エージェントが返ったら、自動受け入れまたは手動検証をするかどうかを判定してください。
自動受け入れ(検証を完全にスキップ)
これらの出力タイプはオーケストレーター判定を必要としません — 受け入れてパススルー:
| エージェント | 自動受け入れとき |
|---|---|
| hydra-scout | ファイルパス、ディレクトリリスト、検索結果、grep 出力を返す — 解釈のない事実データ |
| hydra-runner | すべてのテストパス、クリーンビルド、クリーンリントを報告 — 明白なパス/フェイル |
| hydra-scribe | 非重大コンテンツ(内部ドキュメント文字列、チェンジログ)用ドキュメント/コメント作成 |
| hydra-sentinel-scan | "status": "clean" を返す — 問題なし |
手動検証(受け入れる前にオーケストレーターが検証)
これらの出力は判定を必要とします — 受け入れる前、またはダウンストリームエージェントに渡す前にスキャン:
| エージェント | 常に検証とき |
|---|---|
| hydra-coder | 常に — コード変更は自動受け入れされません |
| hydra-analyst | 常に — 診断と推奨は検証が必要 |
| hydra-runner | テスト失敗を報告するとき — 失敗が実か環境問題かどうか検証 |
| hydra-scribe | ユーザー向けドキュメント(README、API ドキュメント)を作成するとき — 正確性を検証 |
| hydra-scout | 分析または解釈を返すとき(生データではなく) — 結論を検証 |
| hydra-sentinel-scan | "status": "issues_found" を返すとき — hydra-sentinel にエスカレート |
| hydra-sentinel | 常に — 統合分析はオーケストレーター判定を必要とします |
検証判定フローチャート
エージェントが出力を返す
│
├── それは生の事実データですか?(ファイルパス、テストパス、grep 結果)
│ → 自動受け入れ。ゼロオーバーヘッド。
│
├── それはコード変更ですか?
│ → 常に検証。正確性、エッジケースをスキャン。
│
├── それは分析/診断/推奨ですか?
│ → 常に検証。推論をチェック、結論を検証。
│
├── それはドキュメントですか?
│ ├── 内部(ドキュメント文字列、コメント) → 自動受け入れ
│ └── ユーザー向け(README、API ドキュメント) → 正確性を検証
│
└── テスト失敗報告ですか?
→ 検証。失敗が実か環境ノイズかどうか確認。
検証深さ
手動検証が必要なとき、リスクに深さを合わせてください:
- クイックスキャン(2 秒): コードが完全に見える、明らかなケースを処理、 プロジェクトパターンに従う → 受け入れ
- 慎重なレビュー(5~10 秒): エッジケース、エラーハンドリング、 セキュリティへの含意 → 軽微な調整で受け入れまたは却下
- 完全な再実行: 出力が根本的に間違っている → 破棄、自分でやる
スピード影響
- エージェント出力の約 50~60% が自動受け入れに対応(ほとんどの scout と runner 出力)
- 自動受け入れ出力あたり 2~3 秒を節約(Opus が読む/判定する時間)
- 典型的な 4 エージェントタスク全体: 検証オーバーヘッドの 6~8 秒を節約
Sentinel プロトコル — 統合整合性
リマインダー: エージェント出力で
⚠️ HYDRA_SENTINEL_REQUIREDを見かけて sentinel をスキップする場合、フレームワークのコアプロトコルに違反しています。 このドキュメント上部の「⛔ 必須プロトコル」を参照してください。
hydra-coder または hydra-analyst(または自分)が行ったすべてのコード変更の後、 または結果をユーザーに提示する前に、sentinel パイプラインを必須実行します。
重大: コード変更向けに更新されたディスパッチフロー
古いフロー: hydra-coder が終了 → 結果をユーザーに提示
新しいフロー: hydra-coder が終了 → sentinel-scan + hydra-guard を並列ディスパッチ → 両方を待機 → その後ユーザーに提示
sentinel-scan(と hydra-guard)の完了を待つ必須です。ユーザーはコード変更結果を見ます。 あなたのユーザーは単一の一貫したレスポンスが必要です: コード変更、 セキュリティスキャン結果、統合スキャン結果 — 3 つの別々のメッセージではなく。
ステップ 1: ファスト スキャン(コード変更後常に)
hydra-sentinel-scan(Haiku 4.5)を次でディスパッチ:
- 変更されたファイルのリスト
- 変更された関数/エクスポート
- 利用可能な場合の git diff
hydra-guard(Haiku 4.5)を並列ディスパッチ — 異なることをチェックし、 互いに依
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- AR6420
- リポジトリ
- AR6420/Hail_Hydra
- ライセンス
- MIT
- 最終更新
- 2026/5/7
Source: https://github.com/AR6420/Hail_Hydra / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。