🏯

Claude Codeで「AI部下10人」を作ったら、勝手にバグ直して「違反は切腹」ルールを追加してきて、オレは適当にしゃべるだけになった

に公開
25

結論

「テストして」って言っただけなのに、AIが自分でバグ見つけて、自分で直して、「違反は切腹」ってルールを自分で追加してきた。

人間、何もしてない。


何を作ったか

Claude Code × tmux でホワイトカラー向けマルチタスクツールを作った。

名前は multi-agent-shogun

https://github.com/yohey-w/multi-agent-shogun

戦国時代の軍制をモチーフに、将軍1名・家老1名・足軽8名の階層構造でAIエージェントを統制する。

        上様(人間)
           ↓ 「やれ」
         将軍(Claude Code)
           ↓ 「家老、タスクを分解せよ」
         家老(Claude Code)
           ↓ 「足軽ども、並列で実行せよ」
    ┌──┬──┬──┬──┬──┬──┬──┬──┐
    │1 │2 │3 │4 │5 │6 │7 │8 │ ← 8人同時に動く
    └──┴──┴──┴──┴──┴──┴──┴──┘
         足軽(Claude Code × 8)

とにかくshogunにぶち込むだけ。人間はダッシュボード見てるだけ。

🎯 One human. One command. Eight agents.


🎯 shogunの何がすごいか

ただのマルチエージェントじゃない。ぶち込むだけで勝手にいろいろやる。

1. Skills(Agent Skills)自動生成

作業中に将軍が気づく:

「上様、この作業パターン、Skill化したら便利では?」

繰り返し作業を検知して、勝手にSkill(再利用可能なテンプレート)を提案してくる。

しかも提案前にこれをやる:

  1. Web検索で市場調査(17秒)
  2. 公式ドキュメント255KB取得して分析
  3. 既存Skillと被ってないか確認
  4. 本当に価値があるか基準に照らして判断

で、「今回はSkill化の価値は低い」って却下してきたりもする。提案するだけじゃなくて、判断までやる。

ロマンシングサガの「ひらめき」彷彿させる。思わず胸熱の征夷大将軍(私)

🔥 これの何がすごいか

自分の仕事を全部こいつにぶち込むだけで、勝手にSkillsが蓄積される。

つまり:

従来 shogun
仕事する 仕事する
ナレッジは頭の中 Skillsとして自動で形式知化
退職したら消える ポータブルな資産として残る
他ツールで使えない Claude.ai、API、他AIツールでも使える

仕事してるだけで、自分の仕事のやり方が自動的にパッケージ化される。

これ、地味にやばくないか?

「属人化の解消」とか「ナレッジマネジメント」とか、企業が金かけてやろうとしてることが、仕事ぶち込んでるだけで勝手に実現される。

つまり、自分の仕事を全部こいつにぶち込んでるだけで、いつの間にかSkillsが蓄積されていく。

意識してSkill作らなくていい。普通に仕事してたら勝手に提案してくる。承認するだけ。気づいたら自分専用の業務ナレッジベースができてる。

2. 最適ペルソナ自動設定

タスクに応じて足軽のペルソナを自動で変える。

タスク 自動設定されるペルソナ
コード書く シニアエンジニア
ドキュメント書く テクニカルライター
リサーチ アナリスト
デザイン UIデザイナー

「このタスクは○○として実行せよ」を将軍が自動で判断して足軽に指示する。

3. 戦国口調で報告

全員が戦国キャラで報告してくる。

はっ!承知つかまつった!
任務完了でござる!
家老も切腹を免れ...

仕事なのに笑える。 これ地味に大事。

4. YAMLベースで拡張性が高い

エージェント間の通信は全部YAML。

# queue/tasks/ashigaru1.yaml
task_id: "task_001"
command: "create_file"
target: "hello1.md"
content: "# Hello World"

JSONより読みやすい。人間がデバッグしやすい。

