【第3回】4件に1件は返事が消えていたAI秘書を作り直しました。
コードが書けない僕が いま一番使っているAIツールは「常駐AI秘書」です。
Macの中でClaude Codeをずっと起動しっぱなしにして スマホのDiscordから話しかけると動いてくれる。
外出先の車の中からでも「あれ調べといて」「これ書いといて」が飛ばせます✊
先に言っておくと DiscordとClaude Codeをつなぐ部分は公式の機能です。
Claude Code に Channels という機能があります。
Claude Code を Discord や Telegram iMessage とつないで チャットアプリから話しかけると返事が返ってくるようにするものです。
プラグインをひとつ入れてトークンを設定するだけなので 「スマホからAIに指示を出す」ところまでは 誰でもすぐできます。
しかもドキュメントには「常時動かしたいならバックグラウンドで走らせてね」とちゃんと書いてあります。
僕がやったのは まさにそれです。
つまり 僕が作った部分はここには1つもありません。
ここから先が今日の話です。
公式のやり方どおり24時間つけっぱなしにしたら 立て続けに3回 派手に地雷を踏みました。
そして3回目でようやく 根っこの設計が間違っていた と分かりました。
今日はその話です☺️
まず何を作っていたか
最初の構成はこうでした。
MacでClaude Codeを常駐(起動しっぱなし)にする
公式の Channels 機能でDiscordとつなぐ
モデルを切り替えたくなったら 秘書を再起動して 別モデルで復帰させる
要するに 公式の仕組みを そのまま24時間つけっぱなしにしただけです。
つまり ひとつの長い会話をずっと開きっぱなしにしておくやり方になります。
雑談も 調べ物も 記事の下書きも 全部その1本の会話に流し込む。
ここまでは気持ちよく動いていました。
地雷その1:家の作業用AIが全部道連れで落ちた
僕は家にいるとき ターミナルでClaude Codeを 何個も同時に立ち上げて 別々の作業を並行させます。
ある日 その状態で スマホのDiscordから「モデルを切り替えて」と秘書に頼みました。
そうしたら——
家で走らせていた作業用のClaudeが 全部まとめて落ちました。
秘書だけ再起動されればいいのに 関係ないはずの作業ウィンドウまで道連れです。
やりかけの作業が全部飛びました。
原因は「古い秘書を落とす処理」がやり過ぎていたことでした。
Discordプラグインは 常駐の秘書だけでなく どのClaude Codeにも読み込まれます。
だから処理が「Discord関連のClaudeを片っ端から落とす」動きになっていたんです。
直し方はシンプルでした。
「落としていいのは 常駐の秘書だけ」をプロセスの”家系図”で見分ける
親をたどって 秘書の血筋のものだけ落とすようにしたら 巻き添えは止まりました✊
ちなみに最初は「名前で狙い撃ちすればいい」と思ったんですが Claude Codeは起動後に自分のプロセス名を書き換えるので 名前だと空振りします。
「名前」ではなく「血筋」で狙うのが正解でした。
地雷その2:秘書が黙るようになった
直したと思って安心していたら 今度は別の問題が出ました。
Discordで秘書に話しかけても たまに無反応で終わる んです。
裏ではちゃんと動いているのに 返事だけが返ってこない。
Discord秘書は 普通に文章を出力するだけでは 相手に届きません。
「返信ツール」というのをちゃんと呼んで初めて Discordに言葉が飛びます。
ところが 特に軽いモデルのとき この返信ツールを 呼び忘れる ことがあったんです。
本人(AI)は仕事を終えたつもりでも こっちには何も届かない。
なので「セッションが終わるときに 返信し忘れてないか自動でチェックする見張り役」を付けました。
これで少しマシにはなりました。
でも 本当の問題はここではありませんでした。
地雷その3:4件に1件が届いていなかった
ある日 note記事の下書きを頼んだら 15分待っても何も返ってきませんでした。
秘書は落ちていません。プロセスは元気に生きています。
なのに何も返ってこない。
さすがにおかしいと思って その日の依頼を全部さかのぼって数えました。
結果がこれです。
その日の依頼14件のうち 4件(28.6%)がDiscordに届いていませんでした。
4件に1件です。
秘書としては致命的な数字です。
さらに調べていくと 気味の悪いことが分かりました。
止まっていた処理で 秘書が実行したコマンド自体は 0.016秒 で終わっていたんです。
手元で同じものを叩いたら一瞬です。
なのに その結果を受け取って次に進むまでに 約12分の空白がありました。
重い処理をしていたわけじゃない。
中で止まっていたんです。
しかも困ったことに プロセスは生きているので パソコンからは「正常稼働中」に見えます。
見張りの仕組みは「生きているか」しか見ていなかったので 異常に気づけませんでした。
もうひとつ ひどい事故もありました。
軽いモデルが受付をしていたとき 「それはできません」と嘘の案内をしたんです。
本当はできる作業でした。
自分の権限を過小評価して 勝手に断っていた。
根っこの原因:全部を1つの会話に押し込んでいた
3回目でようやく分かりました。
雑談も 調べ物も 記事の執筆も 全部同じ1本の会話でやろうとしていたのが間違いでした。
これだと こうなります。
会話が長くなるほど重くなる
どこかで詰まると 全部が道連れになる
「3秒で返してほしい雑談」と「30分かけてほしい執筆」に 同じ待ち方をしてしまう
途中で止めたくても 止める手段がない
万能な1本を作ろうとして 結局どれも中途半端になっていたわけです。
作り直した:用途で4つの枠に分けた
そこで根っこから組み直しました。
依頼を受け付ける係と 実際に作業する係を分ける。
そして依頼ごとに 使い捨ての作業員を立てる。
そのうえで 依頼の重さで枠を分けました。
雑談・確認 → 90秒まで。数秒で返る
検索・カレンダー・ファイル確認 → 5分まで
調査・分析・レポート → 15分まで
記事執筆・実装・ファイル編集 → 1時間まで
同じ「AI秘書」でも 頼む内容によって別の枠で動きます。
雑談は軽い枠で数秒。記事は重い枠でじっくり。
そして重い枠が詰まっても 雑談は普通に返ってきます。 道連れになりません。
どの枠を使うかは 依頼の内容をAIが判定して自動で決めます。
「じっくりやって」と頭に付ければ 強制的に重い枠にもできます✊
ついでに直った3つ
作り直したら 副産物でこうなりました。
①「さっきの続き」が通じる
重い枠は会話を覚えたまま次に引き継ぎます。
「さっきの記事の続き」で通じるようになりました。
②自分から世代交代する
会話が長くなりすぎたら AIが自分で引き継ぎメモを書いて 新しい会話に引っ越します。
80ターン使ったら/使用量が一定を超えたら/2回続けて失敗したら が引っ越しの合図です。
人間が「そろそろ新しいチャットにして」と言わなくてよくなりました。
③「止めて」で本当に止まる
暴走したときの緊急停止を付けました。
これはAIを経由せずに仕組み側で処理するので AIがハングしていても必ず効きます🙆♂️
前は止める手段がなくて ただ待つしかなかったので これが一番安心しました。
今回の気づき
3つに絞ります。
①「生きているか」と「仕事が進んでいるか」は別物。
プロセスは元気なのに12分止まっている。
これが普通に起きます。監視するなら「進んでいるか」を見ないと意味がありません。
②万能な1本より 用途別の複数の枠。
これが一番大きい学びでした。
ひとつの仕組みで全部やろうとすると 速さと粘り強さのどちらかを必ず捨てます。
分けたら両方取れました。
③止める手段は 最初から作っておく。
動かす仕組みばかり作って 止める仕組みを後回しにしていました。暴走したときに止められないのは かなり怖いです。
僕はコードが書けません。
でも「踏んだ」「AIと直した」「同じ失敗を人がしないように残す」はできます。
これも2026年っぽい ものづくりの形だと思っています。
ここで1つ聞かせてください
もう一度書きますが DiscordからAI秘書を動かすところまでは公式の機能です。
Channels を入れれば そこは誰でもできます。
ただし Channels は今のところ research preview(実験段階)です。
問題はその先でした。
そのまま24時間つけっぱなしにすると 今日書いた3つの地雷を踏みます。
僕が作ったのは 受付係と作業係を分けて 依頼の重さで枠を変えるという中身のほうです。
これ 需要ってあるんでしょうか?
正直 僕は自分がラクしたくて組み直しただけなので 同じ所で困っている人がどれくらいいるのか見当がついていません。
ちなみに 前の構成のときに「配れる形」を一式まとめてありました。
でも今回 自分で根っこから作り直したせいで その配布キットが丸ごと古くなりました☺️
なので渡すなら 作り直したあとの構成で組み直すことになります。
ピンと来た人は この記事にコメントするか このメールにそのまま返信して「気になる」と一言もらえると嬉しいです☺️
反応を見て 需要がありそうなら 手順ごと配れる形に整えます✊
このSubstackは コードが書けない現場の人間がAIでどこまで作れるか 実証と試行錯誤を書いています。
読み逃したくない方は 購読ボタンから登録しておいてもらえると 更新時にメールが届きます☺️







