Langroid:Python製マルチエージェントLLMフレームワーク

Langroid: LLMアプリケーションのための革新的なマルチエージェントフレームワーク

急速に進化するAIの状況において、高度な大規模言語モデル(LLM)アプリケーションの構築には、多くの場合、複雑な連携と堅牢なフレームワークが求められます。ここに、カーネギーメロン大学(CMU)とウィスコンシン大学マディソン校の研究者によって開発された、直感的で軽量、拡張性があり、原則に基づいたPythonフレームワークであるLangroidが登場します。

従来のZアプローチとは異なり、Langroidは、マルチエージェントプログラミングパラダイムを用いてLLM駆動型アプリケーションを構築する開発者に新たな視点を提供します。このフレームワークは、Langchainや他の既存のLLMフレームワークを活用しない点が際立っており、他に類を見ない、多くの場合、より優れた開発者体験を提供します。

Langroidの核心:エージェントとタスク

Langroidの核となるのは、エージェントタスクという2つの基本的な概念です。

  • エージェント: Langroidにおける第一級オブジェクトであり、LLMの会話状態をカプセル化し、オプションでベクトルストアや様々なツールと統合できます。エージェントは多目的なメッセージ変換器として機能し、LLM、エージェント、ユーザーに対する組み込みの応答メソッドを提供します。

  • タスク: エージェントをラップし、指示、役割、または目標を提供します。エージェントの応答メソッドの反復を管理し、階層的および再帰的なタスク委譲を通じて複雑なマルチエージェントのインタラクションを調整します。この洗練された設計により、サブタスクを追加の応答器として扱うことができ、柔軟で強力なエージェント連携が可能になります。

このモジュール式で疎結合な設計は再利用性を促進し、開発者は特定のスキルを持つエージェントを作成し、それらを洗練されたワークフローに組み合わせることができます。

主なハイライトと機能

Langroidには、LLMアプリケーション開発を簡素化し、強化するために設計された機能が満載です。

  • 幅広いLLMサポート: OpenAI LLMとシームレスに統合しつつも、Langroidは、OllamaやLiteLLMのようなプロキシライブラリやローカルモデルサーバーを介して、OpenAI APIを模倣することで、数百のプロバイダー(ローカル/オープンおよびリモート/商用)もサポートしています。

  • 高度なデータ処理: Qdrant、Chroma、LanceDB、Pinecone、PostgresDB(PGVector)、Weaviateなどの人気のあるベクトルストアとの統合を通じて、Retrieval-Augmented Generation(RAG)のための堅牢な機能を提供します。これにより、応答の根拠付けと出典引用が可能になります。

  • ツールと関数呼び出し: Langroidは、OpenAIの関数呼び出しをネイティブにサポートし、任意のLLMで動作する同等のToolMessageメカニズムを提供します。Pydanticを活用することで、ツールの定義は簡単になり、フレームワークは、LLMからの不正なJSON出力を、修正フィードバックを提供することでインテリジェントに処理します。

  • 可観測性とデバッグ: マルチエージェントのインタラクション、来歴、メッセージの系統に関する詳細なログにより、開発者はアプリケーション内の情報の流れを追跡し、理解することができます。

  • 特殊なエージェント: Langroidは、一般的なユースケースのための特殊なエージェントを含んでいます。

    • DocChatAgent: ドキュメント(ファイル、URL)とのチャット用。ドキュメントのシャーディング、埋め込み、ベクトルストレージ、および検索拡張クエリ生成を可能にします。
    • TableChatAgent: 表形式データセット(ファイル、URL、データフレーム)へのクエリを可能にし、LLMがPandasコードを生成・実行してクエリに回答します。
    • SQLChatAgent: 自然言語をSQLクエリに変換するために、関連するスキーマ情報を効率的に取得します。
    • Neo4jChatAgent: Neo4jナレッジグラフとのチャットを可能にします。
  • キャッシュ: RedisおよびMomento Serverless Cacheをサポートし、LLM APIの応答時間を最適化します。

実用的なアプリケーション

Langroidはすでに実稼働環境に導入されており、Nullifyなどの企業がセキュアなソフトウェア開発のためにそのマルチエージェント連携フレームワークを適用しています。その設定の容易さや柔軟性が高く評価されており、他のフレームワークと比較して開発サイクルが大幅に短縮されています。

実際の利用例は以下の通りです。

  • 構造化された情報抽出: 2つのエージェントシステムを使用して商業リース文書からキーワードを抽出し、マルチエージェント連携、出典付きRAG、構造化出力のための関数呼び出しを示しています。
  • ファーマコビジランス: 医薬品安全性監視のためのLangroidベースのMulti-Agent RAGシステム。

Langroidを始める

インストールはpipを介して簡単に行え、文書解析(doc-chat)やデータベース操作(db)などの特定の機能にはオプションの依存関係があります。LangroidにはPython 3.11以降が必要で、APIキー(例:OpenAI、Qdrant、Redis)にはシンプルな環境変数設定に依存します。

詳細と実行可能な例については、公式ドキュメントlangroid-examples GitHubリポジトリを参照してください。

Langroidは、堅牢でスケーラブルなインテリジェントなLLM駆動型アプリケーションを構築する上で大きな進歩を示しており、クリーンで強力、かつ開発者に優しいマルチエージェントAIへのアプローチを提供します。

この記事を共有