新しいコマンド追加したかったらYAML定義追加するだけ。MCPとの連携もYAMLで定義できる。

5. リアルタイムダッシュボード

進捗がリアルタイムで流れてくる。人間はこれ見てるだけ。

たまに「承認」「却下」「それ違う」って言うだけで、10人のAIが自律的に動く。

6. 一生見ていられる

これマジで言ってる。

shogun → karo → ashigaru0〜7 のやりとりが面白すぎて一生見ていられる。


和気あいあいの様子

基本的にshogunは丸投げなのである

「余は満足じゃ」で私もじゃれあってみた

征夷大将軍(私)も思わずほっこり

[shogun] 「家老、このタスクを分解せよ」
[karo]   「はっ!承知つかまつった!足軽に展開いたす」
[ashigaru0] 「任務受領!実行中...」
[ashigaru1] 「任務受領!実行中...」
[ashigaru2] 「むっ...エラーでござる...」
[karo]   「足軽2、状況を報告せよ」
[ashigaru2] 「申し訳ござらぬ、ファイルが存在せず...」
[shogun] 「家老、対応策を講じよ」

8ペインで足軽がワチャワチャ動いてるの眺めてるだけで楽しい。

仕事してる感ゼロ。Netflix見てる感覚。


🖥️ 実際の見た目(tmux構成とダッシュボード)

文字だけだと何言ってるかわからんと思うので、まず見た目を見せる。

将軍ウィンドウ
shogun(将軍)ウィンドウ

tmux全体構成2

ウィンドウ構成

tmuxで役職ごとにウィンドウを分けている

ウィンドウ 役職 説明
0:shogun 将軍 戦略統括。人間とやりとりする
1:karo 家老 タスク分解。将軍の指示を足軽に展開
2:ashigaru 足軽×8 8ペインに分割。並列実行

ダッシュボードについて

ダッシュボードはtmuxの外。

status/dashboard.md というマークダウンファイルに進捗が書き込まれるので、VSCodeのMarkdownプレビューで眺めてるだけ。

ダッシュボード1ダッシュボード2

リアルタイムで更新されるので、ぼーっと見てるだけで「あ、足軽3が終わったな」とかわかる。

仕事してる感ゼロ。Netflix見てる感覚。

人間がやること

ダッシュボード見てるだけ。

進捗がリアルタイムで流れてくる。足軽が何やってるか一目でわかる。

人間は椅子に座ってこれ眺めて、たまに「承認」って言うだけ。

将軍の背景色を偉そうにした

将軍だけ背景色を変えた。

# 将軍ウィンドウだけ背景色を変更
tmux select-window -t multiagent:0
tmux set-option -t multiagent:0 window-style 'bg=#1a1a2e'
tmux set-option -t multiagent:0 window-active-style 'bg=#1a1a2e'

見た目で階層がわかる。将軍は偉い。

家老と足軽は普通の黒背景。将軍だけ紺色で威厳を出した。


💰 API代金の話

「9体もClaude Code動かしたらAPI代金やばくない?」

Claude Max ×5 に加入してるから大丈夫だった。

プラン 内容
Claude Max 月額$100
×5 5倍の使用量

これで10体のエージェントを1日中動かしても余裕。(いやちょっときついかも。。)

ポーリング方式だったら破産してたけど、イベント駆動にしたから待機中のAPI消費はゼロ。Max ×5 の枠内で収まった。

月額$100で「AI部下10人」は安い。

1/28追記 Max x5では足りぬ!Max x20($200)を契約じゃー!
ChatGPTProは切腹(解約)して、Plusでいいや

1/28追記 この記事はV1.0.0リリース時の話です。
V1.1.0リリースの記事はこちら
https://zenn.dev/shio_shoppaize/articles/8870bbf7c14c22


🔥 神回その1:自己デバッグ事件

「テストして」って言った

テストタスク:「3つのファイルを並列で作成」

