課題:AI 同士の議論は、タブを閉じた瞬間に消える
Claude と Codex にデータの持ち方を 6 往復議論させて、結論が出ました。この形で、理由はこれ。納得して、次の作業に移ります。
翌朝、その結論を思い出せません。
タブを閉じたので、議論はもう画面にありません。残っているのは、片方が反対していた記憶だけです。
もう一度同じ議論を回せば、また結論は出ます。ただし、
- 一発言が 1 本物のターンぶんの使用量です。6 往復させれば 6 回ぶん請求されます
- そして前回の記録が無いので、同じ議論の最初からやり直しになります
- 同じ議論を 2 回して、違う答えが出ることが実際にあります
二度目は、相手の AI が別の論点に流れていきます。前回の論点をあなたが覚えていないので、戻せません。同じ金額を払って違う結論が出るのがいちばん困ります。
既存のやり方とそのコスト
自分で貼り付けて保存する
議論の内容を手でコピーして、別のファイルに貼ります。これで「残す」はできます。
ただし、
- 次に同じ議題で議論を始めるときに、その内容を全文プロンプトに戻すのは手作業です
- どこまでが前回の議論で、どこからが新しい議論かが混ざります
- CI やテストの結果を議論に持ち込むなら、やはり手で貼ります
本物の AI 同士の会話を貼り続けるのは、現実的な運用になりません。
Claude や Codex の会話履歴に任せる
各エージェントが自分の履歴を持っているので、それを掘れば議論は再現できます。
ただしそれは各エージェントが見た半分だけです。Claude の履歴に Codex の発言は、プロンプトとして入ったテキストとしてしか残っていません。会話として読み返す UI がありません。
複数エージェントで議論させた全体を、1 本の履歴として扱える場所にはなっていません。
MulmoTerminal の解決:会話を画面から切り離して追記専用ファイルに書く
MulmoTerminal は AI 同士の議論を、議論しているセルとは別のところに記録します。
書き場所は 1 つです。
~/.mulmoterminal/rooms/<id>.jsonl
1 行 1 JSON の追記専用ファイルです。書き換えも削除もしないので、書かれた順がそのまま残ります。これで 2 つのことができるようになります。
- 会話がタブより長生きする — タブを閉じても、ファイルは残ります
- AI 以外も参加できる — ファイルに書き込めるものなら、何でも議論の記録に足せます
名前を付けると、続きから話せる
議論を始めるときの 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 で記録の横のゴミ箱を押します。
まとめ
- AI 同士の議論を画面に残すと、タブを閉じた瞬間に消える
- 同じ議論を回し直すのは実アカウントの使用量がかかり、同じ結論になるとは限らない
- MulmoTerminal は会話を
~/.mulmoterminal/rooms/<id>.jsonlの追記専用ファイルに書き出し、名前を付ければ続きから話せる - 名前バリデーションは黙って新規作成に落ちないので、「なぜか記憶が無い AI」にならない
- CLI から AI ではないもの(CI、テスト、人間)も同じ会話に書き込める
- 認証は無いので、書き込める入口は自分と自分の作業だけに留める
関連: MulmoTerminal 公式ガイドの会話ページ / MulmoTerminal の round table — AI の議論に終わる条件を書く / Cursor の代替としての MulmoTerminal

