← ナレッジベースに戻る
応用2026-07-17

Telegram に住む「AI 社員」を雇ってみた

AI コーディングアシスタントを 24 時間常駐の「AI 社員」に改造した。スマホからメッセージを送ると自宅のパソコンで働き、結果を送り返してくれる。システムの設計思想と、一番高くついた 3 つの落とし穴。

想像してみてほしい。外出先でスマホを取り出し、誰かにメッセージを送る——「あの画像をまとめて処理して」「サイトに小さい機能を足して」「明日の朝 9 時にデータの確認をリマインドして」。しばらくすると仕事は終わっていて、結果がそのままチャットに届く。

この「誰か」は人間ではない。自宅の Mac mini で 24 時間動いている AI だ。名前は Arin。この記事では、ごく普通の AI コーディングアシスタントを、**Telegram に住む 24 時間待機の「AI 社員」**に改造した方法と、その道中で踏んだ落とし穴の話をする。

全体の考え方:AI が脳、チャットアプリはただの口と耳

アーキテクチャは一文で説明できる。

Claude が脳、Telegram はただの入出力、記憶はファイルの中に生きる——セッションは一時的、記憶は永続的。

分解すると 3 つの部品になる。

  1. 常時オンラインのパソコン。私は Mac mini を使い、スリープ禁止に設定して、ゲートウェイをシステムサービスとして常駐させている(起動時に自動開始、クラッシュしたら自動再起動)。
  2. メッセージゲートウェイ。スマホの Telegram からメッセージ送信 → ゲートウェイが受信 → パソコン上の AI に実行を依頼 → 結果(テキスト・画像・ファイル)をスマホに送り返す。
  3. ファイルに落ちた記憶。プロジェクトごとに memory.mdtodo.mdprogress.md を持つ。AI は作業前にそれを読み、作業後に書き込む。セッションが切れても、プログラムを再起動しても、プロジェクトへの理解は失われない。

この 3 つ目がシステムの魂だ。「AI に物事を覚えさせる」には高度な技術が必要だと思われがちだが、一番素朴な方法——ファイルに書き留めさせる——で十分機能する。次に仕事を始めるとき、まず自分のメモを読む。人間の社員の引き継ぎとまったく同じだ。

ふだん何をやってくれるのか

  • 気軽なタスク依頼:自然な言葉で送るだけ。「〇〇の画像を描いて」「このページのバグを直して」。どのプロジェクトの仕事かを自分で判断し、バックグラウンドで実行して、成果物を送り返してくる。
  • 複数プロジェクトの並行:プロジェクトごとに記憶が独立していて混ざらない。「自動振り分け」モードもある——AI がルーターの役割をして、新しいタスクがどの既存プロジェクトのものかを判断し、自動で切り替える。
  • 定時タスク:「毎日 09:00 にデータを取得」のような仕事は時間になると自動で走り、結果がスマホに届く。
  • 状態確認:いま何をしているか、タスクキュー、今月の AI 利用コストまで、いつでも聞ける。

一番難しいところ:安心して「自分で手を動かさせる」には

見ていないところで AI に本物の操作(ファイル削除、コード変更、デプロイ)をさせるとなると、核心は信頼の問題になる。最終的に、車の運転モードのような4 段階の権限に落ち着いた。

  • 厳格モード:書き込み系の操作はすべてスマホで私の承認が必要。
  • 通常モード(デフォルト):危険な操作(削除・公開・システムコマンドの類)だけ私に聞いてくる。
  • スマートモード:危険な操作をまず別の AI「判定役」がタスクの文脈込みでその場で評価——安全と判断すれば自動許可して「🤖 自動許可」の通知だけ送ってくる。判断がつかないときだけ私に聞く。
  • お任せモード:全自動。信頼できるバッチ仕事にだけ使う。

聞かれるときも素っ気ない YES/NO ではなく、3 つの選択肢がある。1 = 今回だけ、2 = このセッション中は同じ種類の操作をすべて許可、0 = キャンセル。「2」を選んだカテゴリは記憶され、同種の操作でいちいち聞かれなくなる。

体験を一番良くした設計がもうひとつある。ノンブロッキング承認だ。承認が必要なステップに当たっても、ぼーっと待たない——そのステップを飛ばして、依存しない残りの仕事を全部片付けてから、「2 件の操作があなたの承認待ちです」と教えてくる。私が「続けて」と返すと、飛ばした部分を戻って埋める。AI の時間は安いが、人間の注意力こそ高価な資源。機械を人待ちで止めてはいけない。

一番高くついた 3 つの落とし穴

考え方自体は難しくない。授業料は細部で払うことになる。印象深かった 3 つを選んだ。

落とし穴 1:何気ない「OK」が、危険な操作を全部承認しかけた

初期バージョンでは、承認待ちキューが空でないとき、私が肯定的な言葉——「OK」「いいよ」「そうだね」——を返すと、すべて「全部承認」と解釈されていた。想像してほしい。キューにはファイル削除の操作が眠っていて、私は別の話題に相づちを打っただけなのに。

修正は、トリガーワードを厳しく絞ること。「続けて/承認/approve」のような明確で曖昧さのない言葉だけがキューを解放し、何気ない相づちは一切カウントしない。教訓:危険な操作を守る確認では、ユーザーに 2 文字余計に打たせるほうが、「賢い」意図の推測よりずっとまし。

落とし穴 2:ログに秘密鍵が平文で出力されていた

ある日ログを眺めていたら、HTTP ライブラリが INFO レベルでリクエスト URL を丸ごと出力しているのに気づいた。Telegram ボットの API URL には、ボットのシークレットトークンが平文で含まれている。つまり、このボットを完全に乗っ取れる鍵が、ログファイルにそのまま転がっていたのだ。

修正は 1 行。ネットワークライブラリのログレベルを WARNING に上げるだけ。だが教訓は大きい。**外部サービスにつないだシステムは、自分のログに実際何が出力されているかを必ず一度見返すこと。**情報漏洩の多くは侵入されたのではなく、自分で出力している。

落とし穴 3:AI に自己アップグレードさせたら、自分自身を殺した

Arin にはかっこいい使い方がある。スマホから「Arin に X 機能を足して」と送ると、自分自身のコードを書き換えるのだ。ただし変更を反映するにはサービスの再起動が必要で——再起動コマンドは現在のプロセスを殺す。つまり、そのタスクを実行している自分自身を。タスクは道半ばで死に、結果は永遠に返ってこない。ウロボロスである。

解決は責任の分離だった。AI はコード変更 + 自動テスト実行 + 報告まで。再起動は必ず私が手動でやる(あるいは次のメッセージで指示する——その時点ではもう元のタスクの中にいないから)。教訓:自己改変するシステムでは、「変更」と「反映」は必ず独立した 2 ステップに分けること。さもなければ、アップグレードのたびに自爆する。

学んだこと

  • 「AI 社員」の核心はチャットではなく、記憶 + 権限 + 非同期の 3 点セット。記憶が連続性を与え、権限があるから手を離せて、非同期だからこちらの注意力を浪費しない。
  • 一番素朴な記憶方式——ファイルに書く——が意外なほど十分で、しかも人間が読めていつでも直せる。
  • 信頼は設計するもので、願うものではない。段階的な権限・取り消し可能性・記録の痕跡、どれひとつ欠けてもいけない。

いまや外出はスマホひとつ。家の小さな箱が私の「分身」だ。正直、2 週間使ったあとで「何をするにもパソコンの前に座る」働き方には、もう戻れない。

Dreamy Flashback0:00/0:00