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_url と api_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 Inference | Cloud経由の統合モデルアクセス。プラグイン不要 |
| Plugin | プロバイダー専用のオープンソースプラグイン。自前API key必要 |
| OpenAI API互換 | base_url 上書きで非OpenAIプロバイダーに接続する仕組み |
| Virtual Avatars | リアルタイム動画アバター(Hedra/Tavus等) |
実装時の判断軸
Inference対応プロバイダーなら文字列指定が最もシンプル。未対応プロバイダーはPluginを使用。OpenAI互換なら base_url オーバーライドで対応。Realtimeモデルを使う場合はSTT→LLM→TTSパイプラインではなくspeech-to-speechで直接処理する。