Introducing LiveKit Inference (Blog)

参照元: LiveKit Agents Documentation ロードマップ: 学習ロードマップ

What(何についてか)

LiveKit Inferenceは、ボイスAI向けの低遅延モデルゲートウェイ。LiveKit API key一つで、主要なSTT/LLM/TTSプロバイダーのモデルにアクセスできる統合インターフェースを提供する。個別のプロバイダーアカウント管理やプラグイン統合作業が不要になる。

対応プロバイダーは以下の通り。STT: AssemblyAI, Cartesia, Deepgram。LLM: OpenAI, Google DeepMind, Cerebras, Groq, Baseten。TTS: Cartesia, ElevenLabs, Inworld, Rime。

Why(なぜ必要か)

ボイスエージェントの開発・運用には3つの課題がある。

1つ目は統合の複雑さ。モデルの評価・切り替えには、プロバイダーごとのAPI key取得、課金設定、プラグイン実装が必要で、STTとTTSは統一APIすら存在しなかった。

2つ目は同時実行制限の管理困難。本番運用に移ると、STTはWebSocket接続数、LLMはtokens per minute、TTSは同時生成数と、プロバイダーごとに制限単位が異なる。スケールに伴い追跡が困難になり、キャパシティプランニングは実質的な勘に頼る状態になる。

3つ目はレイテンシと信頼性。テキストベースアプリでは数秒の待機が許容されるが、ボイスエージェントでは会話の自然さを損なう。パブリック推論エンドポイントは需要ピーク時にキューイングや障害を起こし、ユーザー体験に直結する。

How(どう動くか)

統合API(Unified API)

AgentSession のパラメータに "provider/model" 形式の文字列を渡すだけでモデルを指定できる。

session = AgentSession(
    stt="assemblyai/universal-streaming",
    llm="openai/gpt-4.1-mini",
    tts="cartesia/sonic-2:6f84f4b8-58a2-430c-8c79-688dad597532",
    turn_detection=MultilingualModel()
)

TTSを変更する場合は tts="inworld/inworld-tts-1:ashley" のように文字列を変えるだけで済む。追加プラグインもAPI keyも不要。これによりモデルのA/Bテストが極めて容易になる。

同時実行管理の統一

LiveKit Cloudダッシュボードで全プロバイダーの同時実行制限を一元表示する。制限はモデルタイプ(STT/LLM/TTS)単位で適用されるため、OpenAIからGeminiへの切り替えでもクォータの再交渉が不要。

課金も統合され、モデル呼び出しは各プロバイダーのPAYG価格でLiveKit経由で一括請求される。

レイテンシと信頼性の最適化

3つのアプローチで低遅延と高信頼性を実現する。

Global co-locationでは、LiveKit Cloud上のagentとinference serviceが同じデータセンターで動作し、API呼び出しがプライベートネットワークバックボーンを通る。パブリックインターネットの混雑を回避できる。

Provisioned capacityでは、プロバイダーと直接契約して専有推論キャパシティを確保する。パブリックエンドポイントをバイパスするため、ピーク時の混雑の影響を受けない。

Dynamic routing(coming soon)では、各リージョン・プロバイダーのリアルタイムレイテンシを監視し、遅延や障害検知時に自動的に別プロバイダー・別リージョンにルーティングする。LiveKitがストリーミング用に構築したルーティング基盤を応用している。

graph LR
    A["Agent (LiveKit Cloud)"] -->|"Private backbone"| B["Inference Service"]
    B -->|"Provisioned capacity"| C["Model Providers"]
    B -->|"Dynamic routing (soon)"| D["Alt Region / Provider"]

Key Concepts

用語説明
LiveKit InferenceボイスAI向けの統合モデルゲートウェイ。API key一つでSTT/LLM/TTSにアクセス
Unified APIprovider/model 文字列指定でモデルを切り替える仕組み。プラグイン・追加API key不要
Provisioned capacityプロバイダーから専有した推論キャパシティ。パブリックエンドポイントの混雑を回避
Dynamic routingリアルタイムレイテンシ監視に基づく自動ルーティング(開発中)

制約事項

アプリケーション層でのモデルfallback機能(例: STT失敗時に別STTへ自動切替)は、現在の設計に含まれていない。AgentSession は1モデルのみ指定する設計のため、fallbackが必要な場合は自前でロジックを組むか、Dynamic routingの完成を待つ必要がある。