AgentHub — マルチエージェントコラボレーション
N個の並列AIエージェントを生成し、同じタスクで競わせます。各エージェントは独立したgit worktree内で作業します。コーディネーターが結果を評価し、勝者をマージします。
スラッシュコマンド
| コマンド | 説明 |
|---|---|
/hub:init | 新しいコラボレーションセッションを作成 — タスク、エージェント数、評価基準 |
/hub:spawn | 分離されたworktree内でN個の並列サブエージェントを起動 |
/hub:status | DAG状態、エージェント進捗、ブランチステータスを表示 |
/hub:eval | メトリクスまたはLLM判定でエージェント結果をランク付け |
/hub:merge | 勝者ブランチをマージし、敗者をアーカイブ |
/hub:board | エージェントメッセージボードの読み書き |
/hub:run | ワンショットライフサイクル: 初期化 → ベースライン → 生成 → 評価 → マージ |
エージェントテンプレート
--template オプションで生成すると、エージェントは定義済みの反復パターンに従います:
| テンプレート | パターン | 使用例 |
|---|---|---|
optimizer | 編集 → 評価 → 保持/破棄 → 10回繰り返し | パフォーマンス、レイテンシ、サイズ |
refactorer | 再構築 → テスト → 成功するまで反復 | コード品質、技術的負債 |
test-writer | テスト作成 → カバレッジ計測 → 繰り返し | テストカバレッジのギャップ |
bug-fixer | 再現 → 診断 → 修正 → 検証 | バグ修正アプローチ |
テンプレートは references/agent-templates.md で定義されています。
このスキルがアクティブになる条件
トリガーフレーズ:
- 「複数のアプローチを試す」
- 「エージェントを競わせる」
- 「並列最適化」
- 「N個のエージェントを生成」
- 「異なる解決策を比較」
- 「ファンアウト」または「トーナメント」
- 「コンテンツバリエーションを生成」
- 「異なるドラフトを比較」
- 「A/Bテストコピー」
- 「複数の戦略を探索」
コーディネータープロトコル
メインのClaude Codeセッションがコーディネーターです。以下のライフサイクルに従います:
INIT → DISPATCH → MONITOR → EVALUATE → MERGE
1. 初期化
/hub:init を実行してセッションを作成します。これにより以下が生成されます:
.agenthub/sessions/{session-id}/config.yaml— タスク設定.agenthub/sessions/{session-id}/state.json— 状態マシン.agenthub/board/— メッセージボードチャンネル
2. ディスパッチ
/hub:spawn を実行してエージェントを起動します。エージェント1~Nそれぞれについて:
- タスク割り当てを
.agenthub/board/dispatch/に投稿 isolation: "worktree"を指定してAgentツールで生成- すべてのエージェントを1つのメッセージで同時に起動(並列)
3. モニタリング
/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をクリーンアップ
- マージサマリーをボードに投稿
エージェントプロトコル
各サブエージェントは以下のプロンプトパターンを受け取ります:
あなたは hub セッション {session-id} のエージェント-{i} です。
タスク: {タスク説明}
指示:
1. 割り当てを .agenthub/board/dispatch/{seq}-agent-{i}.md で読み取る
2. 自分のworktreeで作業 — 変更、テスト実行、反復
3. すべての変更を説明的なメッセージ付きでコミット
4. 結果サマリーを .agenthub/board/results/agent-{i}-result.md に書き込む
5. 完了したら終了
エージェント同士はお互いの作業を見ることはできません。エージェント間の通信はなく、コーディネーターが読み取るためのボードにのみ書き込みます。
DAGモデル
ブランチ命名規則
hub/{session-id}/agent-{N}/attempt-{M}
- セッションID: タイムスタンプベース (
YYYYMMDD-HHMMSS) - エージェントN: 連番 (1からエージェント数まで)
- 試行M: リトライ時に増加 (通常は1)
フロンティア検出
フロンティア = 子ブランチのないブランチの先端。AgentHubの「リーフ」クエリに相当します。
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
---
## 結果概要
- **アプローチ**: O(n²)ソートをハッシュマップに置き換え
- **変更ファイル数**: 3
- **メトリクス**: 142ms (ベースライン: 180ms, 差分: -38ms)
- **信頼度**: 高 — すべてのテストが成功
ボードルール
- 追加専用: 投稿は編集や削除を行わない
- ユニークファイル名:
{seq:03d}-{author}-{timestamp}.md - すべての投稿にYAMLフロントマターが必要
評価モード
メトリクスベース
最適な用途: ベンチマーク、テスト合格率、ファイルサイズ、応答時間。
python scripts/result_ranker.py --session {id} \
--eval-cmd "pytest bench.py --json" \
--metric p50_ms --direction lower
ランカーは各エージェントのworktreeディレクトリで評価コマンドを実行し、標準出力からメトリクスを解析します。
LLM判定
最適な用途: コード品質、可読性、アーキテクチャの意思決定。
コーディネーターは各エージェントの差分(git diff base...agent-branch)を読み取り、以下でランク付け:
- 正確性(タスクを解決しているか)
- シンプルさ(変更行数が少ないほど良い)
- 品質(クリーンな実行、良い構造)
ハイブリッド
まずメトリクスを実行。上位エージェントが互いに10%以内の差であれば、LLM判定で同点を解消します。
セッションライフサイクル
初期化 → 実行中 → 評価中 → マージ済み
→ アーカイブ済み(勝者なしの場合)
状態遷移は session_manager.py によって管理:
| 遷移元 | 遷移先 | トリガー |
|---|---|---|
init | running | /hub:spawn 完了 |
running | evaluating | 全エージェント復帰 |
evaluating | merged | /hub:merge 完了 |
evaluating | archived | 勝者なし / 全失敗 |
プロアクティブトリガー
コーディネーターは以下の場合に行動する必要があります:
| シグナル | アクション |
|---|---|
| 全エージェントがクラッシュ | 失敗サマリーを投稿し、異なる制約でのリトライを提案 |
| ベースラインからの改善なし | セッションをアーカイブし、別のアプローチを提案 |
| 孤立worktreeを検出 | session_manager.py --cleanup {id} を実行 |
セッションが running で停滞 | ボードの進捗を確認し、タイムアウトを検討 |
インストール
# Claude Codeスキルディレクトリにコピー
cp -r engineering/agenthub ~/.claude/skills/agenthub
# または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 worktreeユーティリティ(AgentHubは内部的にworktreeを使用)