5/13 ローンチ予定!
PiloTube

PiloTube 開発日誌

← 「ひとり社長のAI開発記」一覧へ

AIに「やり方」を渡すな、「やった結果」を渡せ

約6分で読めます

AIが毎朝の報告を読み飛ばす問題を「仕組み」で解決した話

「また読み飛ばしてる」と気づいたのは、3回目のことだった。

毎朝 PiloTube(パイロチューブ)の状態をAIに確認させる仕組みを作っていた。ところが、同じ手順を systemMessage で渡しているのに、AIが途中の工程をスキップして返してくる。1回目は「まあそういうこともある」と思った。2回目は「設定が甘かったか」と書き直した。3回目で確信した。これは構造の問題だ、と。


何をやろうとしていたか

PiloTube の開発を進める中で、「毎朝の定点観測」を自動化しようとしていた。

具体的には、こういうイメージだ。

  • DBの状態を確認する
  • エラーログを拾う
  • 前日との差分をまとめる
  • それをAIが読んで、自然言語でサマリーを返す

手作業でやれば10〜15分かかる確認作業を、朝イチで自動レポートとして受け取れるようにしたかった。一人でサービスを開発・運営していると、この「毎日の状態把握」が地味にしんどい。見落としが怖くて、確認をサボれない。だから仕組みにしたかった。

AIへの指示は systemMessage(システムプロンプト)で渡していた。「まずAをチェックして、次にBを確認して、最後にCをまとめろ」という手順書を、起動時に渡す形だ。


問題:AIは「手順書」を読んでいるようで、読んでいない

最初のうちはうまく動いていた。

ところが、何日か経つと「Bの確認が抜けている」「Cのまとめ方がおかしい」という返答が増えてきた。同じ systemMessage を渡しているのに、なぜかAIの動作がブレる。

原因を探っていくと、構造的な問題が見えてきた。

systemMessage に長い手順を書くと、AIはそれを「全部読んで実行する」のではなく、「雰囲気で解釈して動く」ことがある。特に手順が複数ステップにわたると、途中を端折ったり、順番を変えたりする。AIの挙動として「確率的にそうなる」というより、「入力の構造がそういう振る舞いを引き出している」と考えたほうが正確だ。

つまり、手順書を渡して「あとはよろしく」という設計が、そもそも甘かった。


気づき:AIに「考えさせる」から「読ませる」へ

詰まりながら考えていて、ふと思った。

「手順を渡してAIに実行させようとしているから問題が起きる。だったら、AIに渡す前に全部終わらせればいい」

AIに「DBを確認して、ログを拾って、差分を出して、まとめろ」と指示するのではなく、Pythonスクリプトが「DBを確認して、ログを拾って、差分を出して、整形した文章を作る」。AIはそれを受け取って「表示するだけ」にする。

役割分担を逆転させる発想だった。


実践:Pythonスクリプトで「整形済みテキスト」を生成する

やったことはシンプルだ。

まず、毎朝実行するPythonスクリプトを書いた。このスクリプトがやることは3つ。

1. データ取得
SupabaseのAPIを叩いて、前日のユーザー行動ログ・エラー件数・新規登録数などを取得する。

2. 差分計算と整形
前日比をスクリプト内で計算して、「昨日より+3件」「エラー率0.2%増」といった形に整形する。ここはロジックなので、AIに任せるより確実だ。

3. 文章テンプレートへの埋め込み
整形したデータを、あらかじめ用意したテンプレートに流し込んで、「読める状態のテキスト」を生成する。

出力されるのはこういうイメージだ。

【2025-07-XX 朝の定点レポート】

■ 新規登録: 12件(前日比 +3件)
■ アクティブユーザー: 87件(前日比 -2件)
■ エラー件数: 4件(前日比 +1件)
  └ 主なエラー: [auth/invalid-token] 3件

■ 所感
エラーが微増。auth系は昨日のデプロイと関連している可能性あり。要確認。

このテキストをAIに渡す。AIへの指示はシンプルになった。「このレポートを読んで、気になる点があれば指摘してください」だけだ。


結果:AIの「読み飛ばし」がゼロになった

構造を変えてから、AIの返答のブレがなくなった。

当然といえば当然で、AIに渡すのは「すでに完成した文章」だから、読み飛ばしようがない。AIがやることは「読んで反応する」だけなので、手順の解釈ミスが起きない。

さらに副次効果があった。

スクリプトのログが残る
Pythonスクリプトが整形テキストを生成するので、その出力がそのままログになる。AIの返答がおかしくても、「元データはこうだった」と遡れる。

AIへの依存度が下がる
数値の計算・差分の抽出・整形はスクリプトがやる。AIは「読んで気づきを返す」役割に絞られた。これが本来あるべき分担だと思う。

再現性が上がる
手順をAIに解釈させていたころは、毎回微妙に結果が違った。今は「スクリプトの出力 → AIの読み取り」という流れが固定されているので、安定している。


教訓:AIに「やり方」を渡すより、「やった結果」を渡せ

今回の件で、自分の中に一つ原則ができた。

AIに手順を渡して実行させるより、スクリプトが先に実行して、AIには結果だけ渡す。

systemMessage に長い手順を書くのは、「AIを信頼しすぎている」状態だ。AIは確率的に動くので、複雑な手順を毎回完璧にこなすとは限らない。特にステップが多い・条件分岐がある・データ取得が絡む、という場合は顕著だ。

一方で、Pythonスクリプトはロジックを書いた通りに動く。差分計算・データ整形・テンプレート埋め込みは、スクリプトに任せたほうが確実だ。

AIが本当に得意なのは「読んで、気づいて、言葉にする」ことだ。そこに集中させる設計にすると、AIの能力が素直に出る。


一人でサービスを開発・運営していると、「AIに任せれば楽になる」という誘惑がある。でも、AIに任せるのは「解釈が必要な部分」だけでいい。ロジックと整形はコードに任せて、AIには「人間に近い判断」だけを求める。その役割分担を意識するようになってから、AIチームとの仕事がずいぶん安定してきた。

毎朝のレポートは今も動いている。スクリプトが整形して、AIが読んで、自分が確認する。この流れが定着したことで、朝の確認作業が10分から2分に縮まった。地味だけど、これが一人でサービスを回す上での「生存戦略」だと思っている。

チャプター生成AI

URL貼るだけ。AIがチャプターを自動生成。

1

YouTubeのURLをコピーして貼る

2

「生成する」を押す

3

概要欄にコピペして完了

無料でチャプターを生成する →

月3回まで無料 · クレジットカード不要