createOtelExtension インテグレーションを使用して、Pi のセッション、LLM Call、ツール実行を自動的にトレースします。このページでは、Pi アプリケーションで Weave のトレースを有効にして、エージェントの動作を観察し、run をデバッグし、トークン使用量とコストを分析する方法を説明します。
前提条件
Pi は TypeScript および Node.js 向けのフレームワークで、Python 版はありません。Pi を使用するには ESM モジュールシステムが必要です。project の
package.json で "type": "module" を使用するか、TypeScript を ESM 形式でコンパイルしてください。CommonJS の project ではエラーが発生します。ESM project のセットアップの詳細については、TypeScript SDK インテグレーションを参照してください。パッケージのインストール
Weave、Pi、Node のタイプ定義をローカル project の依存関係としてインストールします:Pi のプロンプトと応答をトレースする
次の例では、Pi の単一のプロンプトと応答をトレースするために必要な最小限の設定を示します。エージェントセッションを作成する前にweave.init() を呼び出し、createOtelExtension() を拡張機能のファクトリとして渡します。Weave は、会話、各プロンプトと応答のサイクル (invoke_agent) 、個々の LLM Call (chat) 、ツール実行 (execute_tool) という、エージェントのライフサイクル全体をトレースします。SessionManager.inMemory() はセッション ID を自動的に生成します。
[FILENAME] を TypeScript ファイルの名に置き換え、tsx でスクリプトをコンパイルして実行します:
https://forge.coreweave.com/wandb/[YOUR-TEAM]/[YOUR-PROJECT]/weave/agents で表示されます。Weave は、アプリケーションのすべての run について、Pi のセッション、LLM Call、およびツール実行を取得します。
次のステップ
この例をマルチターンの会話にするには、プロンプトを追加します。Weave はsession.prompt() への各 Call を個別の invoke_agent スパンとしてトレースし、それらはすべて単一のルートスパンの下にネストされます。エージェントはプロンプト間でコンテキストを自動的に保持します。
コードを実行すると、Agents タブに、ネストされた LLM Call、ツール実行、トークン使用量、コストを含むマルチターンのタイムライン全体が表示されます。