NVIDIA-NeMo/labs-OO-Agents

NVIDIA Object Oriented Agents: the Pythonic way to build AI Agents.

何を解決するか

NOOAは、プロンプト、ツール、機能、状態を1つのPythonクラスに統合することで、AIエージェントを構築するより直感的でPythonらしい方法を提供します。これにより、これらの要素を別々の抽象化として管理する必要がなくなり、型アノテーション、ドキュメント文字列、オブジェクト指向プログラミングといった、開発者が馴染みのあるソフトウェア開発手法を使ってエージェントの振る舞いを定義できます。

動作方法

このフレームワークはエージェントをPythonオブジェクトとして扱います。空の本体(...)を持つメソッドを「生成メソッド」として定義し、実行時にLLMによって実装される独自のアプローチを採用しています。

  • プロンプトをドキュメント文字列として: エージェントのドキュメント文字列とメソッドのドキュメント文字列がプロンプトとして機能します。
  • 機能をメソッドとして: Pythonのメソッドがエージェントのツールとインターフェースを定義します。
  • 状態をフィールドとして: オブジェクトの型指定されたフィールドがエージェントの状態を格納します。
  • コードをアクションとして: モデルはJupyter風のREPLでPythonコードを記述し、selfや他のヘルパーを直接アクセスすることで環境とやり取りします。

対象ユーザー

PythonでAIエージェントを開発したい開発者で、標準的なソフトウェア開発ワークフロー(テスト、トレーシング、リファクタリング)と、LiteLLMを介してさまざまなLLMをサポートするモデル非依存のフレームワークを求める方。

特徴

  • オブジェクト指向インターフェース: 状態、プロンプト、ツールを1つのクラスに統合。
  • LLM駆動のメソッド: 確定的なPythonコードとLLM生成ロジックをシームレスに混在可能。
  • CodeActワークフロー: ツール使用にPython REPLを活用し、手動でのツールスキーマ定義の必要性を低減。
  • モデル非依存: Claude、GPT、Ollama、vLLMなど、多数のホスト型およびローカルモデルをサポート。
  • 統合トレーシング: 専用CLIとビューアーを備えた、LLM呼び出しとコード実行のトレーシングを内蔵。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト