問い合わせのメールを受けて、AI機能の過去の記録をさかのぼろうとモニターを見つめながら考え込む開発担当者

AIの利用ログ・監査ログの残し方|「なぜこう答えた?」に後から答える設計

月曜の朝、上司からこんなメッセージが届きます。

「お客様から、問い合わせ窓口のAIに"返品はできません"と言われたって連絡が来てる。うちは返品できるよね? 何を聞かれて、何て答えたのか見せてもらえる?」

管理画面を開いて、ログを探します。でも、残っているのは「200 OK」と処理時間だけ。お客様が何を書いたのかも、AIが何を返したのかも、そのときどのプロンプトで動いていたのかも、分かりません。

「たぶん、こういう流れだったと思います」としか言えない。この、足元が見えない心細さ。AI機能を本番に出した人なら、一度は想像したことがあるはずです。

先に言っておくと、ここで記録が足りなかったのは、あなたの手落ちとは限りません。AI機能は、ふつうのログ設計の感覚のままだと、肝心なところが残らない作りになりやすいんです。この記事では、AIの利用ログ・監査ログを「後から説明できる」最小限の形で残す設計を、一緒に整理します。

結論:AIの利用ログ・監査ログは、1回のAI呼び出しごとに①誰が・いつ(呼び出しの身元)②何を渡したか(入力と、プロンプト・モデルの版)③何が返ったか(出力と、止めた・ぼかした等の結果)④人がどうしたか(採用・修正・却下)の4点を、同じIDでつないで残します。あわせて、残さないもの(パスワード・不要な個人情報)と、誰が見られるか・いつ消すかを先に決めておきます。全部を完璧にしなくて大丈夫です。まずは「プロンプトとモデルの版」と「人がどうしたか」の2つを今のログに足すだけで、「なぜこう答えた?」に答えられる場面がぐっと増えます。

一度に全部そろえなくて大丈夫です。 まずは、いまのAI機能の呼び出し1回ぶんで、何が残っていて、何が残っていないかを見てみるところから始めましょう。

AIの利用ログが「残っているのに、たどれない」のはなぜか

ふつうのWebアプリなら、「同じ入力なら同じ結果」が前提です。だから、エラーと処理時間さえ残っていれば、あとは手元で再現して原因を追えます。

AI機能は、この前提が崩れます。

つまり、AI機能でたどれなくなる原因は、ログの「量」ではなく「何で答えが決まったか」が残っていないことにあります。障害調査のためのアプリログ(AIにログ出力の不足を指摘させる)や、効果を測るための集計ログ(AI機能の効果測定)とは、少し目的が違うんです。

ここで言う監査ログは、「あの1件について、あとから第三者に説明できる記録」のこと。犯人探しの道具ではなく、チームとお客様を守るための記録だと考えてください。

具体例——こんな場面で、記録の有無が分かれる

たとえば、こんな場面です。

どれも、大きな事故になる前の小さな「あれ?」です。記録があれば、その「あれ?」を数十分で閉じられます。記録がないと、何日も「たぶん」が続きます。

残す項目は「誰が・何を渡し・何が返り・人がどうしたか」の4点

AIの1回の呼び出しについて、誰が、何を渡し、何が返り、人がどうしたかの4つの記録を1本の線でつないで残す考え方を示した図
1回のAI呼び出しを、4つの記録で1本の線にする。同じIDでつながっていれば、後からたどれる

AIの1回の呼び出しごとに、次の4点を残します。ポイントは、4点を同じID(リクエストID)でつなぐことです。別々の場所に残っていても、IDでつながっていれば1本の線としてたどれます。

① 誰が・いつ(呼び出しの身元)

② 何を渡したか(入力と、答えを決めた材料)

③ 何が返ったか(出力と結果)

④ 人がどうしたか(採用・修正・却下)

①〜③は、AIを呼び出す処理の前後で自動で残せます。④だけは、画面のボタン(「この下書きを使う」「直して送る」「使わない」)と記録を結びつけるひと手間が要ります。ただ、ここがあるかどうかで、「AIが間違えた」と「確認の流れで漏れた」を分けられるかが決まります。手間に見合う、いちばん効く1行です。

