AIエージェントのトレースに秘密を残さない — OpenAI Agents SDKに学ぶ最小記録設計

AIエージェントは、最終回答だけ見ても不具合の原因が分かりません。そこで役立つのが、モデル呼び出しやツール実行を追跡する「トレース」です。

ただし、観測できる情報が増えるほど、顧客情報や社内データまで記録する危険も増えます。トレースはデバッグ機能であると同時に、もう一つのデータ保管経路です。

OpenAI Agents SDKは何を記録するのか

OpenAI Agents SDKの公式ドキュメントによると、トレースは既定で有効です。主な対象は次の通りです。

  • LLMへの入力と出力
  • 関数ツールの入力と出力
  • エージェント間の引き継ぎ
  • ガードレールの実行
  • 音声の入出力

ここで重要なのは、生成処理と関数ツールのスパンが、機密情報を含み得る入出力を保存することです。しかも trace_include_sensitive_data の既定値は True と明記されています。音声トレースも、入力・出力のPCMデータを既定で含みます。

「全部残す」と「何も残さない」の間を設計する

運用では、トレースを一律にオン・オフするより、目的別に記録範囲を決める方が現実的です。

  1. 開発環境:再現に必要な情報を残す。ただし実データではなくテストデータを使う
  2. 本番の通常処理:入力・出力本文を外し、処理時間、成功・失敗、ツール名などを中心に残す
  3. 障害調査:対象と期間を限定して詳細記録を有効にし、調査後に戻す

設計の要点は「デバッグに便利か」ではなく、「この項目がなくても原因を特定できるか」と逆向きに考えることです。顧客名やメール本文そのものではなく、匿名化したケースID、エラー種別、処理段階で足りる場合は多いでしょう。

APIのデータ設定とトレースを混同しない

OpenAIのData controls公式文書では、APIデータは明示的にオプトインしない限りモデル改善に使われず、標準の不正利用監視ログは原則として最大30日保持されると説明されています。一方、Agents SDKの公式文書は、Zero Data Retention(ZDR)を利用する組織ではトレースを使えないとしています。

つまり「API側で保存を抑えたから、トレースも同じ扱い」とは限りません。モデルAPI、エージェントのトレース、自社ログ、外部監視基盤を別々のデータ経路として棚卸しする必要があります。

考察:ログは“観測装置”ではなく“複製装置”でもある

エージェントは複数のツールをまたぐため、1件の依頼が何度もログへ複製されます。観測性を上げるほど、情報のコピー先も増える構造です。

だから本番導入の完了条件には、精度や応答速度だけでなく、次の3点を入れるべきです。

  • 記録する項目と記録しない項目
  • 閲覧できる役割と監査方法
  • 保存期間と削除手順

AIエージェントのトレースは、後から足す便利機能ではありません。最初からデータ設計の一部として扱うことで、「原因は追えるが、秘密は残しすぎない」運用に近づきます。

まとめ

  • Agents SDKのトレースは標準で有効です
  • モデルと関数ツールの入出力は、既定で機密情報を含み得ます
  • 本番では本文を減らし、識別子・結果・時間など必要最小限を残します
  • API、トレース、自社ログ、外部基盤は別々に管理します

「たくさん記録するほど安心」ではありません。良いトレースは、情報量ではなく、必要な原因へ最短でたどり着ける設計です。