NVIDIA NOOA:AIエージェントをPythonオブジェクトとして扱う新しい設計
導入
AIエージェント開発は高度化する一方で、構成要素が分散しやすい。プロンプトテンプレート、ツールスキーマ、コールバック、状態管理、ワークフローグラフを別々に扱う必要があり、システムが大きくなるほど見通しは悪くなる。NVIDIA Labs が提案する NVIDIA Object-Oriented Agents(NOOA)は、この複雑さに対して、エージェントを Python オブジェクトとして扱うというシンプルなモデルを提示している。
主なポイント
- エージェントは Python オブジェクト:NOOA では、メソッドがモデルの取れる行動、フィールドが明示的な状態、docstring がプロンプト、型注釈が入出力の契約として機能する。
- 通常コードと LLM 実行を共存:通常の関数本体を持つメソッドは、そのまま決定的な Python コードとして動く。一方、本体が
...だけのメソッドは、実行時に LLM 駆動のエージェントループによって補完される。 - 開発者とモデルが同じインターフェースを見る:人間向けの実装とモデル向けのツール説明を分けすぎないことで、エージェントの振る舞いをテスト、トレース、リファクタリングしやすくする。
- Pythonic な API:コンテキスト、イベント、状態レンダリング、長期記憶、検証済みの LLM ループといった機能を、Python に近い API として提供する。
- 複数の設計要素を一つの面に統合:論文は、型付き入出力、ライブオブジェクトの参照渡し、行動としてのコード、プログラム可能なループ設計、明示的なオブジェクト状態、モデルから呼び出せるコンテキストおよびイベント API を同一インターフェースにまとめた点を強調している。
意義と影響
NOOA の重要性は、新しいエージェント用語を増やすことではなく、エージェント開発を既存のソフトウェア工学に近づける点にある。従来のエージェントシステムでは、モデルに何を見せるか、実際のコードが何を行うか、状態がどこにあるかが分かれやすい。NOOA は Python のオブジェクト指向を再利用することで、この分断を減らそうとしている。
また、どの処理を決定的なコードとして残し、どの処理を LLM に任せるかを明確にしやすい。これは、信頼性や観測性が求められる実運用のエージェントにとって重要な設計上の利点になり得る。
論文では、現在のモデルがこのインターフェースを使い、SWE-bench Verified、Terminal-Bench 2.0、ARC-AGI-3 などのエージェントおよび推論系ベンチマークでも有効に動作することを示したとされる。ただし、提供された素材には具体的なスコアは含まれていないため、ここで注目すべきは性能主張よりもプログラミングモデルそのものだ。
NOOA は、エージェントをプロンプトとツールの寄せ集めではなく、保守可能なソフトウェア部品として扱う方向性を示している。この流れが広がれば、エージェント開発はよりテストしやすく、追跡しやすく、通常の開発ワークフローに統合しやすいものになるだろう。
コメント
ログイン状態を確認中…
コメントを読み込み中…