Skip to main content
CoreWeave Forge plugin for Codex は、Codex のターンを自動的にトレースし、構造化データを Agent Lens に送信します。Codex のワークフローを変更しなくても、すべてのモデルの Call とツール実行がログされます。これらのトレースを使用すると、セッションのデバッグ、ツールの使用状況の監査、run をまたいだトークン使用量やレイテンシーの監視を行えます。 このプラグインは、Codex 自体が出力するロールアウトセッションファイル (~/.codex/sessions/**/rollout-*.jsonl) を読み取ってスパンを再構築します。ターンが終了すると Stop フックがデタッチされたコレクターを起動するため、Codex がネットワーク処理を待つことはありません。同じ Codex セッション内のターンは会話 ID を共有するため、Agent Lens では 1 つの会話としてまとめて表示されます。
デフォルトでは、このプラグインはスパンの内容を取得します。対象には、プロンプト、モデルの応答と推論、ツール呼び出しの引数、ツール結果、作業ディレクトリが含まれます。ツール結果には、シェルコマンド、コマンドの出力、ファイルの内容が含まれます。このデータは Agent Lens インスタンスに送信されます。個人を特定できる情報 (PII) のスクラブや機密データのマスキングには対応していません。構造、トークン使用量、モデル、タイミングのみを送信し、プロンプト、コード、出力を送信しないようにするには、FORGE_CODEX_INCLUDE_CONTENT=false を設定してください。詳しくは、コンテンツの取得をオフにするを参照してください。セキュリティ要件やコンプライアンス要件により、このデータを Agent Lens に送信できない場合は、このプラグインをインストールしないでください。

前提条件

  • macOS または Linux。Windows はサポートされていません。
  • Node.js v20.6 以降。
  • フックとロールアウトのログ記録を有効にした OpenAI Codex CLI。codex --ephemeral はロールアウトファイルを書き出さないため、サポートされていません。
  • CoreWeave Forge アカウントと Forge API キー。
  • トレースの送信先となる Agent Lens project ([YOUR-TEAM]/[YOUR-PROJECT]) 。

プラグインをインストールする

1

パッケージをインストールする

このプラグインは、Weave ガイドで説明している weave-codex プラグインとは別のものです。パッケージ名は @coreweave/forge-agent-lens-for-codex で、コマンド、環境変数、設定ディレクトリには forge-agent-lens-for-codex および FORGE_ という名前を使用します。weave-codex をインストール済みの場合は、2 つのプラグインが重複したトレースを送信しないよう、このプラグインをインストールする前に weave-codex uninstall と npm uninstall -g weave-codex を実行してください。FORGE_TRACE_PROJECT には、WEAVE_PROJECT に使用していた値を設定します。このプラグインは weave-codex の設定を読み取りません。
2

project と APIキーを設定する

[YOUR-TEAM]/[YOUR-PROJECT] を Agent Lens の project に、[YOUR-API-KEY] を APIキーに置き換えてから、エクスポートします。
WANDB_API_KEY を設定する代わりに wandb login を実行することもできます。プラグインが各設定を解決する仕組みについては、設定リファレンスを参照してください。
3

Stop フックをインストールする

このコマンドは Stop フックを ~/.codex/hooks.json にマージし、元のファイルを一度だけ hooks.json.bak にバックアップします。また、既存の Codex セッションはスキップされるため、Agent Lens に送信されるのはインストール後に実行したターンのみです。過去の履歴を明示的に送信するには、過去のセッションを収集するを参照してください。
4

Codex でフックを承認する

Codex では、新しく追加されたフックは承認するまで実行されません。
  1. ターミナルを開いて次のコマンドを実行します。
  2. シェルではなく、Codex の対話型画面で次のように入力します。
  3. Stop イベントで Forge Agent Lens フックを選択し、有効化または信頼します。
一回限りのオートメーション実行には、Codex の --dangerously-bypass-hook-trust フラグも使用できます。forge-agent-lens-for-codex status を実行して、フックがインストールされ、プラグインが ready になっていることを確認します。
これで、Codex を通常どおり使用するだけで、完了した各ターンが Agent Lens に送信されます。

Agent Lens で Codex のトレースを表示する

Codex セッションを 1 回以上実行したら、Agent Lens UI で project を開きます。
  1. CoreWeave Forge にアクセスし、プロダクト メニューから Agent Lens を選択して、サイド メニュー上部の project セレクターで対象の project を選択します。
  2. サイド メニューで Conversations を選択します。
  3. 会話を選択すると、ターンの階層全体を確認できます。
Conversations タブの詳細については、エージェントのアクティビティを表示するを参照してください。 このプラグインは、GenAI セマンティック規約に従って、Codex のターンごとに 1 つの OTEL トレースを出力します。 スパンのタイムスタンプはロールアウト ファイルから取得されるため、所要時間には実際の実行時間が反映されます。各ターンは 1 回だけ送信されます。エクスポートに失敗した場合、プラグインは次に Stop フックが実行されたときにそのターンを再送信します。

既知の制限事項

  • codex(対話型 TUI)および codex exec コマンドがサポートされています。codex mcp、app-server や API との直接のセッション、および Stop イベントが発生しないまま中断されたターンは対象外です。
  • 起動されたサブエージェントは、ツールスパンとしてのみ表示されます。サブエージェント個別のロールアウトファイルはネストされたトレースとして再構築されないため、サブエージェント自身のモデルの Call やツール実行は取得されません。
  • 一部の codex exec 環境では Stop フックが実行されません。詳しくは、プラグインの README の Headless runs and explicit collection を参照してください。

