# OpenAI Agent SDKの便利で実践的な使い方
🌍 エージェントの「中で何が起きているか」を可視化しましょう。組み込みトレーシングで LLM 呼び出し・ツール実行・ハンドオフ・ガードレールの全フローを追跡できます。
トレーシングはデフォルトで有効。Traces ダッシュボードでエージェントの動作を視覚的に確認し、デバッグと品質改善を加速します。
📌 タイトル:Tracing
🔗 URL:
🧩 概要
OpenAI Agent SDK の組み込みトレーシングは、エージェント実行の全ステップ(LLM 呼び出し、ツール実行、ハンドオフ、ガードレール評価)を自動的に記録します。デフォルトで有効になっており、OpenAI の Traces ダッシュボードでフローを視覚的に確認できます。`with trace("name")` で関連する複数の実行をグループ化し、`flush_traces()` でワーカー環境でのトレース送信を確実にし、`RunConfig(trace_include_sensitive_data=False)` や環境変数でプライバシーを制御できます。
🛠 使い方
`agents` から `Agent`, `Runner`, `trace` をインポートします。`Agent` を作成して ` "AIの最新トレンドは?")` で実行するだけで、トレーシングはデフォルトで自動的に有効になり、LLM 呼び出しやツール実行が記録されます。
🏗 実践的な使い方
**with trace() で関連する実行をグループ化**
複数のエージェント実行をひとつのトレースにまとめて、ワークフロー全体を俯瞰できるようにします。
`agents` から `trace` をインポートし、`with trace("Joke workflow"):` ブロック内で複数の ` 呼び出しを実行します。ジョーク生成、評価、スコアが7未満なら改善という一連のフローが、ひとつのトレースにグループ化されてダッシュボードで俯瞰できるようになります。
**flush_traces() でワーカー環境のトレース送信を確実に**
Celery/RQ/FastAPI のバックグラウンドワーカーでは、プロセス終了前にトレースを送信する必要があります。
`agents` から `flush_traces` をインポートします。Celery タスク内では ` message))` の後に `flush_traces()` を呼び出してトレースを送信します。FastAPI では `
@app.on_event("shutdown")` フックで `flush_traces()` を呼び出し、プロセス終了前のトレース送信を保証します。
**プライバシー制御で機密データを保護**
ZDR(Zero Data Retention)環境や個人情報を扱う場合のトレース制御パターンです。
` に `run_config=RunConfig(trace_include_sensitive_data=False)` を渡すと(既定値は `True`)、LLM の入出力や関数呼び出しのデータがトレースに含まれなくなります。既定値は環境変数 `OPENAI_AGENTS_TRACE_INCLUDE_SENSITIVE_DATA` でも切り替えられます。トレーシング自体を完全に無効化するには、環境変数 `OPENAI_AGENTS_DISABLE_TRACING=1` を設定するか、`RunConfig(tracing_disabled=True)` を指定します。
💡 ユースケース
📊 デフォルト有効のトレーシングで、LLM/ツール/ハンドオフ/ガードレールのフローを Traces ダッシュボードで可視化
🔗 with trace("Joke workflow") で複数のエージェント実行をグループ化し、ワークフロー全体を俯瞰
🔄 Celery/RQ/FastAPI ワーカーで flush_traces() を呼び出し、プロセス終了前のトレース送信を保証
🔒 trace_include_sensitive_data=False で医療・金融データのプライバシーを保護
⚠️ 注意点
- トレーシングはデフォルトで有効のため、意図せず機密データがトレースに含まれる可能性があります。本番環境では `trace_include_sensitive_data` の設定を確認してください。
- `flush_traces()` はブロッキング処理のため、リクエストのクリティカルパスには入れず、シャットダウンフックやタスク終了時に呼び出してください。
- トレースデータは OpenAI に送信されます。コンプライアンス要件がある場合は `OPENAI_AGENTS_DISABLE_TRACING=1` で無効化するか、カスタムプロセッサ(次セクション参照)で送信先を変更してください。
✨ 組み込みトレーシングは「設定ゼロで動く」のが最大の強みです。まずはそのままダッシュボードを確認し、ワークフローのグループ化やプライバシー設定を必要に応じて追加していきましょう!
#
OpenAIAgentSDK# #
AIAgent#