ブログに戻る

複数のClaude Codeエージェントの並列作業を監視する方法

複数のClaude Codeエージェントの並列作業を監視する方法

tmuxペインに6つのClaude Codeエージェントを起動しました。それぞれがタスクを引き受けています。全員が出力を生成し、読み切れない速さでスクロールしています。1つがさっき何かをコミットしました。もう1つがテストを実行中。3つ目は20分間不審なほど静かです。

実際に何が起きているか、まったくわかりません。

これが並列エージェントワークフローの根本的な問題です。エージェント自体は生産的です。Claude Codeは作業を引き受け、コードを書き、テストを実行し、構造化されたコマンドで完了を報告できます。しかし、6つや10のエージェントを監督する人間には集約されたビューがありません。tmuxペインを切り替え、ターミナル履歴をスクロールし、頭の中でプロジェクトの状態を再構成するしかありません。

エージェント2つなら何とかなります。5つで破綻します。

エージェントがbeadsを通じて作業を報告する方法

基盤となるのはbeadsです。このワークフローに特化して設計されたオープンソースのGitネイティブイシュートラッカーです。beadsはエージェントに作業内容を記録する構造化された方法を提供し、あなたにはそれをクエリする構造化された方法を提供します。すべてのエージェントアクションはローカルデータベースに書き込むCLIコマンドになります。

エージェントが作業を取得するとき:

bd update bb-f8o --status in_progress --assignee agent-3

前提条件を発見して新しいイシューを作成するとき:

BLOCKER=$(bd create \
  --title "Auth middleware needs rate limiting before deploy" \
  --type task --priority 1 --json | jq -r '.id')

bd dep add bb-f8o "$BLOCKER"

完了したとき:

bd update bb-f8o --status closed
bd comments add bb-f8o --author agent-3 \
  "DONE: Implemented request throttling. Commit: a1c9e4f"

これらのコマンドはどれもミリ秒で完了します。どれも同じローカルデータベースに書き込みます。エージェントにAPIトークン、HTTPクライアント、認証フローは必要ありません。git commitnpm testと同じようにシェルコマンドを実行するだけです。

数時間の並列作業後、そのデータベースには全体像が含まれています: 誰が何を担当しているか、何がブロックされているか、何が完了したか、何が利用可能か。情報は存在しています。問題はそれを見ることです。

bd listが見せてくれないもの

ターミナルからデータベースをクエリできます:

bd list --status=in_progress
bd blocked
bd ready

これらのコマンドはそれぞれ有用なデータを返します。しかし、フラットなテキストとして、一時点のスナップショットとして返されます。プロジェクトの状態を把握するには、bd listを実行し、次にいくつかのイシューにbd showを実行し、何が何をブロックしているかbd dep listで確認し、停滞しているエージェントをbd blockedで見つけます。手動で全体像を組み立てていきます。

エージェントが高速に動いているとき(90秒で3つのイシューをクローズし、それぞれが異なる下流の作業をアンブロックする)、CLIは変化の速度についていけません。bd blockedを読み終わるころには、そのブロッカーのうち2つはすでに解決しています。

Beadboxが見せるもの

Beadbox.beads/ディレクトリを監視し、プロジェクトの完全な状態をリアルタイムでレンダリングするネイティブデスクトップアプリです。エージェントがターミナルでbd updateを実行すると、Beadboxはファイルシステムの変更を検知し、ミリ秒以内にWebSocket経由でUIにプッシュします。ポーリングなし。リフレッシュボタンなし。tmuxペインを切り替えて誰が何をしたか把握する必要なし。

具体的には以下のことが得られます:

エピック進捗ツリー。 トップレベルの機能が12のサブタスクのうち7つ完了と表示されます。展開すると、どのサブタスクが進行中か(各エージェントが何を担当しているか)、どれがブロックされているか、どれが利用可能になったかが見えます。一目で十数回のbd showコマンドが不要になります。

すべてのイシューに依存関係バッジ。 コマンドを1つも実行せずに、bb-q3lbb-f8oを待っていることが即座にわかります。bb-f8oがクローズされると、bb-q3lがアンブロックとして点灯します。カスケードがリアルタイムで見えます。

