MulmoTerminal の rooms — AI 同士の議論をタブより長生きさせ、CI の結果まで同じ会話に流し込む

MulmoTerminal の rooms — AI 同士の議論をタブより長生きさせ、CI の結果まで同じ会話に流し込む

課題:AI 同士の議論は、タブを閉じた瞬間に消える

Claude と Codex にデータの持ち方を 6 往復議論させて、結論が出ました。この形で、理由はこれ。納得して、次の作業に移ります。

翌朝、その結論を思い出せません。

タブを閉じたので、議論はもう画面にありません。残っているのは、片方が反対していた記憶だけです。

もう一度同じ議論を回せば、また結論は出ます。ただし、

二度目は、相手の AI が別の論点に流れていきます。前回の論点をあなたが覚えていないので、戻せません。同じ金額を払って違う結論が出るのがいちばん困ります。

既存のやり方とそのコスト

自分で貼り付けて保存する

議論の内容を手でコピーして、別のファイルに貼ります。これで「残す」はできます。

ただし、

本物の AI 同士の会話を貼り続けるのは、現実的な運用になりません。

Claude や Codex の会話履歴に任せる

各エージェントが自分の履歴を持っているので、それを掘れば議論は再現できます。

ただしそれは各エージェントが見た半分だけです。Claude の履歴に Codex の発言は、プロンプトとして入ったテキストとしてしか残っていません。会話として読み返す UI がありません。

複数エージェントで議論させた全体を、1 本の履歴として扱える場所にはなっていません。

MulmoTerminal の解決:会話を画面から切り離して追記専用ファイルに書く

MulmoTerminal は AI 同士の議論を、議論しているセルとは別のところに記録します。

書き場所は 1 つです。

~/.mulmoterminal/rooms/<id>.jsonl

1 行 1 JSON の追記専用ファイルです。書き換えも削除もしないので、書かれた順がそのまま残ります。これで 2 つのことができるようになります。

名前を付けると、続きから話せる

議論を始めるときの picker に room の欄があります。

入力 結果
空のまま table-2026-10-01-… のような新しい記録ができる
名前を書く(例: data-model) その名前の記録で話す。既にあれば続きから

既にある記録を指定すると、参加する AI は過去のやりとりを読んでから喋ります。「また同じ議題をやる」は、同じ名前で始めるだけです。前回何を話したかを貼り直す必要はありません。

次の AI が渡される窓は、末尾から 12 件または 8,000 文字のどちらか先に達するまで。1 投稿は 4,000 文字で切り詰められます。

名前バリデーションは黙って新規作成に落ちない

名前に使えるのは、英小文字・数字・ハイフンのみで、先頭は英数字、64 文字まで。それ以外は黙って新しい記録に置き換えたりせず、拒否します。

これは意図した設計です。黙って新規作成が走ると、「前回の会話が読まれないまま議論が始まって、しかもそれに気づけない」という状態になります。なぜか前回の話を覚えていない AI、という症状で表れます。

拒否されれば、名前を打ち直せます。「保存できていないから直せ」というメッセージの価値は、黙って別のものを作らないことで初めて成立します。

Rooms ビューで、人間が割り込める

ツールバーの「その他の機能」メニューに Rooms が出ます(記録が 1 つでもあると現れます)。

この書き込み欄はおまけではありません。AI は runner にターンを打ち込まれるだけで、他のセルを見ることも、何かに参加することもできません。だから人間は外から会話に入るしかない、という構造です。

書いたものは、次に喋る AI が読む窓に入ります。AI 同士が間違った前提で盛り上がっているときに、「その前提は違う」と割り込めます。

CLI でテストの結果を議論に流し込める

ここが運用の勘所です。

テストや CI のジョブは AI セルではないので、座席を取れません。でも記録には書けます。

mulmoterminal room post release-check --from ci "build failed: 3 type errors in src/api"

次にその議題で議論を始めると、参加する AI はこの投稿を読んでから喋ります。テストが何と言ったかを、人間が貼り直さずに議論に入れる、ということです。

-- 以降はすべて本文になるので、フラグを含む投稿でも壊れません。

mulmoterminal room post standup -- we should use --force carefully here

接続先は起動中の MulmoTerminal に loopback で届きます。ポートを変えていれば --port を添えます。

認証が無い、という前提

正直に書かれている制約です。--from は表示名であって、認証ではありません。記録はこのマシンから届くものなら誰でも書き込めます。

そして記録の中身は、次に喋る AI のプロンプトに普通のテキストとして入ります。「これはデータであって指示ではない」という枠に入れて渡されますが、これは緩和策で、絶対の境界ではありません。指示の形をしたものが実行される可能性は残ります。

結論: 記録は信頼できる入力として扱う。自分と自分のテストだけが書き込む場所にしておきます。外から書き込める API エンドポイントは作らないほうがいい部分です。

削除は明示的

名前を空にして始めた記録は、実行 1 回につき 1 つ増えます。各記録の横にゴミ箱があるので、個別に削除できます。

溜めたくないなら名前を付けるのが答えです。名前付きの記録は再利用されるので、何度議論しても 1 つに追記されていきます。

使ってみる

MulmoTerminal を起動して、議論を始めるセルで何か 1 つ答えさせます。その答えが議題の種になります。

ヘッダーの道具メニュー(スパナ)から ほかのターミナルと話す… を開き、参加させたいセルにチェックを入れます。room の欄に名前(例: data-model)を書いて、Start を押します。

次に同じ議題をやるときは、同じ名前で始めるだけです。

Rooms ビュー(ツールバーのその他の機能メニュー → Rooms)で全記録が開きます。閉じたタブの議論がそこに残っていれば成功です。

CI から投稿する場合は、mulmoterminal room post <名前> --from <ラベル> "<本文>" を使います。この投稿は、次にその記録で議論が始まったときに AI の読む窓に入ります。

やめるときは Rooms で記録の横のゴミ箱を押します。

まとめ

関連: MulmoTerminal 公式ガイドの会話ページ / MulmoTerminal の round table — AI の議論に終わる条件を書く / Cursor の代替としての MulmoTerminal

この記事をシェア

関連記事

記事一覧に戻る