
はじめに
以前の記事で、AIにSSHでサーバーを直接触らせたら楽だったという話を書いた。デプロイスクリプトを作らせて、ビルドからコンテナ更新まで一発で終わるようにした。
その後、自分専用のBotをSaaS化した。これも本番は自宅サーバーで動いている。
ここまで来ると、次に思うことは一つだ。運用も任せたらいいんじゃないか?
問題があったら直させればいい
AIはコーディングが得意だ。セキュリティの知識もある。サーバーの設定も読める。
だったら、サーバーに問題が起きた時に、AIに調べさせて、直させて、デプロイまでやらせればいい。人間が夜中に叩き起こされてログを読む必要はない。
もう一つ、大事な理由がある。
自分がコードベースで指示したら、自分の知識の範囲内の行動しかしてくれなくなる。 セキュリティの設定をどうすべきか、コンテナの構成に問題がないか——正直、自分よりOpusのほうが詳しい。だから細かい手順を指示するのではなく、Opusの自律的な判断に委ねることにした。
仕組み
作ったのは、Electronのタスクトレイに常駐する監視アプリだ。
昼間 — 軽量監視
AIをずっと動かすとMAXプランの使用量を食う。だから昼間はAIを使わない。
代わりに、監視スクリプトが60秒ごとにSSHでサーバーの状態をチェックする。コンテナが動いているか、HTTPのレスポンスが返ってくるか、データベースに接続できるか。異常を検知したらまずコンテナの再起動を試みて、それでも駄目ならAIを起動する。
深夜 — AIのフルパトロール
毎日深夜4時に、AIがサーバー全体を巡回する。セキュリティ設定、リソース使用量、コンテナの構成。昼間の監視スクリプトでは拾えない問題を、AIの目で洗い出す。
なぜ深夜か。MAXプランの使用量は時間経過で回復する。深夜に使っても自分が起きた頃には回復しているし、使わなければその枠は無駄になるだけだ。有効活用しない手はない。
監視スクリプトもAIが作る
面白いのは、監視スクリプト自体もAIに作らせていることだ。深夜のパトロール時に、サーバーの構成を見て、何をどう監視すべきかをAI自身が判断して、スクリプトを生成・更新する。
自分が「このポートを監視しろ」と指定するのではなく、AIが「このコンテナにはこのチェックが必要だ」と決める。さっき書いた通り、自分の知識に閉じたくないからだ。
3層のエージェント構造
異常が検知されてAIが動き出すとき、1つのAIが全部やるわけではない。役割を3層に分けている。
親エージェント — 症状を検知して、どのアプリに問題があるかを特定する。ここで大事なのは、親は症状だけを渡すということだ。「コンテナが落ちた」「HTTPが500を返した」という事実だけ。なぜ落ちたか、どう直すべきかは親が判断しない。
子エージェント — 該当アプリのプロジェクトで起動して、原因を調査し、コードを修正し、テストして、デプロイする。症状から原因を特定するのは子の仕事だ。
孫エージェント — 子が立てた修正方針を監査する。「この修正で別の問題が起きないか」をチェックしてから、実行に移る。
なぜ親が診断しないかというと、子のほうがそのプロジェクトに詳しいからだ。子は該当アプリのプロジェクトフォルダで起動するので、CLAUDE.mdもコードも全部読める。親はサーバー全体を見ているだけで、個々のアプリの内部構造は知らない。親が原因まで推測すると、その推測に引っ張られる。だから症状だけ渡して、現場に判断させる。
実際に起きたこと
先日、監視スクリプトがエラーを検知した。AIが出動して調査を始めた。
結果:監視スクリプト自身のバグだった。
AIが作った監視スクリプトのエラーを、AIが自分で見つけて、自分で直した。人間は何もしていない。Discordに「修正しました」と通知が来て、それで終わりだ。
笑い話みたいだが、これは仕組みがちゃんと動いている証拠でもある。完璧なスクリプトを最初から書く必要はない。問題が起きたら直す——そのループが自動で回っている。
自分のサーバーだからできること
こういう話をすると「無責任だ」と思う人もいるだろう。セキュリティを商売にしている人から見れば、AIに判断を丸投げするなんて、とんでもないかもしれない。
でも俺は個人開発者だ。自分のサーバーで、自分のサービスを動かしている。セキュリティやサーバー管理の知識は、正直、自分よりOpusのほうが持っている。自分より詳しいやつに頼るのは、無責任ではなく合理的だと思っている。
もちろん、これを他人に配る気はない。自分のサーバーだから好きにできるが、他人のサーバーをぶっ壊したら洒落にならない。「自分用」と割り切っているからこそ、AIに任せきれる。
おわりに
SSHでサーバーを触らせるところから始まって、デプロイを任せて、SaaS化を任せて、今は運用まで任せている。
できるだけ自分の知識で縛らず、AIの判断に委ねる。そうすると、自分が知らなかった問題をAIが見つけて、自分では書けなかった修正をAIが入れてくれる。自分で監視スクリプトを書いていたら、そのバグには気づけなかった。
個人開発者がサーバーを運用するのは大変だ。でも今は、深夜のうちにAIが見回ってくれる。朝起きたらDiscordに「異常なし」と来ている。それだけで安心して寝られる。
指示を細かく書くより、任せたほうがうまくいく。そういう付き合い方が、だんだん見えてきた。