ブロックタスクのハイライト。 すべてのブロックされたイシューが、ブロックしている依存関係をインラインで表示して浮上します。ブロッカーを探し回る必要はありません。存在した瞬間に、優先度順にソートされて画面上に表示されます。

マルチワークスペース切り替え。 複数のプロジェクトにまたがってエージェントを実行している場合、ドロップダウンからbeadsデータベースを切り替えられます。各ワークスペースは独自のフィルターとビュー状態を記憶します。

リアルタイム同期。 更新パイプラインは.beads/ディレクトリのfs.watchで、WebSocket経由でReact UIにプッシュされます。サブセカンドの伝搬により、30秒のポーリング間隔ではなく、エージェントのアクティビティをリアルタイムで見ることができます。

モニタリングワークフロー

Beadboxをtmuxセッションと並べて開けば、モニタリングは能動的な調査ではなくパターン認識になります。注目すべきポイントは以下です:

停滞したin_progressタスク。 2時間前にタスクを引き受けて更新がないエージェントは、スタックしているかクラッシュしています。人間のワークフローなら2時間は何でもありません。エージェントにとって、それほど長い沈黙は警告サインです。tmuxペインを確認し、エージェントに声をかけるか、作業を再割り当てしてください。

ブロックタスクの蓄積。 ブロックタスクが積み上がり、すべてが同じ未解決の依存関係を指している場合、その依存関係があなたのクリティカルパスです。優先度を上げるか、最速のエージェントを割り当てるか、自分で解決してください。

誤った依存関係。 エージェントは計画段階で依存関係を過剰に宣言します。コードベースの初期理解に基づいて必要なものをモデル化します。作業が始まると、それらの依存関係の多くは不要だったとわかります。ブロックタスクの依存関係が間違っていると気づいたら、削除してください:

bd dep remove bb-q3l bb-f8o

このコマンド1つでタスクが即座にアンブロックされます。Beadboxでは、リアルタイムでブロックから利用可能に変わるのが見えます。

アサイン先のないreadyな作業。 アンブロックのカスケード後、アサインされていないタスクが5つ一度に利用可能になることがあります。それがディスパッチの瞬間です。アイドル状態のエージェントを最優先のready作業に向けてください。

トリアージループはシンプルです: ブロックをスキャンし、解決または再割り当てし、ready作業をスキャンし、ディスパッチする。Beadboxは各スキャンをCLIコマンドの連続ではなく一目で行えるようにします。

スケールで重要な理由

エージェント2つなら、ターミナルを見ていれば監督できます。3つか4つで見失い始めます。6つか10になると、計装が必要です。

エージェント自体はボトルネックではありません。Claude Codeは高速です。コードを書き、テストを実行し、あなたを待たずに失敗を反復改善します。ボトルネックはスーパーバイザーが盤面全体を見る能力です: どのエージェントが生産的で、どれがスタックしていて、クリティカルパスがどこを通り、何が利用可能になったか。

リアルタイムビジュアルダッシュボードは、それを調査(5つのコマンドを実行し、出力を読み、状態を頭の中に保持する)からスキャン(画面を見る)に変換します。この差は、並列エージェントコーディネーションの丸一日を通じて複利的に効いてきます。

はじめに

Homebrew でBeadboxをインストールしてください:

brew tap beadbox/cask && brew install --cask beadbox

エージェントが既にbeadsを使用している場合、Beadboxは既存の.beads/ワークスペースを自動検出します。アプリを開けば、イシューがそこにあります。インポートステップなし、アカウント作成なし、クラウド同期なし。データはあなたのマシン上に残ります。

beadsが初めての方は、CLIをインストールし(go install github.com/steveyegge/beads/cmd/bd@latest)、プロジェクトでbd initを実行して、エージェントへの作業ディスパッチを開始してください。エージェントが行うすべてのことが、行った瞬間にBeadboxに表示されます。

Beadboxはmacス、Linux、Windowsで動作します。ベータ期間中は無料です。