Skip to content

Commit b27bc28

Browse files
docs(tracing): add external trace providers (#123)
1 parent ce62f7c commit b27bc28

File tree

2 files changed

+53
-39
lines changed

2 files changed

+53
-39
lines changed

docs/src/content/docs/guides/tracing.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,8 @@ To customize this default setup, to send traces to alternative or additional bac
108108

109109
1. [`addTraceProcessor()`](/openai-agents-js/openai/agents-core/functions/addtraceprocessor) lets you add an **additional** trace processor that will receive traces and spans as they are ready. This lets you do your own processing in addition to sending traces to OpenAI's backend.
110110
2. [`setTraceProcessors()`](/openai-agents-js/openai/agents-core/functions/settraceprocessors) lets you **replace** the default processors with your own trace processors. This means traces will not be sent to the OpenAI backend unless you include a `TracingProcessor` that does so.
111+
112+
## External tracing processors list
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)

docs/src/content/docs/ja/guides/tracing.mdx

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,25 @@ import { Aside, Code } from '@astrojs/starlight/components';
77
import customTraceExample from '../../../../../../examples/docs/custom-trace.ts?raw';
88
import 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

1617
1. 環境変数 `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

Comments
 (0)