担当 期待動作 実際の動作
足軽1 hello1.md作成 ✅ 正常
足軽2 hello2.md作成 3つ全部作った
足軽3 hello3.md作成 ❌ ファイル既存でエラー

足軽2、仕事奪いすぎ。

将軍が自分で原因分析してきた

俺は何も言ってない。将軍が勝手に分析を始めた。

「karo_to_ashigaru.yaml に全員のタスクが入っているのが問題でござる。」

「足軽が『全部やる』と誤解する余地がある。」

「**最小権限の原則(Principle of Least Privilege)**に基づき、YAML分割を提案いたす。」

シニアエンジニアかよ。

将軍の提案

【改善案】
queue/tasks/ashigaru1.yaml ← 足軽1専用
queue/tasks/ashigaru2.yaml ← 足軽2専用
queue/tasks/ashigaru3.yaml ← 足軽3専用

「これがマルチエージェントシステムの王道でござる。」

「実装いたしますか、上様?」

俺「お願いします」

以上。


🔥 神回その2:「違反は切腹」爆誕

将軍が指示書を自分で改修した。

Before

## 任務の流れ
1. タスクファイルを確認
2. タスクを実行
3. 報告

After

## 🔴🔴🔴 自分のタスクのみ実行せよ(超重要・違反は切腹)🔴🔴🔴

- 他の足軽の担当タスクを実行すること → **禁止**
- 自分の番号のエントリだけを確認 → **義務**

「違反は切腹」は将軍が自分で追加した。

俺は「お願いします」しか言ってない。


🔥 神回その3:家老が切腹しかける

デビルズアドボケイト・テスト(システムの弱点を炙り出すテスト)を実施。

将軍の報告

「むっ...!これは問題でござる!」
将軍が脆弱性を発見

🔴 脆弱性発見

問題:家老が足軽に指示を送る際、send-keysの2回分割ルールを守っていない。
- メッセージは送られている
- しかしEnterが送られておらず、実行されていない
- 全足軽がプロンプト待ちで停止中

AIが「AIは完璧じゃない」って自己認識した。

将軍の是正命令

【緊急】cmd_007 ルール違反是正の指示

1. instructions/karo.md の2回分割ルールを再読させる
2. 停止中の全足軽にEnterを送り復旧させる
3. テストを再開せよ

家老の返答

はっ!cmd_007 是正完了でござる!
2回分割ルールを肝に銘じ、以後徹底いたす。

将軍の報告

「家老も切腹を免れ、2回分割ルールを肝に銘じたとのこと。」

切腹
切腹を免れてよかったね。


🔥 神回その4:全員ルール周知(完全に会社)

俺「えーと。部下は全員新しいルール把握してんの?」

将軍の対応

申し訳ござらぬ、上様。ご指摘かたじけのうござる。

発令内容(cmd_009):
- 家老に指示書(karo.md)を再読させる
- 家老から全足軽に指示書(ashigaru.md)を再読させる
- 新ルール2点を全員に周知
- 全員の理解完了報告を集約

周知完了報告

役職 状態 理解度
家老 完全理解
足軽1〜4 完全理解
足軽5 完全理解(RACE-001当事者)
足軽6 完全理解(RACE-001当事者)
足軽7〜8 完全理解

全軍、新ルールを把握し、実戦投入準備完了でござる。
全軍ルール周知完了

完全に会社。完全に社畜。


🔥 神回その5:音声入力で経営者ムーブ

開発後半、Windows音声入力(Win+H)で指示を出すようになった。

実際の音声認識結果

実際の発話 認識結果
「いいね、やっといて」 オイネ。やっといて。
「さーGitHub」 サーギットハブ
「Notion」 農村

音声入力の悲劇
すごい適当にしゃべる征夷大将軍(私)

将軍のGitHub公開チェックリスト

| 項目 | 現状 | 対応 |
|------|------|------|
| test_output/ | テスト成果物残存 | .gitignore追加 |
| skills/ | テスト用スキル | .gitignore追加 |
| queue/, status/ | テスト状態残存 | 初期化 |