設定リファレンス

このセクションでは、プラグインの動作をカスタマイズするための設定を一覧で示します。状態、設定、ログファイルは ~/.forge-agent-lens-for-codex/ に保存されます (settings.json と logs/collector.log を含みます) 。FORGE_CODEX_HOME は、分離された開発環境またはテスト環境でのみ設定してください。 Codex がプロキシまたはブリッジを経由して別のモデルプロバイダーにリクエストを送信する場合は、FORGE_CODEX_PROVIDER_NAME を設定してください。プラグインはこの値をモデルのスパンに記録します。

認証情報の解決順序

このプラグインが APIキーを settings.json に書き込むことはありません。キーは次の順序で検索されます。
  1. WANDB_API_KEY 環境変数
  2. api.wandb.ai の ~/.netrc エントリ (WANDB_BASE_URL を設定している場合は、そのホストのエントリ)
project およびその他の設定では、環境変数、settings.json、デフォルトの順に優先されます。 トレースサーバーとトランスポートは Forge SDK によって解決されます。カスタムデプロイメントを使用する場合は、WANDB_BASE_URL を設定します。トレースサーバーを明示的に上書きするには、WF_TRACE_SERVER_URL を設定します。

コンテンツの取得を無効にする

FORGE_CODEX_INCLUDE_CONTENT=false を設定すると、プロンプト、アシスタントの出力、推論、ツールの引数と結果、および作業ディレクトリが省略されます。スパンには、モデル名、トークン使用量、タイミング、ツール名、Call ID、MCP サーバー名が引き続き記録されます。 対話型の Stop フックで収集する場合は、代わりに ~/.forge-agent-lens-for-codex/settings.json で include_content を false に設定してください。codex コマンドにのみ設定した変数は、すでに実行中の Codex アプリサーバーが実行するフックには反映されない場合があるため、ファイルで設定するほうが確実です。フックプロセスの環境変数は設定ファイルよりも優先されるため、その環境で FORGE_CODEX_INCLUDE_CONTENT=true が設定されていないことを確認してください。この変数が未設定の場合、プラグインは settings.json の値を使用します。forge-agent-lens-for-codex collect を明示的に実行する場合は、環境変数で設定する方法が確実です。

過去のセッションを収集する

collect --all は明示的なバックフィルです。すべてのロールアウトセッションから、まだエクスポートされていないターンを送信します。カーソルのないロールアウトは先頭から読み取られるため、このコマンドを実行すると、プラグインのインストール前に作成された履歴も送信されることがあります。
結果を JSON 形式で送信するには、--json を追加します。

プラグインのステータスを確認する

プラグインのステータスの確認や問題のトラブルシューティングには、次のコマンドを使用します。
出力には、プラグインのバージョン、フックがインストールされているかどうか、解決された project、APIキーが解決されたかどうか、プロバイダー、content と debug の設定、ログのファイルパス、見つかったロールアウトファイルの数、ステータスが表示されます。このコマンドが APIキーを表示することはありません。--json を付けると、同じ内容を JSON 形式で出力できます。 Agent Lens にターンが表示されない場合は、コレクターのログを確認してください。

トラブルシューティング

以下のセクションでは、よくある問題とその解決方法について説明します。問題の診断には、主に ~/.forge-agent-lens-for-codex/logs/collector.log にあるコレクターのログを使用します。プラグインは、debug の設定に関係なく、常にエラーをログします。

Codex の実行後にトレースが表示されない

  1. forge-agent-lens-for-codex status を実行します。最終行が not ready の場合は、表示された理由に従って問題を解決します。
  2. フックがインストールされ、有効になっていることを確認します。承認をスキップした場合は、codex を実行してから /hooks を実行し、フックを有効にします。
  3. FORGE_TRACE_PROJECT に有効な entity/project スラッグ (/ を 1 つだけ含むもの) が設定されていることを確認します。解決された project は status で確認できます。
  4. APIキーが解決されていることを確認します。status ではキーが解決されたかどうかはわかりますが、その取得元は表示されません。プラグインが誤ったキーを読み取っている場合は、WANDB_API_KEY と ~/.netrc を確認してください。
  5. Codex が --ephemeral 付きで実行されていないことを確認します。このフラグを指定すると、プラグインが読み取るロールアウトファイルが生成されません。
  6. パッケージをアップグレードした場合や Node.js のバージョンを切り替えた場合は、forge-agent-lens-for-codex install を再度実行します。フックには、インストール時の Node.js とパッケージのパスが記録されているためです。

ターンは表示されるが入力と出力のテキストが空になる

コンテンツの取得が無効になっている可能性があります。FORGE_CODEX_INCLUDE_CONTENT が false に設定されていないこと、および ~/.forge-agent-lens-for-codex/settings.json の include_content が false に設定されていないことを確認してください。status を実行すると、最終的に適用される include content の値が表示されます。

Agent Lens へのトレース送信時のエラー

プラグインが有効でスパンが生成されているにもかかわらず Agent Lens に表示されない場合は、コレクターのログでエクスポートエラーを確認し、次の表と照らし合わせてください。

プラグインをアップグレードする

フックは、インストール時に使用された Node.js とパッケージのパスを記録します。アップグレードする場合や Node.js のバージョンを切り替えた後は、パッケージを再インストールしてから install をもう一度実行してください:

アンインストール

自動トレーシングを停止し、Codex の Stop フックハンドラを削除するには、次の手順を実行します。
次に、以下のコマンドを実行してパッケージを削除します。
最終更新日 2026年10月23日