Skip to content

Shimagon/claude-multi-agent-system

Repository files navigation

Claude Multi-Agent System

1 人の開発者を、4 体の Claude が同時に手伝うチームに変える開発環境。 VSCode 拡張の Claude を「PM」役、tmux で並走する 3 つのターミナル Claude を「開発メンバー」に見立て、ファイルベースで安全に同期しながら並列タスクをこなします。


📌 何を作ったか (What)

1 人の開発者が PM + フロントエンド + バックエンド + テスト の 4 ロールを同時に進められるマルチエージェント開発オーケストレータです。

ロール 担当 Claude 役割
PM VSCode 拡張の Claude ユーザーと対話 / 仕様分解 / タスク配布 / 結果統合
dev1 tmux pane #1 フロントエンド実装
dev2 tmux pane #2 バックエンド実装
dev3 tmux pane #3 テスト・調査・リサーチ

ユーザーは普段通り VSCode で PM と会話するだけ。PM が send-and-wait.sh で各 dev にタスクを送り、各 dev は results/dev*_result.txt に成果を書き戻し、PM が回収して報告する、というループが裏で回ります。

ユーザー
  ↓ 自然言語
PM (VSCode Claude)
  ↓ WSL bridge
┌──────────────────────────────┐
│ tmux session "team" (3 panes)│
│  dev1  Frontend Claude       │
│  dev2  Backend  Claude       │
│  dev3  Test/Research Claude  │
└──────────────────────────────┘
  ↓ ファイル出力
./ai-team/results/*.txt
  ↓ PM が回収
ユーザーへ統合報告

🧩 どういう設計で作ったか (How / Design)

1. PM-Worker パターン (会話保持を PM に集約)

普通にマルチエージェントを組むと、全エージェントが会話履歴を抱えてトークンが爆発します。
このシステムは 「PM だけが文脈を持つ」 ことで、サブエージェントを毎回クリーンに使い捨てにし、トークン効率と再現性を両立しました。

会話履歴 役割
PM 保持する ユーザーとの長期対話・全体設計を覚えておく
dev1〜3 持たない 1 タスク = 1 セッション。毎回クリーン

2. ファイルベース同期 (確実な IPC)

エージェント間通信は、生の標準入出力ではなくファイル経由に統一しました。

  • PM → dev: send-and-wait.sh <pane> <prompt> で tmux pane にプロンプト投入
  • dev → PM: 完了時に results/dev*_result.txt を書く
  • PM: check-results.sh で全 dev の結果を一括で取りに行く

→ メッセージのロスト・順序の崩れ・パース失敗が起きにくく、デバッグ時にも results/ を見るだけで状態を再現できる。

3. ワンコマンド起動 (auto-start.sh)

  • tmux セッションの初期化
  • 3 pane を立ち上げて各 pane で claude CLI を起動
  • 各 dev に役割定義 (ai-team/instructions/developer.md) を流し込み
  • 結果バッファをリセット

までを 1 スクリプトに集約。bash ./ai-team/auto-start.sh で即チーム召集。

4. WSL + tmux + Claude CLI の役割分担

  • VSCode 拡張 Claude (Windows 側): ユーザー対話と画像送信を担当
  • WSL2 (Ubuntu): 安定した bash + tmux 実行環境
  • tmux: 3 pane を同時に保持・観察できる UI レイヤ
  • Claude CLI: 各 pane で独立した Claude セッションを保持

各層を専門特化させることで、片方が落ちても残りが生きるシンプルな疎結合になっています。


🎯 なぜ作ったか (Why)

実務で AI コーディングを使い込むうちに、「1 つの Claude セッションで全部やる」 ことの限界に当たりました。

  • フロント・バック・テストを 1 体で順番にやると、文脈が混線して品質が落ちる
  • 並列にやらせたいのに、Claude CLI を 3 つ手で開いてもメッセージング基盤がない
  • かといってフレームワーク (LangGraph 等) を立てるのは個人開発には過剰

そこで「PM 1 体 + ワーカー 3 体、通信はファイル、起動はシェル」という最小構成で、1 人開発をスモールチーム化できる仕組みを作りました。
結果として:

  • 並列実装でリードタイム短縮 (UI と API を同時に書ける)
  • PM だけ会話を保持するのでトークン消費を抑えられる
  • 各サブエージェントが独立コンテキストなので、レビュー / リファクタを安全に分業できる

これは現在の自分の AI 駆動開発スタイルの土台 になっています。


🛠 技術スタック

  • TypeScript (オーケストレーション側)
  • Bash / tmux (実行環境)
  • WSL2 + Ubuntu (シェル基盤)
  • Claude Code CLI (各エージェント)
  • Supabase (Postgres) (タスクログ・永続化)
  • Next.js (game-platform/ 内のサンプル統合先)

🚀 クイックスタート

詳細手順は QUICKSTART.md / SETUP.md を参照。

# 1. クローン & 権限付与
git clone https://github.com/Shimagon/claude-multi-agent-system.git
cd claude-multi-agent-system
chmod +x ./ai-team/*.sh

# 2. チーム召集 (tmux 3 pane で Claude が並ぶ)
./ai-team/auto-start.sh

# 3. PM からタスク投入 (VSCode Claude 経由)
./ai-team/send-and-wait.sh dev3 \
  'README.md を読んで主な特徴を 3 つ抽出。results/dev3_result.txt に書いて'

# 4. 結果一括確認
./ai-team/check-results.sh

📚 ドキュメント

ファイル 内容
QUICKSTART.md 新しい Claude セッションから即起動するコマンド集
SETUP.md WSL + tmux + Claude CLI の完全構築手順
ai-team/COMPLETE_GUIDE.md 詳細仕様・トークン最適化戦略
ai-team/instructions/developer.md サブエージェントへのロール指示

🧠 マルチエージェントを使うか判断する基準

向いてる 向いていない
UI + API + テストを同時に書きたい 1 ファイルの修正
複数の独立した調査を並走したい 単一機能の素直な実装
大規模リファクタで担当を切り分けたい 会話を深く重ねる相談

「並列化したくなった瞬間にチームを呼べる」のがこの仕組みの価値です。


📝 ライセンス

MIT

🙏 謝辞

設計の出発点はこちらの記事から: https://zenn.dev/tam_tam/articles/dd90d92f85c3b7


作者: shimada / Shimagon — AI 駆動開発を実践するソフトウェアエンジニア

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors