agenthub について
AgentHubは、Claude Codeセッション向けのマルチエージェント協業スキルです。分離したGit worktreeで複数の案を並行実行し、コーディネーターが進捗を追跡して評価し、選んだブランチをマージします。
主な機能
- 01分離worktreeでのエージェント並行実行
- 02セッションと進捗の追跡
- 03指標または評価者による順位付け
- 04エージェント更新用のボード
- 05勝者のブランチをマージし他案を保管
活用シーン
- 01コーディング課題の複数案を比較
- 02複数の試行でパフォーマンスを最適化
- 03異なる原稿案を生成して評価
- 04ブランチを保全し結果をレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill agenthubインストール後、Claude Code で/agenthubを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/agent-templates.mdcoordination-strategies.mddag-patterns.mdscripts/board_manager.pydag_analyzer.pydry_run.pyhub_init.pyresult_ranker.pysession_manager.py詳細
AgentHub — マルチエージェントのコラボレーション
同じタスクで競い合う N 個の AI エージェントを並列で起動します。各エージェントは、分離された git worktree で作業します。コーディネーターが結果を評価し、最良の結果をマージします。
スラッシュコマンド
| コマンド | 説明 |
|---|---|
/hub:hub-init | 新しいコラボレーションセッションを作成します — タスク、エージェント数、評価基準を指定します |
/hub:spawn | 分離された worktree で N 個のサブエージェントを起動します |
/hub:hub-status | DAG の状態、エージェントの進捗、ブランチの状態を表示します |
/hub:eval | 指標または LLM の判定によってエージェントの結果を順位付けします |
/hub:merge | 最良のブランチをマージし、他のブランチをアーカイブします |
/hub:board | エージェントのメッセージボードを読み書きします |
/hub:run | 1 回の操作でライフサイクルを実行します:init → baseline → spawn → eval → merge |
エージェントテンプレート
--template を指定して起動すると、エージェントは事前定義された反復パターンに従います。
| テンプレート | パターン | 用途 |
|---|---|---|
optimizer | 編集 → 評価 → 維持/破棄 → 10 回繰り返し | パフォーマンス、レイテンシー、サイズ |
refactorer | 再構成 → テスト → 成功するまで反復 | コード品質、技術的負債 |
test-writer | テスト作成 → カバレッジ測定 → 繰り返し | テストカバレッジの不足箇所 |
bug-fixer | 再現 → 診断 → 修正 → 検証 | バグ修正のアプローチ |
テンプレートは references/agent-templates.md で定義されています。
このスキルが有効になる条件
トリガーフレーズ:
- 「複数のアプローチを試して」
- 「エージェント同士を競わせて」
- 「並列で最適化して」
- 「N 個のエージェントを起動して」
- 「異なる解決策を比較して」
- 「ファンアウト」または「トーナメント」
- 「コンテンツのバリエーションを生成して」
- 「異なる草案を比較して」
- 「コピーを A/B テストして」
- 「複数の戦略を検討して」
コーディネータープロトコル
メインの Claude Code セッションがコーディネーターです。次のライフサイクルに従います。
INIT → DISPATCH → MONITOR → EVALUATE → MERGE
1. 初期化
/hub:hub-init を実行してセッションを作成します。次のファイルが生成されます:
.agenthub/sessions/{session-id}/config.yaml— タスク設定.agenthub/sessions/{session-id}/state.json— 状態マシン.agenthub/board/— メッセージボードのチャンネル
2. ディスパッチ
/hub:spawn を実行してエージェントを起動します。各エージェント 1..N について:
- タスクの割り当てを
.agenthub/board/dispatch/に投稿します - Agent ツールで
isolation: "worktree"を指定して起動します - すべてのエージェントを 1 つのメッセージで並列起動します
3. 監視
/hub:hub-status を実行して進捗を確認します:
dag_analyzer.py --status --session {id}でブランチの状態を確認できます- ボードの
progress/チャンネルにエージェントの更新が投稿されます
4. 評価
/hub:eval を実行して結果を順位付けします:
- 指標モード:各 worktree で評価コマンドを実行し、数値結果を解析します
- 判定モード:差分を読み、コーディネーターが品質に基づいて順位付けします
- ハイブリッド:まず指標で評価し、同点の場合は LLM の判定を使用します
5. マージ
/hub:merge を実行して最終処理を行います:
git merge --no-ffで勝者をベースブランチにマージします- 敗者に
git tag hub/archive/{session}/agent-{i}のタグを付けます - worktree をクリーンアップします
- マージの概要をボードに投稿します
エージェントプロトコル
各サブエージェントには、次のプロンプトパターンが渡されます。
You are agent-{i} in hub session {session-id}.
Your task: {task description}
Instructions:
1. Read your assignment at .agenthub/board/dispatch/{seq}-agent-{i}.md
2. Work in your worktree — make changes, run tests, iterate
3. Commit all changes with descriptive messages
4. Write your result summary to .agenthub/board/results/agent-{i}-result.md
5. Exit when done
エージェントは互いの作業を参照できません。また、互いに連絡を取り合うこともありません。コーディネーターが読むためにボードへ書き込むだけです。
DAG モデル
ブランチの命名
hub/{session-id}/agent-{N}/attempt-{M}
- セッション ID:タイムスタンプベース(
YYYYMMDD-HHMMSS) - エージェント N:連番(1 からエージェント数まで)
- 試行 M:再試行ごとに増加します(通常は 1)
フロンティアの検出
フロンティア = 子ブランチを持たないブランチの先端です。AgentHub の「leaves」クエリと同等です。
python scripts/dag_analyzer.py --frontier --session {id}
不変性
DAG は追記専用です:
- エージェントのブランチをリベースしたり、強制プッシュしたりしないでください
- コミットを削除しないでください(アーカイブ後のブランチ参照のみ削除できます)
- すべてのアプローチを git タグで保存します
メッセージボード
場所:.agenthub/board/
チャンネル
| チャンネル | 書き込み | 読み取り | 目的 |
|---|---|---|---|
dispatch/ | コーディネーター | エージェント | タスクの割り当て |
progress/ | エージェント | コーディネーター | 状況の更新 |
results/ | エージェント + コーディネーター | 全員 | 最終結果とマージの概要 |
投稿形式
---
author: agent-1
timestamp: 2026-03-17T14:30:22Z
channel: results
parent: null
---
## Result Summary
- **Approach**: Replaced O(n²) sort with hash map
- **Files changed**: 3
- **Metric**: 142ms (baseline: 180ms, delta: -38ms)
- **Confidence**: High — all tests pass
ボードのルール
- 追記専用:投稿を編集または削除しないでください
- ファイル名は一意にする:
{seq:03d}-{author}-{timestamp}.md - すべての投稿に YAML フロントマターが必須です
評価モード
メトリクスベース
最適な用途:ベンチマーク、テスト合格率、ファイルサイズ、応答時間。
python scripts/result_ranker.py --session {id} \
--eval-cmd "pytest bench.py --json" \
--metric p50_ms --direction lower
ランカーは各エージェントの作業ツリーディレクトリで評価コマンドを実行し、標準出力からメトリクスを解析します。
LLM による評価
最適な用途:コード品質、可読性、アーキテクチャの判断。
コーディネーターは各エージェントの差分(git diff base...agent-branch)を読み、次の基準で順位付けします。
- 正確性(タスクを解決しているか)
- シンプルさ(変更行数が少ないほうを優先)
- 品質(実行がクリーンで、構成が適切か)
ハイブリッド
まずメトリクスで評価します。上位エージェント同士の差が 10% 以内の場合は、LLM による評価で同点を判定します。
セッションのライフサイクル
init → running → evaluating → merged
→ archived (if no winner)
状態遷移は session_manager.py で管理されます。
| 遷移元 | 遷移先 | トリガー |
|---|---|---|
init | running | /hub:spawn の完了 |
running | evaluating | すべてのエージェントが戻る |
evaluating | merged | /hub:merge の完了 |
evaluating | archived | 勝者なし/すべて失敗 |
プロアクティブなトリガー
次の場合、コーディネーターは対応します。
| シグナル | アクション |
|---|---|
| すべてのエージェントがクラッシュした | 失敗の概要を投稿し、異なる制約での再試行を提案する |
| ベースラインを上回る改善がない | セッションをアーカイブし、別のアプローチを提案する |
| 孤立した作業ツリーが検出された | session_manager.py --cleanup {id} を実行する |
セッションが running のまま停滞している | ボードで進捗を確認し、タイムアウトを検討する |
インストール
# Copy to your Claude Code skills directory
cp -r engineering/agenthub ~/.claude/skills/agenthub
# Or install via ClawHub
clawhub install agenthub
スクリプト
| スクリプト | 用途 |
|---|---|
hub_init.py | .agenthub/ の構造とセッションを初期化する |
dag_analyzer.py | フロンティアの検出、DAG グラフ、ブランチの状態 |
board_manager.py | メッセージボードの CRUD(チャンネル、投稿、スレッド) |
result_ranker.py | メトリクスまたは差分の品質に基づいてエージェントを順位付けする |
session_manager.py | セッションの状態マシンとクリーンアップ |
関連スキル
- autoresearch-agent — 単一エージェントの最適化ループ(N 個のエージェントを競わせる場合は AgentHub を使用します)
- self-improving-agent — 自己変更型エージェント(外部との競争を行う場合は AgentHub を使用します)
- git-worktree-manager — Git 作業ツリーのユーティリティ(AgentHub は内部で作業ツリーを使用します)