エージェントランタイムアーキテクチャ
PRX エージェントランタイムは、すべての自律エージェント動作を駆動するコア実行エンジンです。エージェントセッションのライフサイクルを管理し、ツールディスパッチを調整し、ストリーミングレスポンスを処理し、リソース制限を強制します。
アーキテクチャ概要
ランタイムはイベント駆動アーキテクチャを基盤として構築されており、各エージェントセッションは分離された実行コンテキストで実行されます。主要コンポーネントは以下の通り:
- セッションマネージャー -- アクティブなエージェントセッションを作成・追跡
- エージェントループ -- LLM レスポンスを処理しツールコールを実行する中心的なディスパッチループ
- メモリレイヤー -- ターン間でのコンテキストリコールと圧縮を提供
- ツールレジストリ -- 利用可能なツールとそのパーミッションポリシーを管理
┌─────────────────────────────────────────┐
│ Session Manager │
│ ┌───────────┐ ┌───────────┐ │
│ │ Session A │ │ Session B │ ... │
│ │ ┌───────┐ │ │ ┌───────┐ │ │
│ │ │ Loop │ │ │ │ Loop │ │ │
│ │ │ Memory│ │ │ │ Memory│ │ │
│ │ │ Tools │ │ │ │ Tools │ │ │
│ │ └───────┘ │ │ └───────┘ │ │
│ └───────────┘ └───────────┘ │
└─────────────────────────────────────────┘実行モデル
各エージェントセッションはリクエスト-レスポンスサイクルに従います:
- ユーザー入力の受信 -- テキストメッセージ、ツール結果、またはシステムイベント
- コンテキストの構築 -- システムプロンプト、メモリ、会話履歴を組み立て
- LLM 推論 -- 設定されたプロバイダーからレスポンスをストリーミング
- ツールディスパッチ -- LLM がツールコールを発行した場合、サンドボックス内で実行
- ループまたは返却 -- ツールが呼び出された場合はループを継続、そうでなければ最終レスポンスを返却
設定
ランタイムの動作は config.toml で調整できます:
toml
[agent]
max_turns = 50
max_tool_calls_per_turn = 10
session_timeout_secs = 3600
stream_buffer_size = 64
[agent.limits]
max_concurrent_sessions = 8
max_memory_mb = 512プロセス分離
エージェントセッションはオプションで別プロセスで実行でき、障害分離を実現します。プロセス分離実行モデルの詳細は セッションワーカー を参照してください。