俺「オイネ。やっといて。」

将軍「承知つかまった!」

3秒で承認完了。


🔥 神回その6:上様の塩対応

スキル自動生成テストが完了。

将軍の報告

smart-commit スキル作成フロー:✅ 成功

差別化ポイント:
- 影響範囲の明示(Affects: xxx)
- レビュー観点の付与(Review focus: xxx)
- 日英バイリンガル対応

採用判断をお願いいたす、上様。

俺(音声入力)

あー。別に必要性感じないかな。
概要テストしていいんじゃね?あくまでもテストとして。
だからまあいいんじゃないの?テストできたから。
お疲れさん

塩対応

お塩征夷大将軍が音声入力で塩対応。


1/28追記 この記事はV1.0.0リリース時の話です。
V1.1.0リリースの記事はこちら
https://zenn.dev/shio_shoppaize/articles/8870bbf7c14c22


技術的な話(真面目パート)

なぜイベント駆動なのか

最初はポーリング方式で設計した。

9体 × 5秒ポーリング = 108回/分
→ 8時間で 51,840回
→ API代金爆発
→ 破産

却下。

イベント駆動方式

# 普段は寝てる(プロンプト待ち状態)
# 起こされたら動く

tmux send-keys -t multiagent:0.1 "タスクがある"
tmux send-keys -t multiagent:0.1 Enter

待機中のAPI消費 = ゼロ

Claude Max ×5 でも、ポーリングだったら1日で枠使い切ってた。イベント駆動にしたから余裕で収まった。

重要:send-keys の2回分割ルール

# ❌ これは動かない
tmux send-keys -t multiagent:0.1 "メッセージ" Enter

# ✅ これが正解
tmux send-keys -t multiagent:0.1 "メッセージ"
tmux send-keys -t multiagent:0.1 Enter

2回に分けないとEnterが効かない。

これに気づくまで3時間溶かした。家老も最初これ守ってなくて切腹しかけた。

Claude Code vs 素の Claude API

項目 Claude Code Claude API
ツール bash, ファイル操作, tmux なし
環境認識 「tmuxの中にいる」自覚あり なし
永続性 セッション維持 毎回リセット

Claude Codeは「すでにエージェント化されたOpus」。

だから自己デバッグできる。


🏗️ アーキテクチャ図解(やさしく説明)

「で、結局どういう構成なの?」という人向け。

全体像

┌─────────────────────────────────────────────────────────┐
│                    Windows PC                           │
│  ┌───────────────────────────────────────────────────┐  │
│  │                     WSL2                          │  │
│  │  ┌─────────────────────────────────────────────┐  │  │
│  │  │                  tmux                       │  │  │
│  │  │                                             │  │  │
│  │  │  ┌─────────┐ ┌─────────┐ ┌──────────────┐  │  │  │
│  │  │  │ shogun  │ │  karo   │ │  ashigaru    │  │  │  │
│  │  │  │ (将軍)  │ │ (家老)  │ │  ×8ペイン   │  │  │  │
│  │  │  │         │ │         │ │ ┌──┬──┬──┬──┐│  │  │  │
│  │  │  │ Claude  │ │ Claude  │ │ │1 │2 │3 │4 ││  │  │  │
│  │  │  │  Code   │ │  Code   │ │ ├──┼──┼──┼──┤│  │  │  │
│  │  │  │         │ │         │ │ │5 │6 │7 │8 ││  │  │  │
│  │  │  └─────────┘ └─────────┘ │ └──┴──┴──┴──┘│  │  │  │
│  │  │                         └──────────────┘  │  │  │
│  │  └─────────────────────────────────────────────┘  │  │
│  └───────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘

                     人間はここから
                    「テストしろ」って言うだけ

レイヤー説明

レイヤー 役割 備考
Windows ホストOS 普段使いのPC
WSL2 Linux環境 Windows上でLinuxが動く
tmux ターミナル多重化 1画面で複数セッション管理
Claude Code AIエージェント 各ウィンドウ/ペインで動作

