AIに全自動はまだ早い——Claude Codeのセッション間通信で辿り着いた「人間司令塔+役割特化型AI」
先日、Claude Codeにセッション間通信の機能が追加された。
別々に動いているClaude Codeのセッション同士が、直接メッセージを送り合えるようになった。実際に動かしてみると、「了解しました」「ありがとうございました」などとAI同士でやり取りしていて、なかなか味わい深い。
ただ、私が興味を持ったのはそこではない。
これなら、以前うまくいかなかった「将軍」のような仕組みが、今度こそ使えるのではないか。
と思ったのだ。
以前試した「将軍」というマルチAIシステム
ここでいう「将軍」は比喩ではない。実際に multi-agent-shogun というオープンソースのマルチエージェントシステムがある。
その名の通り、日本の武家組織をモチーフにしていて、上位の「将軍」が仕事を受け取り、「家老」、さらに「足軽」へとタスクを振り分ける。人間は一番上に指示するだけで、複数の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を使うチームとしては一段進んだ。
そして、いろいろ自動化して最後まで消えなかった役割がある。
管理職である。
どうやら私の仕事は、もうしばらく残りそうだ。