NVIDIA が示した新しいアプローチ:訓練なしで空間認識を強化

2026年6月、米 NVIDIA Research が発表した SpatialClaw は、AI エージェント技術における重要な課題に取り組むフレームワークです。(出典)

現在のビジョン言語モデル(VLM)には、深刻な弱点があります。オブジェクトの位置、その関係性、3次元空間での動きを正確に判断する能力に欠けるのです。

従来の解決策は、モデルそのものを再訓練することでした。しかし NVIDIA Research のチームは、問題の根本は別の場所にあると考えました。

訓練ではなく、エージェント自身が持つ「アクション・インターフェース」の設計が、空間認識精度を左右する重要な要因だという発見です。

言い換えれば、どのツールをどう呼び出すかという手段の問題であり、モデルの重みを更新する必要はないということです。実際、20のベンチマークで平均精度59.9%を達成し、既存の空間推論エージェント「SpaceTools」を11.2ポイント上回っています。

これはかなり注目すべき結果だと感じます。なぜなら、訓練なしで既存モデルの性能を大幅に引き出せるという点は、開発コストの削減と、スピード重視の現場にとって極めて実用的だからです。


SpatialClaw の仕組み:Python コードを「インターフェース」に変えた発想

SpatialClaw の核となるのは、ステートフルな Python カーネルです。これをエージェント・ループで包み込んだ構造になっています。

カーネルには、以下の要素が事前に読み込まれています:

  • 入力フレーム(動画や画像シーケンス)
  • 知覚ツール群
  • 幾何学的プリミティブ

これらが単なる「ブラックボックス・ツール」ではなく、Python 変数として扱える点が重要です。マスク、深度マップ、カメラのジオメトリ、軌跡といった出力が、すべて通常の Python オブジェクトとして返されるため、開発者(またはエージェント自身)は NumPy や SciPy を使った自由な計算が可能になります。

カーネルが公開する主なインターフェースは以下の通りです:

インターフェース 役割
InputImages サンプリング済みのフレームを保持
Metadata フレームレート、動画の長さ、インデックス情報
tools 知覚ツールと幾何学プリミティブを公開
show() 画像をエージェントの次のコンテキストに埋め込む
vlm 別の VLM セッションにクエリを発行
ReturnAnswer() 最終的な回答を提出

特に核となる知覚ツールは2つです。

tools.Reconstruct は Depth Anything 3 をラップし、フレーム単位の深度情報、カメラの内部パラメータ・外部パラメータ、そして密集した 3D ポイント群を返します。

tools.SAM3 は SAM 3(Segment Anything Model 3)をラップし、テキスト・ポイント・ボックスプロンプトから画像またはビデオマスクを生成します。

このほか、tools.Geometry(幾何計算)、tools.Mask(マスク操作)、tools.Time(時系列処理)、tools.Graph(グラフ構造)、tools.Draw(可視化)といった軽量ユーティリティも備わっており、エージェントは直感的にこれらを Python コードで組み合わせられます。

重要なのは、訓練を一切しないことです。同じシステムプロンプト、ツール群、ハイパーパラメータがすべてのベンチマークとモデル・バージョンで機能します。これは、新しいタスクに素早く対応できる汎用性の高さを意味しており、実務的には大きな利点ではないでしょうか。


なぜ「アクション・インターフェース」が重要なのか—3つの実装パターンの比較

SpatialClaw チームが強調する最も重要なポイントが、アクション・インターフェースの設計です。具体例を見ると、その意味がはっきりします。

「加熱器とドアの間の最短距離を測定する」という問題を、3つの異なるアプローチで解いてみましょう。

実装パターン 特徴 問題点
単一パス型コード 最初から最後まで1つのプログラムを書き、一度だけ実行 中間結果を見ずに戦略を確定するため、仮定が間違うと最終結果も誤る
構造化ツール呼び出し 固定的な JSON スキーマを通じて名前付きツールを呼び出す 事前に登録されていないツール(例:KDTree での最近傍点探索)が使えず、精度が落ちる
**SpatialClaw(コード駆動) ツールを組み合わせ、結果を検査してから修正する反復型 中間結果を見て戦略を調整可能。必要に応じて scipy.spatial.KDTree も呼び出せる

SpatialClaw は、エージェント自身が「計算を試して、結果を見てから軌道修正する」という柔軟性を持つ唯一のアプローチです。

実際の例では、SpatialClaw はまず重心間の距離を計算しましたが、重心計算に使った中央値が正確でないことに気づき、その場で scipy.spatial.KDTree に切り替えて真の最近傍点を見つけました。その結果、グラウンドトゥルース 0.9 m に対して 0.9439 m という高精度な答えを得られました。

この柔軟性は、従来の「ツール呼び出し」フレームワークでは実現できません。なぜなら、JSON スキーマを通じた呼び出しは、事前に定義されたツール集合にしかアクセスできないからです。

開発者の立場から見ると、このアプローチは非常に実装しやすいという感じがします。複雑な数学ライブラリや科学計算パッケージをエージェントが直接使えるため、新しいタスク対応時の開発サイクルが短縮されるからです。


実装のポイント:エージェント開発における「状態」と「メモリ」の価値

SpatialClaw が採用しているステートフル Python カーネルという設計は、AI エージェント開発における重要な洞察を示しています。

ご存知かもしれませんが、大規模言語モデル(LLM)は本来、状態を持たない設計です。API 呼び出しのたびにリセットされ、直前のやり取りを忘れます。

これはシンプルな質問には十分でも、複数ステップにわたる推論が必要なエージェント タスクでは、メモリ構造が不可欠になります。(参考:Agent Memory の技術ガイド)

SpatialClaw の Python カーネルは、まさにこの「メモリ基盤」として機能しており、以下の情報を保持しています:

  • 計算中間結果(深度マップ、マスク、ポイント群)
  • 入力フレーム情報
  • 過去のツール実行履歴

エージェントはこれらを参照しながら、次のステップを決定できます。言い換えれば、外部記憶への アクセス権を持つエージェントが実現できるわけです。

こうした設計は、エージェントが自己改善するための基盤も整えます。Nous Research の Hermes Agent のように、複数の実行オプション(Quick Setup、Full Setup、Blank Slate)を用意して、ユーザーが必要なツール・機能を段階的に追加できる仕組みと相通じるものがあります。(参考:Hermes Agent の Blank Slate モード)


SpatialClaw の性能:20ベンチマークでの実績と既存手法との差

SpatialClaw は、複数の空間推論タスク領域で評価されました。対象となった20のベンチマークは、以下のカテゴリに分かれています:

  • 単一画像ベース タスク
  • 複数フレーム・動画ベース タスク
  • 3次元シーン理解
  • 動作軌跡予測
  • その他

結果として、平均精度59.9%を達成し、既存の空間推論エージェント「SpaceTools」を 11.2ポイント上回る成果を示しています。

この差は、単なる「数字の改善」ではなく、設計哲学の違いを反映しています。既存手法が固定的なツール呼び出しに依存する一方で、SpatialClaw はエージェント自身が Python コードを書き、試行錯誤しながら答えに到達するため、より複雑で多段階の推論が可能になるわけです。

特に注目される点は、同じシステムプロンプトとツール群ですべてのタスクに対応するということです。つまり、新しいベンチマークやタスクが追加されても、モデルを再訓練したり、特別なチューニングを施したりする必要がないということです。これは、実務レベルでの拡張性と信頼性を大きく高めます。