深夜、赤いエラー表示のスタックトレースを前に、慌てず該当箇所を指でたどりながら落ち着いて原因を探ろうとしている開発者

スタックトレースをAIに読ませる|バグ調査を速くする渡し方

深夜、ビルドが通ったはずのコードが本番で落ちた。 ターミナルには、見上げるほど長いスタックトレース。とりあえず全部コピーして、AIに貼って「これ直して」——。

返ってきたのは、それらしい説明と、それらしい修正案。 でも、直らない。あるいは、直ったように見えて別の場所が壊れる。

このすれ違い、けっこうあります。 そして多くの場合、AIの賢さの問題ではなく、渡し方の問題なんです。スタックトレースを「丸ごと投げる」から、AIは足りない文脈を想像で埋め、もっともらしい的外れを返す。逆に言えば、渡し方を少し整えるだけで、AIはバグ調査のかなり心強い相棒になります。

この記事は、AIにスタックトレースを読ませてバグ調査を速くする渡し方の型をまとめたものです。長く見えますが、全部は要りません。まず効く所から拾えば回ります。

30–60秒のファストパス(最低ライン)
- まず自分で1行だけ読む:例外の種類とメッセージ、そして自分のコードが最初に出てくる行(30秒以内)
- 貼る前に絞る:全文+その「自分のコードの行」周辺のソース。無関係なライブラリ内部の深い連なりは要点だけ(30秒以内)
- 聞き方を変える:「直して」ではなく「考えられる原因を可能性順に、確認方法つきで」(10秒)
※機密(トークン・パス・個人情報・社内URL)が混ざっていたら消してから貼る。迷ったら一旦保留でOK。
結論:スタックトレースは「AIに丸投げして答えをもらうもの」ではなく、「絞って・文脈を添えて・仮説の相棒として渡すもの」。AIは読解の速度を上げてくれますが、原因を断定する裁判官ではありません。まず効くのは、①自分で例外種別と自コードの行を1点だけ見る → ②その周辺のソースと環境情報を添えて渡す → ③断定でなく「可能性順+確認方法」で聞く → ④仮説は必ず自分で1つ再現・確認する。

AIに頼るのは、手を抜くためではありません。 長いトレースの前で固まる時間を減らして、確かめる作業に集中するためです。

なぜAIのスタックトレース読解は的を外すのか

スタックトレースだけを渡すとAIが足りない文脈を想像で埋めてしまい、文脈を添えると原因に近づくことを対比した概念図

AIは、あなたの環境を見ていません。見えているのは、貼りつけた文字列だけです。だから外すときは、だいたい次のどれかです。

裏を返すと、この隙間を埋めてあげれば精度は上がります。次から、その埋め方です。

まず自分で1行だけ読む——AIに渡す前の30秒

丸投げの前に、自分で「取っかかり」を1つ掴んでおくと、AIの答えの当たり外れを見分けられるようになります。全部を読む必要はありません。見るのは2か所だけです。

①例外の種類とメッセージ

トレースの中で、エラーの型名と、その一言メッセージをまず読みます。 NullReferenceException なのか TimeoutException なのか KeyError なのか——ここで「何系の故障か」の当たりがつきます。メッセージ末尾の「〜 not found」「〜 is not defined」「connection refused」なども強いヒントです。

②自分のコードが最初に出てくる行

長いトレースの多くは、ライブラリやフレームワークの内部フレームです。そこは今は飛ばしてよくて、「自分たちが書いたファイル」が最初に登場する行を探します。多くの場合、そこが調査の入口です。

ヒント:言語によって「読む向き」が違います。上から新しい順(Python など、一番下が発生元に近いことが多い)か、下から呼び出し順か。自分の言語での並びに慣れておくと、この30秒が一気に速くなります。

この2点を掴んでおくと、AIが見当違いの行を原因にしたとき「いや、自分のコードはここで落ちてる」と軌道修正できます。

AIに渡すときのコツ——4つの手順

スタックトレースを絞り、文脈を添え、可能性順に聞き、仮説を自分で確認する4段の流れを示した手順図

手順1:何を渡すか——「絞る」けど「削りすぎない」

貼るのは、次の3点セットです。

長すぎるトレース(フレームが何十段もある)は、ライブラリ内部の深い連なりは要点だけに畳んで、自分のコードのフレームを中心に残すと読みやすくなります。逆に、途中を勝手に省略して根っこの行を落とすのは避けます。「長いから」と例外メッセージだけ貼るのが、いちばん外れやすいパターンです。

手順2:文脈を添える——AIが見ていないものを言葉にする

ここがいちばん効きます。トレースと一緒に、短くていいので次を書き添えます。

「直近で依存を上げた」「本番だけ落ちる」の一言があるだけで、AIの見立てはぐっと現実的になります。

手順3:聞き方を変える——「直して」より「可能性順に」

「これ直して」と聞くと、AIは1つの答えに飛びつきがちです。バグ調査では、候補を広げてから絞る方が速い。聞き方の例:

「確認方法つき」で聞くのがコツです。答えそのものより、次に自分が何を見ればいいかが手に入ると、調査が前に進みます。

手順4:仮説は必ず自分で1つ確認する

AIが挙げた原因は、あくまで仮説です。もっともらしくても、鵜呑みにしない。

「動かなくなった原因」と「たまたま直ったように見える変更」は別物です。なぜ直ったかを一言で説明できるところまでいけば、その修正は信頼できます。

機密を消してから貼る——地味だけど大事な一手

スタックトレースには、思っている以上に中身が写り込みます。ファイルの絶対パス(=ユーザー名やディレクトリ構成)、接続文字列、トークンやAPIキー、リクエストに含まれた個人情報、社内URLやホスト名——。

外部のAIサービスに貼る前に、ここはさっと伏せます。

「原因の切り分けに要らない情報は、そもそも渡さない」が基本です。何をどこまで渡してよいかの線引きは、社内データをAIに渡すときの線引きにまとめています。

ありがちな落とし穴

明日からやること(小さく始める3つ)

  1. トレースを貼る前に、例外の種類・メッセージ自分のコードが最初に出る行の2点だけ自分で読む
  2. 貼るときは、全文+該当ソース+「言語/版・何をして・直近の変更」をワンセットで渡す
  3. 「直して」ではなく「可能性が高い順に原因と確認方法を」と聞き、1つは自分で再現して確かめる

この3つだけでも、的外れな答えに振り回される時間はかなり減ります。慣れたら、ログの絞り込みや最小再現の作り方を足していけば十分です。

スタックトレース×AI 調査チェックリスト

「関係する所だけ見る」が前提です。全部に○は要りません。いま扱っている状況に関わる所だけ、さっと確認します。

貼る前(30秒)

渡し方

聞き方

受け取ったあと

最後に

長いスタックトレースの前で固まる夜は、誰にでもあります。 AIは、その連なりを一緒に読んでくれる相棒になります。ただし、丸投げの相手ではなく、絞って・文脈を添えて・可能性を一緒に広げる相棒として。最後に原因を確かめるのは、やっぱり現場を知っている人の役目です。

原因を突き止めてテストが通り、ほっとした表情で次の作業へ落ち着いて進もうとしている開発者

今日ひとつ、「貼る前に例外の型と自コードの行を読む」ができたなら、それはもう、調査の主導権を自分の側に取り戻す確かな一歩です。

よければ、こちらも