mcpField
A
agenthub

agenthub

github.com/alirezarezvaniエージェントワークフロー28.9k591 回インストール2 日前に更新
リポジトリ

agenthub について

AgentHubは、Claude Codeセッション向けのマルチエージェント協業スキルです。分離したGit worktreeで複数の案を並行実行し、コーディネーターが進捗を追跡して評価し、選んだブランチをマージします。

主な機能

  1. 01分離worktreeでのエージェント並行実行
  2. 02セッションと進捗の追跡
  3. 03指標または評価者による順位付け
  4. 04エージェント更新用のボード
  5. 05勝者のブランチをマージし他案を保管

活用シーン

  1. 01コーディング課題の複数案を比較
  2. 02複数の試行でパフォーマンスを最適化
  3. 03異なる原稿案を生成して評価
  4. 04ブランチを保全し結果をレビュー

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill agenthub

インストール後、Claude Code で/agenthubを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
agent-templates.md
coordination-strategies.md
dag-patterns.md
scripts/
board_manager.py
dag_analyzer.py
dry_run.py
hub_init.py
result_ranker.py
session_manager.py

詳細

AgentHub — マルチエージェントのコラボレーション

同じタスクで競い合う N 個の AI エージェントを並列で起動します。各エージェントは、分離された git worktree で作業します。コーディネーターが結果を評価し、最良の結果をマージします。

スラッシュコマンド

コマンド説明
/hub:hub-init新しいコラボレーションセッションを作成します — タスク、エージェント数、評価基準を指定します
/hub:spawn分離された worktree で N 個のサブエージェントを起動します
/hub:hub-statusDAG の状態、エージェントの進捗、ブランチの状態を表示します
/hub:eval指標または LLM の判定によってエージェントの結果を順位付けします
/hub:merge最良のブランチをマージし、他のブランチをアーカイブします
/hub:boardエージェントのメッセージボードを読み書きします
/hub:run1 回の操作でライフサイクルを実行します: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)を読み、次の基準で順位付けします。

  1. 正確性(タスクを解決しているか)
  2. シンプルさ(変更行数が少ないほうを優先)
  3. 品質(実行がクリーンで、構成が適切か)
ハイブリッド

まずメトリクスで評価します。上位エージェント同士の差が 10% 以内の場合は、LLM による評価で同点を判定します。

セッションのライフサイクル

init → running → evaluating → merged
                            → archived (if no winner)

状態遷移は session_manager.py で管理されます。

遷移元遷移先トリガー
initrunning/hub:spawn の完了
runningevaluatingすべてのエージェントが戻る
evaluatingmerged/hub:merge の完了
evaluatingarchived勝者なし/すべて失敗

プロアクティブなトリガー

次の場合、コーディネーターは対応します。

シグナルアクション
すべてのエージェントがクラッシュした失敗の概要を投稿し、異なる制約での再試行を提案する
ベースラインを上回る改善がないセッションをアーカイブし、別のアプローチを提案する
孤立した作業ツリーが検出された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 は内部で作業ツリーを使用します)

コメント