Rath-Team/OpenRath
An open-source, PyTorch-like runtime for dynamic multi-agent and multi-session workflows.
何を解決するか
OpenRathは、複数のエージェントが複数のブランチ可能な会話状態で協力しなければならない大規模なエージェントクラスターの管理の複雑さに対処します。シンプルなエージェントループからデータフロー中心のモデルに移行し、会話コンテキストを構造化された再利用可能なチャンクとして扱うことで、「プロンプトスパゲッティ」を防ぎ、トークン消費を削減します。
仕組み
PyTorchのモジュラー設計にインスパイアされ、OpenRathはエージェントランタイム状態をSessionと呼ばれる流れる値として扱います。
- Session: 会話履歴、系統、サンドボックス配置を含むコアデータオブジェクト。フォーク、マージ、デタッチを行い、複雑な実行グラフを作成できます。
- Agent: プロンプトとプロバイダーを使用してSessionを取り、変更されたSessionを返す再利用可能な変換レイヤー(ニューラルネットワークレイヤーに似ている)。
- Workflow: エージェント、ツール、その他のワークフローを連結する合成可能なコンテナ。
- Sandbox: ツールが実際に実行される実行環境(ローカルまたはOpenSandbox経由でコンテナ化)。
- Memory: 異なる実行間で事実を思い出し、コミットできる永続的な状態レイヤー。
- Selector: 現在のセッション状態に基づいて次のワークフローを動的に選択するLLMバックエンドのルーター。
対象者
耐久性のあるメモリ、トレース可能な実行系統、会話状態を追跡し続けることなく多数の協力エージェントを管理できる複雑なマルチエージェントシステムを構築する開発者。
ハイライト
- Session中心のデータフロー: コンテキストは構造化されたチャンクとして扱われ、会話ブランチの効率的なフォークとマージを可能にします。
- トレース可能な系統: 特定の出力を生成した役割またはツールを追跡するグラフ形の provenance レイヤーを維持します。
- モジュラー構成: ワークフローはネストおよび再利用でき、数百のエージェントの管理を容易にします。
- デカップリングされたバックエンド: 実行(Sandboxes)と永続化(OpenVikingなどのMemoryバックエンド)の両方に対して柔軟なプラグインをサポートします。
- ダイナミックルーティング: プレーンなPythonを使用してLLM駆動の制御フロー(if/while)を実装するために、
Selectorを使用します。