メインコンテンツへスキップ

instrumentOpenAIAgents

instrumentOpenAIAgents(): Promise<boolean> パッケージが利用可能な場合、OpenAI Agents に Weave のトレースを手動で登録します。 注: 通常、この関数を呼び出す必要はありません。 Weave を import すると、OpenAI Agents はモジュールローダーフックを通じて自動的にインストルメンテーションされます。この関数は、自動インストルメンテーションが機能しないエッジケース (例: 動的 import や、フックをバイパスするバンドラー) のために用意されています。 この関数は、利用側の node_modules から @openai/agents を動的に import し、TracingProcessor の登録を試みます。パッケージがインストールされていない場合は、エラーをスローせずに false を返します。

戻り値

Promise<boolean> Promise<boolean> - 登録に成功した場合は true、@openai/agents を利用できない場合は false
// ✅ 推奨: Weave をインポートするだけで、インストルメンテーションが自動的に行われます!
import * as weave from 'weave';
await weave.init('my-project');

// OpenAI Agents はフック経由で既にインストルメンテーションされています。手動セットアップは不要です
import { Agent } from '@openai/agents';
const agent = new Agent({ ... });
await agent.run(input); // Weave で自動的にトレースされます
// ⚠️ 自動フックが機能しないエッジケースでのみ必要
import { instrumentOpenAIAgents } from 'weave';

const registered = await instrumentOpenAIAgents();
if (!registered) {
  console.log('OpenAI Agents が見つかりません - トレースを有効にするには @openai/agents をインストールしてください');
}
Remarks 自動インストルメンテーションの仕組み: Weave を import すると、addCJSInstrumentation()addESMInstrumentation() を通じてモジュールローダーのフックが登録されます。その後、コードで @openai/agents を import すると、これらのフックが import を捕捉し、Weave のトレースを追加するためのパッチをモジュールに自動的に適用します。これは透過的に行われるため、特別な対応は不要です。 この関数を使用するタイミング: 自動インストルメンテーションが機能しない場合にのみ使用してください。たとえば、次のようなケースです。
  • モジュールフックをバイパスする動的 import を使用している
  • import-in-the-middle をサポートしていないバンドラーを使用している
  • インストルメンテーションを実行するタイミングを明示的に制御する必要がある
カスタム processor ロジックの代替手段: カスタムのトレース動作が必要な場合は、 createOpenAIAgentsTracingProcessor() を使用して手動で登録してください。
import { addTraceProcessor } from '@openai/agents';
import { createOpenAIAgentsTracingProcessor } from 'weave';

const processor = createOpenAIAgentsTracingProcessor();
addTraceProcessor(processor);

定義元

integrations/openai.agent.ts:674