ホームへ戻る

代理框架與開發工具

NVIDIA、NOOAをオープンソース化:Pythonクラスでエージェントの状態、ツール、永続メモリを統合

NOOAはエージェントを単一のPythonクラスとして表現し、分散したプロンプトやツールschemaをメソッド、フィールド、docstring、型アノテーションで置き換える。公式発表ではSWE-bench Verifiedで82.2%を達成し、token使用量を約半分に削減したとしているが、フレームワークはまだ研究プレビュー段階にあり、モデルが生成したコードを実行する際には別途sandboxが必要だ。

Tors · Public domain · Image source
zh-Hant

NVIDIA Labsは7月27日、Object-Oriented Agents(NOOA)の研究プレビューを公開し、エージェントフレームワークを一般的なPythonソフトウェアエンジニアリングへと回帰させる試みを示した。開発者は1つのクラスでエージェントを記述する。フィールドが状態を保持し、メソッドが能力を表し、docstringがプロンプトを提供し、型アノテーションが入出力の契約となる。メソッド本体が省略記号の場合、実行時にはLLMループが処理を担う。一方、通常の関数本体を持つメソッドは、引き続き決定論的なPythonとして動作する。この設計により、エージェントにdiff、unit test、トレース、version controlを直接適用でき、ツールschema、workflow graph、prompt templateを別途管理する必要がなくなる。

NOOAの要点は構文だけではない。モデルはJupyter形式のREPLを通じてPythonを記述し、ツールの結果を実行環境内の生きたオブジェクトとして保持する一方、コンテキストにはサイズを制限したプレビューのみを表示する。大規模なJSONやterminal出力を繰り返しプロンプトへシリアライズする方法と比べ、pass-by-referenceはtranscriptを短縮し、append-onlyのprompt cacheも維持できる。長期メモリは読み取り可能なSQLiteファイルに保存され、各レコードには型、重要度、タグが付与される。また、supports、contradicts、derived-fromなどの関係によって小規模なknowledge graphを形成できる。エージェントは情報を能動的に書き込み、訂正、照会でき、バックグラウンドプロセスが重複データの統合や失効した内容の削除を行う。

NVIDIAの報告によると、同じGPT-5.5を基盤モデルとして使用した場合、253行で実装された汎用エージェントはSWE-bench Verifiedで82.2%を達成し、1問当たりの平均は約29回のモデル呼び出しと110万tokenだった。これに対し、比較対象のシステムは78.2%を達成するために66回の呼び出しと220万tokenを必要とした。NOOAはCyberGym L1でも86.8%を報告しており、ARC-AGI-3ではGPT-5.6 Solとの組み合わせでmean RHAE 85.1%、1ゲーム当たり約13.3米ドルのコストを記録した。これらの結果にはコード、データ、評価手順が付属している。ただし、比較対象は提出時点の公開結果から取得されたもので、モデル、budget、harnessのすべてが統一されているわけではない。そのため、性能向上を全面的にオブジェクト指向インターフェースの効果とみなすことはできない。

ライブラリは現時点でGitHubから直接インストールする必要があり、CLI、メモリ、評価pipelineは依然としてオプションのsubpackageとなっている。さらに重要なのは、「code as action」によってモデルが任意のPythonコードを実行できる点だ。プロジェクトは、データの外部流出、ファイルの削除、環境の変更が発生する可能性を明示的に警告し、OpenShellなどの隔離実行環境との併用を推奨している。エンジニアリングチームは今後、エラー再試行時にも型契約が安定して機能するか、SQLiteメモリで機密データをどのように扱うか、そしてtoken面の優位性を異なるモデルや実際のエンタープライズ向けツールチェーンでも再現できるかを検証する必要がある。

出典

  1. Six Agent Harness Capabilities for Higher Model Performance
  2. NVIDIA-NeMo/labs-OO-Agents