nemo-relay-instrument-calls について
nemo-relay-instrument-calls は、既存のツール呼び出しや LLM 呼び出しに NeMo Relay のライフサイクル記録を加える開発者向けスキルです。マネージド実行、手動 API、ミドルウェアの動作を説明します。
主な機能
- 01既存のツールと LLM 呼び出しのラップ
- 02マネージド実行 API の利用
- 03手動ライフサイクル API の選択
- 04リクエストとレスポンスのガードレール把握
- 05ストリーミングとコンテキスト伝播への対応
活用シーン
- 01エージェントのリクエストにスコープを追加
- 02ツールやモデル呼び出しのライフサイクル記録
- 03フレームワークアダプターでイベント境界を管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nvidia/ skills --skill nemo-relay-instrument-callsインストール後、Claude Code で/nemo-relay-instrument-callsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json詳細
ツールと LLM の呼び出しを計装する
アプリにすでにツール関数やモデル/プロバイダー呼び出しがあり、それらを NeMo Relay 経由で適切に実行する必要がある場合に、このスキルを使用します。 Relay のライフサイクル捕捉を追加しながら、元の呼び出し可能な処理の動作を安定して維持します。
デフォルトのガイダンス
- 自然なエージェント、リクエスト、ワークフロー、またはグラフの境界にスコープを設定します。
- まずマネージド実行 API を使用します。
- Rust:
tool_call_execute(ToolCallExecuteParams::builder()...)、llm_call_execute(LlmCallExecuteParams::builder()...) - Python:
tools.execute(...)、llm.execute(...) - Node.js:
toolCallExecute(...)、llmCallExecute(...) - Go:
tools.Execute(...)、llm.Execute(...)、またはトップレベルのラッパー
- Rust:
- ホストフレームワークをマネージド実行ヘルパーでラップできない場合に限り、手動のライフサイクル API を使用します。
組み込みランタイムのセマンティクス
- マネージドなツールおよび LLM の実行では、まず生の入力に対して条件付き実行ガードレールが適用されます。拒否された場合、ランタイムは単独のマークイベントを出力し、リクエストインターセプトや呼び出し可能な処理は実行しません。
- リクエストインターセプトは条件付き実行ガードレールの後に実行され、実行インターセプトとコールバックに渡される実際の入力を書き換えます。
- リクエストのサニタイズ用ガードレールが影響するのは、出力される開始イベントのペイロードのみです。呼び出し元から見えるリクエストや引数は書き換えません。
- 実行インターセプトはミドルウェアの
nextパターンでコールバックをラップし、独自の結果を返して処理を短絡できます。 - レスポンスのサニタイズ用ガードレールが影響するのは、出力される終了イベントのペイロードのみです。アプリケーションコードに返される値は、生のコールバック結果または実行インターセプトの結果のままです。
- 開始イベントの出力後に実行が失敗した場合、ランタイムはセマンティック出力ペイロードを含まない終了イベントを引き続き出力します。
- ツール呼び出しは、JSON 互換の引数と結果を持つ名前付き操作です。ビジネスロジックは元のツール呼び出し可能な処理に任せ、ライフサイクルイベント、ミドルウェア、メタデータは NeMo Relay に任せます。
- LLM 呼び出しでは、メタデータとコンテンツから成る
LLMRequestを使用します。トレースのエクスポートや診断に必要な場合は、モデル名と安定した呼び出し識別子を渡します。 - 手動のライフサイクル API は、すでに実行を管理しているフレームワークアダプター向けです。これを使用する場合は、各開始呼び出しに対応する終了またはエラーパスを用意し、関連するセマンティックペイロードを明示的に渡す必要があります。
request_intercepts(...)やconditional_execution(...)などの部分的なミドルウェア API は、プロバイダーを手動で呼び出す前に、1 つのミドルウェアファミリーを適用する必要がある高度なアダプター向けです。- ストリーミング LLM ラッパーはチャンクを収集し、ストリーム終了時にレスポンスを確定します。ストリームを早期に破棄すると、ファイナライザーやサブスクライバーが完全な出力を受け取れないことがあります。
チェックリスト
- 最初のツール呼び出しまたは LLM 呼び出しより前にスコープ境界を選択した
- 既存のツール関数を、元の引数や結果を失わずにラップした
- 既存の LLM/プロバイダー呼び出しを適切な抽象化レイヤーでラップした
- 必要に応じて、任意のメタデータ、属性、またはモデル名を追加した
- 呼び出しがスレッドや非同期タスクをまたぐ場合のコンテキスト伝播に対処した
別のスキルを使用する場合
隣接するワークフローが必要な場合は、別のスキルを選択します。
- トレース、ATIF、またはエクスポート設定には
nemo-relay-plugin-observabilityを使用します。 - イベントの欠落や読み込み失敗のデバッグには
nemo-relay-debug-runtime-integrationを使用します。 - リクエストごとの分離やワーカープールのガイダンスには
nemo-relay-instrument-context-isolationを使用します。 - 再利用可能で、設定によって有効化されるランタイム動作には
nemo-relay-plugin-buildを使用します。
関連スキル
関連するワークフローには、次のスキルを使用します。
- オンボーディングは
nemo-relay-get-startedから始めます。 - 型付きラッパーの追加には
nemo-relay-instrument-typed-wrappersを使用します。 - エクスポートの設定には
nemo-relay-plugin-observabilityを使用します。 - 再利用可能な動作のパッケージ化には
nemo-relay-plugin-buildを使用します。
コメント
Markdown 対応