@@ -7,24 +7,25 @@ import { Aside, Code } from '@astrojs/starlight/components';
77import customTraceExample from ' ../../../../../../examples/docs/custom-trace.ts?raw' ;
88import cloudflareWorkers from ' ../../../../../../examples/docs/tracing/cloudflareWorkers.ts?raw' ;
99
10- Agents SDK にはビルトインの トレーシング が含まれており、エージェント実行中の LLM 生成、ツール呼び出し、ハンドオフ、ガードレール、さらにはカスタムイベントまで網羅的に記録します。[ Traces ダッシュボード] ( https://platform.openai.com/traces ) を使用すると、開発時や本番環境でワークフローをデバッグ、可視化、監視できます。
10+ Agents SDK にはトレーシング機能が組み込まれており、エージェント実行中に発生するイベント( LLM 生成、ツール呼び出し、ハンドオフ、ガードレール、さらにはカスタムイベントまで)を網羅的に記録します。
11+ [ Traces ダッシュボード] ( https://platform.openai.com/traces ) を使用すると、開発中および本番環境でワークフローをデバッグ・可視化・監視できます。
1112
1213<Aside type = " note" >
1314
14- トレーシングはデフォルトで有効です 。無効化する方法は 2 つあります。
15+ トレーシングはデフォルトで有効になっています 。無効化する方法は 2 つあります。
1516
16171 . 環境変数 ` OPENAI_AGENTS_DISABLE_TRACING=1 ` を設定してグローバルに無効化する
17- 2 . 1 回の実行だけ無効化したい場合は [ ` RunConfig.tracingDisabled ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#tracingdisabled ) に ` true ` を設定する
18+ 2 . [ ` RunConfig.tracingDisabled ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#tracingdisabled ) を ` true ` に設定して単一の実行で無効化する
1819
19- ** _ OpenAI の API を Zero Data Retention (ZDR) ポリシーで利用している組織では 、トレーシングは利用できません。_ **
20+ ** _ Zero Data Retention( ZDR )ポリシーで OpenAI の API を利用する組織では 、トレーシングは利用できません。_ **
2021
2122</Aside >
2223
2324## エクスポートループのライフサイクル
2425
25- 多くの環境では 、トレースは一定間隔で自動的にエクスポートされます。ブラウザや Cloudflare Workers ではこの機能はデフォルトで無効になっています。キューに溜まりすぎた場合はエクスポートされますが、定期的にはエクスポートされません。そのため、コードのライフサイクルの一部として ` getGlobalTraceProvider().forceFlush() ` を呼び出して手動でエクスポートしてください。
26+ ほとんどの環境では 、トレースは一定間隔で自動的にエクスポートされます。しかしブラウザや Cloudflare Workers では、この機能はデフォルトで無効化されています。キューに溜まり過ぎた場合にはエクスポートされますが、定期的には行われません。その場合、コードのライフサイクル内で ` getGlobalTraceProvider().forceFlush() ` を呼び出して手動でエクスポートしてください。
2627
27- たとえば Cloudflare Worker では、コードを ` try/catch/finally ` ブロックにラップし 、` waitUntil ` とともに force flush を呼び出して、ワーカー終了前にトレースがエクスポートされるようにします 。
28+ たとえば Cloudflare Worker では、コードを ` try/catch/finally ` ブロックでラップし 、` waitUntil ` と併用して ` forceFlush ` を呼び出すことで、ワーカー終了前にトレースを確実にエクスポートできます 。
2829
2930<Code
3031 lang = " typescript"
@@ -34,73 +35,81 @@ Agents SDK にはビルトインの トレーシング が含まれており、
3435
3536## トレースとスパン
3637
37- - ** トレース (Trace) ** はワークフローの単一のエンドツーエンド操作を表します。トレースはスパンで構成され、次のプロパティを持ちます :
38- - ` workflow_name ` : 論理的なワークフローまたはアプリ名 。例: "Code generation" や "Customer service"
39- - ` trace_id ` : トレースの一意 ID。指定しない場合は自動生成。形式は ` trace_<32_alphanumeric> `
40- - ` group_id ` : 任意のグループ ID。同じ会話からの複数トレースをリンクするために使用。例: チャットスレッド ID
41- - ` disabled ` : ` true ` の場合、このトレースは記録されない
42- - ` metadata ` : トレースに付与する任意のメタデータ
43- - ** スパン (Span) ** は開始時刻と終了時刻を持つ操作を表します。スパンは以下を持ちます :
38+ - ** トレース** は 1 つの「ワークフロー」のエンドツーエンドの操作を表し、スパンで構成されます。主なプロパティは次のとおりです :
39+ - ` workflow_name ` : 論理的なワークフローやアプリ名 。例: "Code generation" や "Customer service"
40+ - ` trace_id ` : トレースの一意 ID。指定しない場合は自動生成。形式は ` trace_<32_alphanumeric> `
41+ - ` group_id ` : 省略可。同一会話内の複数トレースを紐付ける ID。例としてチャットスレッド ID など
42+ - ` disabled ` : ` true ` の場合、このトレースは記録されません
43+ - ` metadata ` : トレースに付与する追加メタデータ
44+ - ** スパン** は開始時刻と終了時刻を持つ操作を表します。主なプロパティは次のとおりです :
4445 - ` started_at ` と ` ended_at ` タイムスタンプ
4546 - 所属するトレースを示す ` trace_id `
46- - 親スパンを指す ` parent_id ` ( 存在する場合)
47- - スパンに関する情報を含む ` span_data ` 。たとえば ` AgentSpanData ` はエージェント情報、` GenerationSpanData ` は LLM 生成情報など
47+ - 親スパンを示す ` parent_id ` ( 存在する場合)
48+ - ` span_data ` : スパンに関する情報 。たとえば ` AgentSpanData ` はエージェント情報、` GenerationSpanData ` は LLM 生成情報など
4849
4950## デフォルトのトレーシング
5051
51- デフォルトでは SDK が次をトレースします:
52+ デフォルトで SDK は以下をトレースします。
5253
53- - ` run() ` または ` Runner.run() ` 全体を 1 つの ` Trace ` でラップ
54+ - ` run() ` または ` Runner.run() ` 全体を ` Trace ` でラップ
5455- エージェントが実行されるたびに ` AgentSpan ` でラップ
5556- LLM 生成を ` GenerationSpan ` でラップ
56- - 関数ツール呼び出しをそれぞれ ` FunctionSpan ` でラップ
57+ - 関数ツール呼び出しを ` FunctionSpan ` でラップ
5758- ガードレールを ` GuardrailSpan ` でラップ
5859- ハンドオフを ` HandoffSpan ` でラップ
5960
60- トレース名はデフォルトで "Agent workflow" です。` withTrace ` を使用してこの名前を設定するか 、[ ` RunConfig.workflowName ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#workflowname ) で名前やその他のプロパティを設定できます 。
61+ トレース名はデフォルトで "Agent workflow" です。` withTrace ` を使用して名前を設定するか 、[ ` RunConfig.workflowName ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#workflowname ) で名前やその他プロパティを設定できます 。
6162
62- さらに、[ カスタムトレースプロセッサ ] ( #custom-tracing-processors ) を設定して、(置き換えまたは追加の送信先として)他の場所にトレースを送信できます 。
63+ さらに、[ カスタムトレーシングプロセッサー ] ( #custom-tracing-processors ) を設定して別の宛先へトレースを送信(置き換えや追加送信)することも可能です 。
6364
6465### 音声エージェントのトレーシング
6566
66- デフォルトの OpenAI Realtime API とともに ` RealtimeAgent ` と ` RealtimeSession ` を使用している場合、 ` RealtimeSession ` で ` tracingDisabled: true ` を設定するか、 ` OPENAI_AGENTS_DISABLE_TRACING ` 環境変数を使用して無効化しない限り、トレーシングは自動的に Realtime API 側で行われます 。
67+ ` RealtimeAgent ` と ` RealtimeSession ` を OpenAI Realtime API のデフォルト設定で使用する場合、トレーシングは Realtime API 側で自動的に行われます。 ` RealtimeSession ` で ` tracingDisabled: true ` を指定するか、環境変数 ` OPENAI_AGENTS_DISABLE_TRACING ` を設定すると無効化できます 。
6768
68- 詳細は [ 音声エージェントの概要] ( /openai-agents-js/ja/ guides/voice-agents ) を参照してください。
69+ 詳細は [ 音声エージェントの概要] ( /openai-agents-js/guides/voice-agents ) を参照してください。
6970
70- ## 高レベルのトレース
71+ ## 上位レベルのトレース
7172
72- 複数回の ` run() ` 呼び出しを 1 つのトレースにまとめたい場合があります。その場合はコード全体を ` withTrace() ` でラップします。
73+ 複数回の ` run() ` 呼び出しを 1 つのトレースにまとめたい場合は、コード全体を ` withTrace() ` でラップします。
7374
7475<Code lang = " typescript" code = { customTraceExample } />
7576
76- 1 . 2 回の ` run ` 呼び出しは ` withTrace() ` でラップされているため、個別のトレースを作成せず全体トレースの一部になります 。
77+ 1 . 2 回の ` run ` 呼び出しが ` withTrace() ` でラップされているため、それぞれが個別のトレースを作成せず、全体トレースに含まれます 。
7778
7879## トレースの作成
7980
80- [ ` withTrace() ` ] ( /openai-agents-js/openai/agents-core/functions/withtrace/ ) 関数を使ってトレースを作成できます 。あるいは ` getGlobalTraceProvider().createTrace() ` で手動で新しいトレースを作成し、それを ` withTrace() ` に渡すことも可能です。
81+ [ ` withTrace() ` ] ( /openai-agents-js/openai/agents-core/functions/withtrace/ ) 関数を使用してトレースを作成できます 。あるいは ` getGlobalTraceProvider().createTrace() ` でトレースを手動作成し、 ` withTrace() ` に渡すことも可能です。
8182
82- 現在のトレースは [ Node.js ` AsyncLocalStorage ` ] ( https://nodejs.org/api/async_context.html#class-asynclocalstorage ) または各環境のポリフィルを通じて追跡されます。これにより並行処理でも自動的に機能します 。
83+ 現在のトレースは [ Node.js の ` AsyncLocalStorage ` ] ( https://nodejs.org/api/async_context.html#class-asynclocalstorage ) (および各環境のポリフィル)で管理されるため、並行実行でも自動的に動作します 。
8384
8485## スパンの作成
8586
86- ` createGenerationSpan ()` や ` createFunctionSpan ()` などの ` create*Span ()` メソッドを使ってスパンを作成できます。一般的には手動でスパンを作成する必要はありません。カスタムスパンを追跡するための [ ` createCustomSpan() ` ] ( /openai-agents-js/openai/agents-core/functions/createcustomspan/ ) も用意されています 。
87+ ` create*Span ()` (例: ` createGenerationSpan ()` 、 ` createFunctionSpan ()` など)メソッドでスパンを作成できますが、通常は手動で作成する必要はありません。カスタムスパン情報を追跡するために [ ` createCustomSpan() ` ] ( /openai-agents-js/openai/agents-core/functions/createcustomspan/ ) も利用できます 。
8788
88- スパンは自動的に現在のトレースに属し、最も近い現在のスパンの下にネストされます。これも [ Node.js ` AsyncLocalStorage ` ] ( https://nodejs.org/api/async_context.html#class-asynclocalstorage ) または各環境のポリフィルで追跡されます 。
89+ スパンは現在のトレースに自動的に紐付けられ、最近のスパンを親としてネストされます。この仕組みも [ Node.js の ` AsyncLocalStorage ` ] ( https://nodejs.org/api/async_context.html#class-asynclocalstorage ) で実装されています 。
8990
90- ## 機微なデータ
91+ ## 機微データ
9192
92- 一部のスパンは機微なデータを記録する場合があります 。
93+ 特定のスパンでは機微データが記録される可能性があります 。
9394
94- ` createGenerationSpan() ` は LLM 生成の入出力を、` createFunctionSpan() ` は関数呼び出しの入出力を保存します。これらに機微なデータが含まれる可能性があるため 、[ ` RunConfig.traceIncludeSensitiveData ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#traceincludesensitivedata ) で記録を無効化できます。
95+ ` createGenerationSpan() ` は LLM 生成の入出力を、` createFunctionSpan() ` は関数呼び出しの入出力を保存します。これらに機微データが含まれる場合は 、[ ` RunConfig.traceIncludeSensitiveData ` ] ( /openai-agents-js/openai/agents-core/type-aliases/runconfig/#traceincludesensitivedata ) で記録を無効化できます。
9596
96- ## カスタムトレーシングプロセッサ
97+ ## カスタムトレーシングプロセッサー
9798
98- トレーシングの高レベルアーキテクチャは次のとおりです:
99+ トレーシングの高レベル構成は以下のとおりです。
99100
100- - 初期化時にグローバルな [ ` TraceProvider ` ] ( /openai-agents-js/openai/agents-core/classes/traceprovider ) を作成し、これは [ ` getGlobalTraceProvider() ` ] ( /openai-agents-js/openai/agents-core/functions/getglobaltraceprovider/ ) からアクセスできます
101- - ` TraceProvider ` は [ ` BatchTraceProcessor ` ] ( /openai-agents-js/openai/agents-core/classes/batchtraceprocessor/ ) で構成され、バッチで [ ` OpenAITracingExporter ` ] ( /openai-agents-js/openai/agents-openai/classes/openaitracingexporter/ ) にトレース/スパンを送信し、OpenAI バックエンドへバッチエクスポートします
101+ - 初期化時にグローバル [ ` TraceProvider ` ] ( /openai-agents-js/openai/agents-core/classes/traceprovider ) を作成し、[ ` getGlobalTraceProvider() ` ] ( /openai-agents-js/openai/agents-core/functions/getglobaltraceprovider/ ) からアクセス
102+ - ` TraceProvider ` には [ ` BatchTraceProcessor ` ] ( /openai-agents-js/openai/agents-core/classes/batchtraceprocessor/ ) を設定し、バッチで [ ` OpenAITracingExporter ` ] ( /openai-agents-js/openai/agents-openai/classes/openaitracingexporter/ ) にトレース/スパンを送信
103+ - ` OpenAITracingExporter ` が OpenAI バックエンドへバッチ送信
102104
103- このデフォルト設定をカスタマイズして別のバックエンドへ送信したり、エクスポータの挙動を変更したりする場合は、次の 2 つの方法があります:
105+ このデフォルト構成をカスタマイズし、他のバックエンドへトレースを送信したりエクスポーター挙動を変更したりするには次の 2 つの方法があります。
104106
105- 1 . [ ` addTraceProcessor() ` ] ( /openai-agents-js/openai/agents-core/functions/addtraceprocessor ) を使用して ** 追加** のトレースプロセッサを登録し、トレース/スパンを受け取って独自処理を行う(OpenAI バックエンドへの送信はそのまま)
106- 2 . [ ` setTraceProcessors() ` ] ( /openai-agents-js/openai/agents-core/functions/settraceprocessors ) を使用してデフォルトのプロセッサを ** 置き換え** る。OpenAI バックエンドへ送信したい場合は、その機能を持つ ` TracingProcessor ` を含める必要があります
107+ 1 . [ ` addTraceProcessor() ` ] ( /openai-agents-js/openai/agents-core/functions/addtraceprocessor )
108+ 既存構成に ** 追加** でトレースプロセッサーを追加します。OpenAI バックエンドへ送信しつつ、独自処理も行いたい場合に使用します。
109+ 2 . [ ` setTraceProcessors() ` ] ( /openai-agents-js/openai/agents-core/functions/settraceprocessors )
110+ デフォルトのプロセッサーを ** 置き換え** ます。OpenAI バックエンドへ送信したい場合は、その機能を持つ ` TracingProcessor ` を含めてください。
111+
112+ ## 外部トレーシングプロセッサー一覧
113+
114+ - [ AgentOps] ( https://docs.agentops.ai/v2/usage/typescript-sdk#openai-agents-integration )
115+ - [ Keywords AI] ( https://docs.keywordsai.co/integration/development-frameworks/openai-agents-sdk-js )
0 commit comments