Models Overview

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

What(何についてか)

LiveKit Agentsにおけるモデル利用の全体像。ボイスエージェントには1つ以上のAIモデル(STT/LLM/TTS、またはRealtime)が必要で、それらへのアクセス方法が2つ用意されている。

Why(なぜ必要か)

モデルの選択・切り替え・管理はボイスエージェント開発の中核。アクセス経路を理解しておかないと、InferenceとPluginの使い分けや混在ができない。

How(どう動くか)

2つのアクセス経路

LiveKit InferenceはCloud経由で複数プロバイダーのモデルにアクセス。追加プラグイン不要、API keyはLiveKit keyのみ。Pluginはオープンソースの各プロバイダー専用プラグインで、自前のAPI keyが必要だがInference未対応のプロバイダーも使える。

OpenAI API互換性

多くのプロバイダーがOpenAI API形式に標準化している。OpenAIプラグインで base_urlapi_key をオーバーライドすれば、非OpenAIプロバイダーにも接続可能。注意点として、API mode(Chat Completions vs Responses等)がプロバイダーによって異なるため、確認が必要。

from livekit.plugins import openai
 
session = AgentSession(
    llm=openai.LLM(
        model="model-name",
        base_url="https://api.provider.com/v1",
        api_key=os.getenv("PROVIDER_API_KEY")
    ),
)

Usage(InferenceとPluginの混在)

InferenceとPluginは同じ AgentSession 内で混在可能。STTはInference、LLMはPluginという構成も問題ない。

Inference経由の例:

from livekit.agents import AgentSession, inference
 
session = AgentSession(
    stt=inference.STT(model="deepgram/flux-general", language="en"),
    llm=inference.LLM(model="openai/gpt-4.1-mini"),
    tts="cartesia/sonic-3:9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
)

Plugin経由の例:

from livekit.plugins import openai, cartesia, assemblyai
 
session = AgentSession(
    llm=openai.responses.LLM(model="gpt-4.1-mini"),
    tts=cartesia.TTS(model="sonic-3", voice="9626c31c-bec5-4cca-baa8-f8ba9e84c8bc"),
    stt=assemblyai.STT(language="en"),
)

openai.responses.LLM がResponses APIを使う推奨形式。

セッション中のモデル変更もWorkflowsで制御可能(Phase 4で学習済み)。

Virtual Avatars

HedraやTavus等のリアルタイム動画アバタープロバイダーが別カテゴリとして存在する。詳細は各モデルページ参照。

Key Concepts

用語説明
LiveKit InferenceCloud経由の統合モデルアクセス。プラグイン不要
Pluginプロバイダー専用のオープンソースプラグイン。自前API key必要
OpenAI API互換base_url 上書きで非OpenAIプロバイダーに接続する仕組み
Virtual Avatarsリアルタイム動画アバター(Hedra/Tavus等)

実装時の判断軸

Inference対応プロバイダーなら文字列指定が最もシンプル。未対応プロバイダーはPluginを使用。OpenAI互換なら base_url オーバーライドで対応。Realtimeモデルを使う場合はSTT→LLM→TTSパイプラインではなくspeech-to-speechで直接処理する。