このプロジェクトについて

LiveKit Agentsは、サーバー上で動作するリアルタイムでプログラム可能な参加者を構築するためのオープンソースフレームワークです。その焦点は、見て、聞いて、理解できる会話型のマルチモーダル音声エージェントにあり、Pythonパッケージとして配布されています(JS/TS版の兄弟ライブラリであるAgentsJSは別途参照されています)。 READMEに記載されている主な機能: - 柔軟な統合: ユースケースに応じてSTT、LLM、TTS、リアルタイムAPIプロバイダーを組み合わせて使用できます。 - 統合されたジョブスケジューリング: 組み込みのタスクスケジューリングと配布、およびエンドユーザーをエージェントに接続するためのディスパッチAPI。 - WebRTCクライアント: LiveKitのオープンソースSDKエコシステムを使用して、主要プラットフォーム向けのクライアントアプリケーションを構築できます。 - テレフォニー: LiveKitのテレフォニースタックと連携し、エージェントが電話を発信または受信できます。 - データ交換: RPCやその他のData APIにより、エージェントとクライアントがデータを交換できます。 - セマンティックターン検出: トランスフォーマーモデルがユーザーが話し終えたタイミングを検出し、プロジェクトによれば中断を減らすのに役立ちます。 - MCPサポート: MCPサーバーのツールを1行のコードで統合できます。 - 組み込みテストフレームワーク: エージェントの動作を確認するためのテストとジャッジを記述できます。 - オープンソース: 広く使用されているWebRTCメディアサーバーとされるLiveKitサーバーを含め、スタック全体をセルフホストできます。 中核となる概念は、Agent(指示を持つLLMベースのアプリケーション)、AgentSession(エンドユーザーとのインタラクションを管理するコンテナ)、entrypoint(リクエストハンドラーに似た、インタラクティブセッションの開始点)、AgentServer(ジョブスケジューリングを調整しエージェントを起動するメインプロセス)です。 使用例では、LiveKit Inferenceまたは直接のプロバイダープラグインを通じてVAD、STT、LLM、TTSを接続するシンプルな音声エージェントや、イントロエージェントがユーザーの詳細を収集し、Realtime APIモデルに切り替え可能なストーリーエージェントに制御を渡すマルチエージェントハンドオフの例が示されています。テストの例では、pytestとAgentSessionを使用してユーザー入力を実行し、関数呼び出しやアシスタントメッセージなどのイベントをアサートし、意図に対するLLMジャッジも含まれています。 実行モード: `python myagent.py console`は外部サーバーなしでローカルターミナル音声テストを行う場合、`dev`はLiveKit Cloudまたはセルフホストサーバーに接続するホットリロード対応のエージェントサーバー、`start`は本番環境向けの最適化です。サーバー接続モードでは、環境変数LIVEKIT_URL、LIVEKIT_API_KEY、LIVEKIT_API_SECRETが必要です。 リポジトリには、スターター音声エージェント、アウトバウンドコーラー、MCPサポート、マルチユーザートランスクライバー、サードパーティプロバイダーによるビデオアバター、Gemini Liveビジョンデモをカバーするexamplesディレクトリが含まれています。開発にはパッケージ管理にuv、フォーマットとリンティングにruff、単体テストにpytest、ローカルドキュメント生成にpdocを使用しています。フレームワークはApache-2.0の下でライセンスされていますが、LiveKitのターン検出モデルは別のLiveKit Model Licenseを使用しています。コントリビューションは、issue、プルリクエスト、またはコミュニティSlackを通じて歓迎されています。