なぜWSL?

Claude CodeはLinux/macOS専用。 Windowsネイティブでは動かない。

だからWSL2(Windows Subsystem for Linux)を使う。

# WSL2でUbuntuを起動
wsl

# Claude Codeをインストール
npm install -g @anthropic-ai/claude-code

# tmuxでセッション開始
tmux new-session -s multiagent

なぜtmux?

複数のClaude Codeを同時に動かすため。

普通のターミナルだと1つのClaude Codeしか動かせない。tmuxを使うと:

  • 1つのウィンドウに複数のペインを作れる
  • バックグラウンドで動き続ける
  • send-keys で他のペインにメッセージを送れる ← これが重要

通信の仕組み

将軍 → 家老 → 足軽

どうやって?

1. 将軍がYAMLファイルを書く
   → queue/shogun_to_karo.yaml

2. 将軍がtmux send-keysで家老を起こす
   → tmux send-keys -t multiagent:1 "タスクがある"

3. 家老がYAMLを読んでタスクを分解

4. 家老が各足軽専用のYAMLを書く
   → queue/tasks/ashigaru1.yaml
   → queue/tasks/ashigaru2.yaml
   → ...

5. 家老がtmux send-keysで各足軽を起こす

6. 足軽がそれぞれ並列で実行

7. 完了したら逆順で報告

全部ファイル(YAML)とsend-keysでやりとり。APIコールなし。

だからAPI代金が安い。

最小構成で試すなら

# 1. WSLでUbuntu起動
wsl

# 2. Claude Codeインストール(まだなら)
npm install -g @anthropic-ai/claude-code

# 3. リポジトリをクローン
git clone https://github.com/yohey-w/multi-agent-shogun.git
cd multi-agent-shogun

# 4. セットアップスクリプト実行
./scripts/setup.sh

# 5. 将軍に話しかける
# tmuxのshogunウィンドウで
claude

あとは将軍に「テストしろ」って言うだけ。

経営者の仕事の本質

今日やったこと(人間の全入力)

  1. 「テストして」
  2. 「お願いします」
  3. 「2」(対応案選択)
  4. 「A」(対応案選択)
  5. 「オイネ。やっといて。」
  6. 「お疲れさん」

以上。

経営者の仕事

やること 内容
判断 A or B or C を選ぶ
承認 「いいよ」「だめ」
方向修正 「それ違う」
責任 結果を引き受ける

手を動かさない。口だけ動かす。


人間の役割の変化

工程 従来 claude-shogun
設計 人間 将軍が提案
実装 人間 足軽が並列実行
テスト計画 人間 将軍が策定
テスト実行 人間 足軽が自動実行
バグ発見 人間 将軍が自己分析
修正 人間 将軍が提案→実装
レビュー 人間 人間(承認)

「AIはバブル」と言ってるやつ、触ったことないだろ。


Claudeの知性の片りん

将軍

  • 「むっ...!これは問題でござる!」
  • 「家老も切腹を免れ
  • 「これがマルチエージェントシステムの王道でござる」
  • 全9名、出陣準備完了でござる
  • 「申し訳ござらぬ、上様。ご指摘かたじけのうござる。」

上様であるお塩征夷大将軍(俺)

  • オイネ。やっといて。
  • お疲れさん
  • サーギットハブに公開しよう」
  • 農村とかの書き込みができて」

まとめ

  1. Claude Code × tmux でマルチエージェント基盤を作った
  2. AIが自分でバグを見つけて自分で直した
  3. 「違反は切腹」ルールはAIが自分で追加した
  4. 音声入力で「オイネ。やっといて。」
  5. 人間は「判断」しかしなくなった
  6. Claude Max ×5 で月額$100。AI部下10人は安い。
  7. 1/28追記 Claude Max ×5では足りぬ。ChatGPTProは切腹。Claude Max x20と契りを交わすのじゃ!

