1 人の開発者を、4 体の Claude が同時に手伝うチームに変える開発環境。 VSCode 拡張の Claude を「PM」役、tmux で並走する 3 つのターミナル Claude を「開発メンバー」に見立て、ファイルベースで安全に同期しながら並列タスクをこなします。
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 が回収
ユーザーへ統合報告
普通にマルチエージェントを組むと、全エージェントが会話履歴を抱えてトークンが爆発します。
このシステムは 「PM だけが文脈を持つ」 ことで、サブエージェントを毎回クリーンに使い捨てにし、トークン効率と再現性を両立しました。
| 会話履歴 | 役割 | |
|---|---|---|
| PM | 保持する | ユーザーとの長期対話・全体設計を覚えておく |
| dev1〜3 | 持たない | 1 タスク = 1 セッション。毎回クリーン |
エージェント間通信は、生の標準入出力ではなくファイル経由に統一しました。
- PM → dev:
send-and-wait.sh <pane> <prompt>で tmux pane にプロンプト投入 - dev → PM: 完了時に
results/dev*_result.txtを書く - PM:
check-results.shで全 dev の結果を一括で取りに行く
→ メッセージのロスト・順序の崩れ・パース失敗が起きにくく、デバッグ時にも results/ を見るだけで状態を再現できる。
- tmux セッションの初期化
- 3 pane を立ち上げて各 pane で
claudeCLI を起動 - 各 dev に役割定義 (
ai-team/instructions/developer.md) を流し込み - 結果バッファをリセット
までを 1 スクリプトに集約。bash ./ai-team/auto-start.sh で即チーム召集。
- VSCode 拡張 Claude (Windows 側): ユーザー対話と画像送信を担当
- WSL2 (Ubuntu): 安定した bash + tmux 実行環境
- tmux: 3 pane を同時に保持・観察できる UI レイヤ
- Claude CLI: 各 pane で独立した Claude セッションを保持
各層を専門特化させることで、片方が落ちても残りが生きるシンプルな疎結合になっています。
実務で 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 駆動開発を実践するソフトウェアエンジニア