Docs の一覧へ

Claude Code を複数同時に動かすと、なぜ管理できなくなるのか

短い答え

AI が速くなった結果、どのセッションに何を頼んだかを覚える仕事が人間に残る。動いているのか、終わったのか、人の返事を待っているのか。ターミナルを開くまで区別がつかない。

「完了しました」と来たのに、何を頼んだか思い出せない

Claude Code を 3 本動かしていた。1 本から「完了しました」と通知が来た。それが何の仕事だったのか、一瞬思い出せなかった。ターミナルを順に開いてスクロールを戻して、ようやく「ああ、リトライ処理のほうか」と分かった。

別の日には逆のことが起きた。1 本が「この 2 つのどちらにしますか」と聞いたまま、かなり長く止まっていた。私たちはその間、別のセッションのレビューをしていた。聞かれていることに気づいていない。AI は待っているだけなので、エラーも通知も出ない。

遅れること自体はまだいい。困るのは、ターミナルを開くまで何も分からないことだ。動いている、終わった、人の返事を待っている。この 3 つは画面上では同じ「スクロールが止まった状態」で、区別するには中を読むしかない。

AI が速くなったぶん、並べられる本数は増えた。増えた結果、どのセッションに何を頼んだかを覚えておく仕事が人の側に残った。これはモデルが賢くなっても減らない。覚えている場所が頭の中にしかないから。

最初にやったこと

試した順に書く。どれもそれなりに効いた。

まず私たちは tmux で 1 つのウィンドウに並べた。これは今でも使っている。一画面で全部のセッションが見えるのは普通に便利だ。ただし見えるのは「今のスクロール位置」だけで、10 分前に何を聞かれたかは自分で遡る。

次にリポジトリに TODO.md を置いて、着手中の項目に印を付けた。書いた瞬間は正しい。問題は、AI が止まった瞬間に古くなることと、古くなったことを誰も教えてくれないこと。結局、手で直す前提のメモになった。

Git ブランチを仕事ごとに切るのもやった。どの作業がどこまで進んだかはコミットから推測できる。ただ「人間の返事を待っている」はコミットに現れない。

GitHub Issues も使った。これは一番まともだった。残るし、番号で呼べるし、別の AI にも読ませられる。ラベルで状態も持てる。ただ、人間の返事を待っているカードだけを集める場所がない。ラベルを自分で運用して、自分で貼り替えることになる。セッションが 5 本あるとき、その貼り替えを毎回やる人はいない。少なくとも私たちはやらなかった。

最後は各セッションに直接聞いた。「いまどこ?」と打てば答える。正確だ。ただ 5 本に順番に打つ作業自体が、さっきまで避けたかった確認作業と同じものだった。

どこで噛み合わなくなったか

どれも同じところで止まった。「何をやるか」は書けるのに、「今どうなっているか」を置く場所がない。状態はターミナルの中か、人の記憶の中にしかない。ターミナルを閉じれば前者も消える。

しかも人間待ちだけは、どの方法でも一等地に置かれない。実際に一番しょっちゅう私たちを止めていたのはそれだった。

私たちの 1 日の実際

私たちは自分のプロダクトと受託案件をあわせて、3〜4 本のプロジェクトを同じ日に行き来している。AI のセッションは多い日で 5 本くらい並ぶ。この本数は私たちの典型で、計測した値ではない。

経験則として、私たちの場合は 3 本を超えたあたりから見失うことが増えた。2 本なら覚えていられる。4 本あると、そのうち 1 本はだいたい「これ何させてたっけ」になる。誰にでも当てはまる数字だとは思っていない。

よくあったのは 2 つ。返事を待たれていたのに気づかず放置したこと。これは何度もあった。もうひとつは、終わっているのに次を渡していなかったこと。AI は終わると止まる。止まった画面は、放置された画面と見分けがつかない。

失われていたのは作業時間より、渡せる状態になっていた仕事が渡されずに寝ていた時間だった。こちらが気づいていないあいだ、セッションは律儀に待っている。

Dazbench ではこう設計した

私たちが欲しかったのは「AI が人間の返事を待って止まっている」をターミナルを開かずに知ることだった。だから「待ち」を進行中とは別の独立した状態にした。待ちにしたカードは今日の一覧から外れて、待ち専用のビューに集まる。自分が手を離していい仕事が 1 箇所に溜まる。

もうひとつは、どのセッションが何をやっているかを AI 自身に書かせることだった。人間が覚えている限り、人間が忘れる。実際の流れはこうなっている。

  1. 仕事 1 つにカード 1 枚。カードには dz51 のような番号が付く。
  2. セッションを起こすときは番号だけ渡す。「dz51 をやって」で足りる。同じカードを 2 本に渡さないのは人間側の責任。
  3. AI が着手すると、カードの状態が「進行中」になる。
  4. 動き始めると、そのカードに「AI作業中」の印が出る。印は AI が動くたびに押し直される鮮度で出ていて、最後の信号から 5 分が経つと作業中から落ちる。動いているふりは続かない。
  5. 判断が必要になったら、選択肢つきで人に聞かせる。ブラウザ通知が飛ぶ。
  6. 相手や人の返事で止まるなら、状態を「待ち」にする。今日の一覧から外れて待ちビューに移る。
  7. 完了にできるのは人が承認したあとだけ。AI が自分の判断で完了にすることはない。

依存関係を持たせて「今すぐ着手できるカードだけ」を取る仕組みもあるが、それは別の記事の話なので置いておく。

実際に何が変わったか

ターミナルを順に開いて確認する作業がなくなった。印が動いているか止まっているかで、戻るべきセッションが決まる。

待たれていることに気づかない時間は短くなった。これは計測していない。体感。

「これ何させてたっけ」はカード番号を見れば終わる。覚える場所が頭の外に出たぶん、並べる本数を増やしても怖くなくなった。

解決していないこともそのまま書く。Claude Code で作業中の印を出すには、一度だけ連携の設置が要る (Claude Code に「Dazbench と連携して」と頼めば自分で入れる)。claude.ai と ChatGPT は設定なしで映る。判断そのものは人の仕事として残っていて、待ちが溜まる速さは変わらない。同じカードを 2 本のセッションに渡すミスは今も普通にできる。並列何本までなら回るかは、私たちは測っていない。

よくある質問

Claude Code は何本まで同時に動かせるのか
上限の測定はしていません。私たちの場合は 3 本を超えたあたりから、何を頼んだか見失うことが増えました。律速になっていたのは AI の速度ではなく、人が状態を覚えておける量でした。
tmux や TODO.md では足りないのか
「何をやるか」を置く分には足ります。足りなかったのは「今どうなっているか」と「人間の返事を待っているか」で、どちらもターミナルを閉じると消えるか、手で書き直さないと古くなります。
Claude Code 以外でも同じように見えるのか
claude.ai と ChatGPT は追加設定なしで作業中の様子が出ます。Claude Code だけは一度だけ連携の設置が必要で、Claude Code に「Dazbench と連携して」と頼むと自分で設置します。

関連

Claude Code を並列で動かすと管理できなくなる理由