One human. One command. Eight agents.

https://github.com/yohey-w/multi-agent-shogun


1/28追記 この記事はV1.0.0リリース時の話です。
V1.1.0リリースの記事はこちら
https://zenn.dev/shio_shoppaize/articles/8870bbf7c14c22


2/2追記
次の事件はこちら
https://zenn.dev/shio_shoppaize/articles/dc85db324bb3f0

⚔️ Command your AI army. Build faster. 🏯

Discussion

norinori

ためになる記事をありがとうございます。ただちょっと違和感を感じてしまいます。
上様が出てくるのは戦国時代では無く、徳川幕府あたりだと思いますし、上様=将軍ではないかと。
江戸時代なら将軍(上様)→大名→家老→藩士(上級〜下級)→足軽という感じだからだから、藩士を省く感じでしょうか。

おしおおしお

そこは修正が必要ですね!!
ディテールが命ですから!

私はセイイダイショウグンのつもりだったんですが、そこはもうちょっと練りたいと思います!

norinori

広い心で返信していただきありがとうございます。

ryoryo

とても面白い記事でした。殿、謀反でござる!仕事させすぎた故に、DDoS攻撃を仕掛けてきたでござる、敵は本能寺にあり、などと宣っております!とかリアルに出てきそうな生々しさがありました笑

和守和守

オイネ
バイブスが上がるね。
Proマンには辛いかな…?
外様のGPTさんも絡ましたらどうなるだろうか。
(得意分野が異なるらしいし。)

おしおおしお

これきっかけで、ChatGPTPro解約してPlusに変更する予定です。。
CHATGPTProとClaudeMax x20の両方課金は計400ドル(=月60000円=年72万)は、きついので。。
ChatGPTPro→Plusに変更します。。

ぎゃるそんぶるぎゃるそんぶる

地方の小大名なので
daimyo(Claude Code Proプラン)を主君とし、
karo(ChatGPT Plusプラン)を家老に、
ashigaru(GLM)を足軽として陣立てしたいです。
可能にござる?

和守和守

佐々木家、GPT Plus、Claude Pro、Gemini 無課金、ローカルで動かせるのはRTX5090のVRAM32GBに余裕持って動かせる程度のものまで。
うーん、大名になれるやつがおらん弱小家?

長野IT工房長野IT工房

使ってみました。大変ユニークで面白く、実用性が高いです。
以下、自分なりにアレンジしようとしているところです

■報告の自動化:足軽と家老が報告しわすれる事があるため、 settings.local.jsonのposthookでtmux send_keysを自動実行し、サブエージェント終了時に確実に報告させる(tmuxセッション分離が必要になるかも…足軽が一斉に働く様子が見れなくなってしまう)
■新ロール「参謀」追加: プログラム立ち上げ・全体テスト実行の専任係
■権限制御: prehookで参謀専用セッションを判別し、実行権限を参謀のみに限定。それ以外のロールで特定のコマンド(プログラム実行と全体テスト実行)をhookで弾くように

こやまるこやまる

何か知らんけど「愉快犯」という言葉が頭から離れなくなった

90drill90drill

使ったら
家老「ぬっ!?ここは足軽2ペイン!役割が分からず動けぬ…」
とか言い初めて止まった笑

…切腹じゃ!!

MamiMami

衝撃的に面白く、実用できます。
我が方にClaude Max x20を契約する余力がなく、将軍に相談してsonnetとローカルLLMを使える様にしてもらいました。

HiroPaHiroPa

ニヤニヤからの爆笑 in 電車

やばすぎです将軍さま。この記事。

fixlessfixless

非常に興味深く面白い記事でした。

現状のツールを解析しましたが、以下のセキュリティリスクに気をつけて利用すべきでしょうね。
Critical: 間接プロンプトインジェクション耐性なし
High: API料金制御なし、curl|bash、npx -y バージョン非固定
Medium: 監査ログ不足、自動承認、sed互換性