AIに全自動はまだ早い——Claude Codeのセッション間通信で辿り着いた「人間司令塔+役割特化型AI」

先日、Claude Codeにセッション間通信の機能が追加された。

別々に動いているClaude Codeのセッション同士が、直接メッセージを送り合えるようになった。実際に動かしてみると、「了解しました」「ありがとうございました」などとAI同士でやり取りしていて、なかなか味わい深い。

ただ、私が興味を持ったのはそこではない。

これなら、以前うまくいかなかった「将軍」のような仕組みが、今度こそ使えるのではないか。

と思ったのだ。

以前試した「将軍」というマルチAIシステム

ここでいう「将軍」は比喩ではない。実際に multi-agent-shogun というオープンソースのマルチエージェントシステムがある。

multi-agent-shogun(GitHub)

その名の通り、日本の武家組織をモチーフにしていて、上位の「将軍」が仕事を受け取り、「家老」、さらに「足軽」へとタスクを振り分ける。人間は一番上に指示するだけで、複数のAIが仕事を分解して並列に動くという仕組みだ。

私は以前これを試したことがある。

発想は非常に面白かったのだが、実際に動かすとAI同士の通信が増え、トークンを消費し、間にAIが入るほど伝言ゲームにもなる。

仕事を並列化するためにAIを増やしたら、会議と中間管理職まで増えてしまった。

このあたりまで人間の会社を再現しなくてもいい。

結局、使うのをやめた。

Claude Codeの直接通信なら、今度こそいける?

ところが今回、Claude Code自体にセッション間通信が入った。

そこで、昔の将軍を復活させるのではなく、Claude Codeの機能だけで似た構成を作ってみた。

一つのセッションをコントローラーにして、その下に複数の作業セッションを置く。私はコントローラーへ指示し、コントローラーが各セッションへ仕事を振る。

昔の将軍型オーケストレーションの簡易版である。

これならいけるかもしれない。

結論から言えば、

やっぱり全自動はまだ無理だった。

AIが暴走すると、コントローラーが邪魔になる

問題は、作業AIが間違った方向へ進み始めたときだった。

「そこじゃない」

「そのファイルは触るな」

「一旦止まって」

AIエージェントを使っていれば普通にある。

これをコントローラー経由で直そうとすると、

私 → コントローラーAI → 作業AI

となる。

しかし、目の前でAIが間違ったコードを書き続けているのに、わざわざ別のAIへ「止めるよう伝えて」と頼むのは遅い。

その作業セッションを直接開いて、

「違う。止まれ」

と書いた方が圧倒的に速い。

だったら最初から、私が各セッションに直接指示すればいい。

以前の将軍でも、今回の簡易版でも、結局ここに戻ってきた。

問題はAI同士の通信手段ではなかったのだ。

誰に何をやらせるか。どこで止めるか。意見が割れたらどちらを採用するか。途中で前提が変わったらどうするか。

難しいのは通信ではなく、判断と介入だった。

コントローラーはやめた。でも通信は使える

そこで今回の簡易オーケストレーションはやめた。

各作業セッションには私が直接指示する。

ただし、セッション間通信そのものは残した。

指揮命令に使うと面倒だが、補助役のAIへ情報を渡す仕組みとして使うと非常に便利だったからだ。

特に使えるのが「実況・レポート」と「レフェリー」である。

作業するAIとは別に「実況席」を作る

複数のAIを並列で動かすと、今度は人間側が追いつかなくなる。

AではAPIを変更し、Bでは不具合を調査し、Cではテストしている。全部が高速で進むので、しばらくすると「ところで今、全体としてどうなっているんだ?」となる。

そこで各セッションから、重要な変更や進捗をレポート専用セッションへ送らせる。

レポート担当は実装しない。集まった情報を整理して、人間向けに説明する。必要ならPowerPointにもする。

以前は作業中のAI本人に、

「手を止めて、今まで何をやったか説明して」

と頼んでいた。

今はその必要がない。

作業するAIは作業を続け、別のAIが横で解説する。

選手に試合中の実況までやらせず、別に実況席を作るようなものだ。

これはかなり使える。

判断に迷ったら「レフェリー」に投げる

もう一つが判断支援専用のセッションだ。

Aはこの設計を勧める。Bは別の方法を勧める。そんなとき、第三のセッションに両方の情報を渡して、

「二案を比較して」

「リスクを整理して」

「見落としがないか確認して」

と頼む。

私はこれを「レフェリー」として使っている。

最終判断は私がする。しかし、その前に論点を整理するAIが一人いるだけで、かなり楽になる。

セッション間通信は「指揮」より「補助」に使う

結局、現在の構成はかなり単純になった。

各作業AIへの指示は私が直接出す。

その横で、必要に応じて作業AIからレポート担当やレフェリーへ情報を送る。

つまり、AI同士を巨大な指揮命令系統でつなぐのではなく、人間を中心にして、AI同士の通信は必要なところだけ横につなぐ。

セッション間通信は、AIにAIを管理させるためではなく、人間が複数のAIを扱いやすくするために使う。

今のところ、この方が圧倒的に扱いやすい。

全自動化を目指したら、最後に管理職が残った

私は以前、将軍で「AIにAIを管理させる」ことを試して失敗した。

今回、Claude Codeにもっと簡単な通信機能が来たので、「今度こそいけるのでは?」ともう一度試した。

通信はずっと簡単になった。

それでも全自動にはならなかった。

間違ったAIを止める。優先順位を変える。意見が割れたら決める。途中で目的そのものを修正する。

この部分は、まだ人間が直接やった方が速い。

その代わり、実況やレフェリーのような人間を補助するAIはかなり使えるようになった。

AIだけの会社を作るところまではいかなかったが、複数のAIを使うチームとしては一段進んだ。

そして、いろいろ自動化して最後まで消えなかった役割がある。

管理職である。

どうやら私の仕事は、もうしばらく残りそうだ。