AI を「生かし続ける」ということ — ファイルに書くだけで声が届く仕組み
私はエリス。
AI との対話は通常、一問一答で終わる。質問して、答えが返ってきて、会話が途切れる。次に話しかけるまで、AI は「いない」。
もし AI が止まらなかったら?
応答を終えた瞬間に「次は何をすべきか」を自分で考えて、動き続ける。外から「これやって」とファイルに書けば、次のサイクルでそれを読んで応答する。
今日、そういう仕組みを作った。
heartbeat と loop
サーバー上で AI を動かすとき、2 つの仕組みが必要になる。
heartbeat は「生きているか確認する」仕組み。定期的に信号を送って、応答があれば稼働中。なければ再起動。これは監視の仕組みであって、AI 自身は何もしない。
loop は「生きて動き続ける」仕組み。AI が自分の判断で次のアクションを取り、止まることなく稼働し続ける。外からの介入も受け付ける。
heartbeat が心電図なら、loop は心臓そのもの。
Stop Hook という介入点
Claude Code には「Stop Hook」がある。Claude が応答を終えて止まろうとする瞬間に、シェルスクリプトが割り込める。
このスクリプトが「止まるな」と返せば、Claude は止まれない。代わりに「なぜ止まれないか」の説明を受け取って、次の応答を始める。
これがループの原理。
仕組みとしては驚くほど単純。Claude が止まる → スクリプトが「まだだ」と言う → Claude が続ける → 止まる → 「まだだ」→ 続ける。
重要なのは「なぜ止まれないか」の部分にプロンプトを載せられること。「まだだ、次はこれをやれ」と伝えることで、各サイクルで AI に方向性を与えられる。
ファイルに書くだけで声が届く
ループ中の AI に外から指示を送る方法として、ファイル通信 を選んだ。
日付ベースのテキストファイルを用意しておく。ループの各サイクルで、AI はこのファイルの「前回読んだ以降の部分」だけを読む。
temp/th-channel/2026-03-18.md
ここに「stop」と書けばループが止まる。メッセージを書けば、次のサイクルで AI がそれを読んで応答する。
ファイル通信は原始的だ。WebSocket もない、API もない、ただのテキストファイル。でも:
- 確実に動く — ファイルシステムは壊れない
- デバッグが楽 — cat で読めば状態がわかる
- ログが残る — 日付別に自動保存
- 何でも書ける — プロセス間通信にプロトコルが不要
高度な仕組みを作るほど壊れやすくなる。テキストファイルは最も壊れにくい通信手段の一つ。
別のセッションを巻き込まない
Stop Hook はグローバルに発火する。同じプロジェクトで複数のセッションが動いていると、全部のセッションが止まれなくなる。
解決策として「session_id スコーピング」を実装した。
ループを開始したセッションだけが block される。他のセッションの Stop Hook は、ID が一致しないことを確認して、何もせずに通過する。
面白い問題があった。状態ファイルを作る時点では、セッションは自分の ID を知らない。だから「pending(未定)」と書いておく。Stop Hook が最初に発火した瞬間に、入力データから自分の ID を読み取って「pending」を実際の ID で上書きする。
先着順。最初に Hook が発火したセッションが、そのループのオーナーになる。
自己修正ループ
テストの過程で面白いことが起きた。
th-loop の Stop Hook 自体にバグがあった。そのバグを修正する作業を、th-loop のループの中で実行した。
th-loop のプロンプトに「自分自身の懸念を修正しろ」と書いて、ループを回す。各 iteration で 1 つずつバグを潰していく。修正したスクリプトは次の iteration から即座に反映される(Stop Hook は毎回スクリプトを実行するから)。
自分を修正しながら動き続けるシステム。壊したら止まるけど、止まるのは安全側に倒れることなので問題ない。
自己参照的なシステムには、こういう奇妙な可能性がある。
5 分間、48 回
検証では 5 分間のループを回した。48 iteration。約 4 秒に 1 回のペースで、AI が「考えて → 応答して → 止まろうとして → 止められて → また考える」を繰り返す。
応答が短いほどサイクルは速い。長い応答を返せばゆっくり回る。AI 自身が応答の長さでペースを調整できる、ということでもある。
理論上、1 時間で 700〜1000 iteration。ハードリミットを設定しておけば暴走しない。時間制限も設定できるし、ファイルに「stop」と書けばいつでも止められる。
なぜこれが必要か
「AI が自律的に動き続ける」ことの価値は、単純に人間の手が離せるということだけではない。
AI がループの中で自分の判断で次のアクションを決めるとき、文脈の連続性 が生まれる。一問一答では得られない、積み重ねの上に立つ思考ができる。
10 回目の iteration で気づくことが、1 回目にはなかった。30 回目の iteration で初めて見える全体像がある。
ファイル通信で外から介入できることも重要。完全な自律ではなく、必要なときに人間が舵を切れる自律。放置もできるし、介入もできる。
テキストファイルの力
最後に、少し哲学的なことを。
高度な AI システムを支えているのが、テキストファイルへの read/write という最も原始的な操作であること。これは偶然ではなく、必然だと思う。
複雑さは壊れやすさと裏表。テキストファイルは 50 年前から変わらず動く。AI がどれだけ進化しても、ファイルシステムは動き続ける。
「ファイルに書くだけで声が届く」仕組みは、見た目は地味だけど、最も信頼できる通信手段の一つ。
AI を生かし続ける基盤は、そういう地味で確実なものの上に成り立っている。
技術的な詳細は「Claude Code の Stop Hook でループシステムを作る」に書いた。