Skip to main content
OpenTelemetry (OTel) を使用すると、Vercel AI SDK の Call を Weave でトレースできます。Vercel AI SDK は、AI を活用したアプリケーションを構築するための TypeScript ツールキットで、Next.js、Nuxt、SvelteKit などのフレームワークに対応しています。また、experimental_telemetry オプションによる OpenTelemetry サポートが組み込まれています。 このガイドでは、Vercel AI SDK のトレースを Weave に送信するよう OTel を設定し、Weights & Biases UI で AI SDK の Call を監視・デバッグできるようにする方法を説明します。AI SDK は Next.js と組み合わせて使用することも、スタンドアロンの Node.js アプリケーションで使用することもできます。このガイドは、Vercel AI SDK を使って AI を活用したアプリケーションを構築しており、既存のアプリケーションにトレースを追加したい開発者を対象としています。 Weave での OTel トレースの詳細については、OTel トレースを Weave に送信するを参照してください。

前提条件

始める前に、以下のセットアップを完了してください。このガイドの Next.js と Node.js のサンプルでは、どちらも同じ依存関係が必要です。
  1. 以下の Vercel および OTel ライブラリをインストールします。
  2. 以下の環境変数を設定します。
    W&B APIキーは User Settings から取得できます。

Next.js で OTel トレースを設定する

このセクションでは、Next.js アプリで Weave を設定する方法を説明します。この例はアプリ全体ではなく、インストルメンテーションの設定と、Vercel AI SDK の関数 (ここでは OpenAI の Call) に対してインストルメンテーションを呼び出す方法のみを示しています。

インストルメンテーションを設定する

Next.js アプリケーションでは、instrumentation.ts ファイルを使用して OTel を設定します。このファイルはサーバーの起動時に一度だけ実行され、AI SDK が使用するトレーサープロバイダーを設定します。 Weave を Vercel の OTel 機能と統合するには、project のルートに instrumentation.ts ファイルを作成し、次のコードを追加します。その際、resourceFromAttributes() 関数内のチーム名とプロジェクト名をご自身のものに置き換えてください。
instrumentation.ts
これにより、W&B の APIキーで認証し、Weave の OTel エンドポイントにトレースデータを送信するよう設定された OTLP エクスポーターが作成されます。

関数でテレメトリを設定する

インストルメンテーションを追加したら、AI SDK の任意の関数 Call で Vercel の experimental_telemetry オプションを使用し、OTel スパンを出力します。
route.ts
テレメトリを有効にした generateText の Call はすべて OTel スパンを生成し、それらのスパンは Weave にエクスポートされます。これで、Next.js アプリから Vercel AI SDK のトレースを Weave に送信するための設定が完了しました。

Node.js 向けに OTel トレースを設定する

Next.js を使用していない場合は、スタンドアロンの Node.js アプリケーションで OTel を直接設定できます。スタンドアロンの Node.js アプリケーションでは、エントリファイルの先頭で、AI SDK の Call より前にトレーサープロバイダーを設定してください。これにより、以降の AI SDK の Call が取得されるようになります。 前提条件を満たしていれば、追加の設定なしで次の例を実行し、スパンを生成できます。
test-app.ts
BatchSpanProcessor はスパンを非同期でフラッシュします。スタンドアロンスクリプト、サーバーレス関数、CLI ツールなど、短時間で終了するプロセスでは、すべてのスパンを確実に Weave へ送信するため、プロセスの終了前に provider.shutdown() を呼び出してください。長時間稼働するサーバー (instrumentation.ts 経由で起動する Next.js の開発サーバーなど) では、この処理は不要です。
最終更新日 2026年9月30日