残さないもの・見られる人・消す時期を先に決める

ログは、たくさん残すほど安心……とは限りません。AIの入力欄には、利用者が思いがけないものを貼りつけます。残したログそのものが、守るべき情報の置き場所になるからです。

だから、残す項目と同じくらい、次の3つを先に決めておきます。

もうひとつ、利用者への伝え方も忘れずに。「入力内容は品質向上と問い合わせ対応のために一定期間記録します」のように、記録していることを利用規約や画面の注意書きで伝えておくと、後から気まずくなりません。文言は、法務や担当部署と一緒に決めてください。

AIに設計の抜けを確認してもらうプロンプト

いまのログ設計に抜けがないか、AIに壁打ちしてもらうのもひとつの手です。設計の要点だけを渡して、4点の観点で足りないものを挙げてもらいます(実際のログデータや個人情報は貼らずに)。

社内向けの業務システムに、AIの回答機能を組み込んでいます。
後から「この1件で、AIが何を受け取り、何を返し、人がどうしたか」を
説明できるよう、利用ログ・監査ログの項目を見直したいです。

【いま残している項目】
- リクエストID、日時、利用者ID、HTTPステータス、処理時間

【前提】
- 利用者の入力には、個人情報が含まれることがある
- プロンプトはリポジトリで版管理している
- AIの出力は、担当者が確認してから外部に送る

次の4つの観点で、足りない項目と、残さないほうがよい項目を挙げてください。
1. 誰が・いつ  2. 何を渡したか  3. 何が返ったか  4. 人がどうしたか
最後に、保存期間とアクセス権について、関係部署に確認すべき論点を挙げてください。

返ってきた案は、そのまま採用せず、自分たちの業務で本当に後から見る場面があるかで1つずつ選びます。保存期間などの決めごとは、AIの答えを結論にせず、社内の担当と決めてください。

明日からやること(まずこの3つ)

  1. 呼び出し1回ぶんのログを、実際に開いて眺める:上の4点のうち、残っているもの・残っていないものに印をつけます。10分あれば終わります。
  2. 「プロンプトの版」と「モデル名」を1行足す:AIを呼び出す処理の直前に、版とモデル名をログへ出すだけです。いちばん小さな変更で、いちばん「なぜ?」に効きます。
  3. 伏せ字にするものを、チームで3つだけ決める:パスワード、APIキー、カード番号など。ログに書く前に伏せる処理を入れる場所も、あわせて決めます。

「人がどうしたか(④)」は、画面の改修が要るので、次のスプリントの候補にメモしておくくらいで十分です。

AIの利用ログ・監査ログ設計チェックリスト

全部に○が要るわけではありません。いまのAI機能に関係するところだけで大丈夫です。

① 誰が・いつ

② 何を渡したか

③ 何が返ったか

④ 人がどうしたか

⑤ 守り方

この記事のまとめ

AI機能は、同じ入力でも答えが変わり、答えを決める材料がコードの外にあります。だから、ふつうのログのままだと、いちばん聞かれる「なぜこう答えた?」に答えられません。

残すのは、誰が・何を渡し・何が返り・人がどうしたかの4点。それを同じIDでつなぐ。そして、残さないもの・見られる人・消す時期を、先に決めておく。全部を一度にそろえなくても、プロンプトの版とモデル名を1行足すだけで、明日からの「たぶん」はひとつ減ります。

記録をたどって原因が分かり、上司に落ち着いて説明できてほっとした表情を見せている開発担当者
後からたどれる記録があれば、「たぶん」ではなく「こうでした」と言える

ログの設計は、目立たない仕事です。うまくいっている間は、誰にも気づかれません。 でも、いつか「あの1件、何があったの?」と聞かれた日に、あなたが残した1行が、お客様とチームを守ります。まずは今日、ログを1回ぶん開いてみるところから始めてみましょう。

よければ、こちらも

関連用語