livekit/agents
A framework for building realtime voice AI agents 🤖🎙️📹
LiveKit Agents – リアルタイムAI音声エージェントのためのPythonフレームワーク
概要 – リアルタイムで聞き取り、話し、さらには見ることができるサーバーサイドエージェントを構築するためのPython SDKです。エージェントとは、本質的にLiveKitエコシステム内で動作し、WebRTCや電話を通じてユーザーと対話するLLM駆動型のアプリケーション(音声アシスタントなど)のことです。
コアコンセプト
- Agent – LLM、オプションのツール(関数呼び出し)、および一連の指示をラップするコードの断片。
- AgentSession – 単一のユーザーまたはルームのメディアパイプライン(音声認識、ターン検出、音声合成)と会話状態を管理します。
- AgentServer – セッションをスケジュールし、エージェントを起動し、それらをLiveKitルームに接続するプロセス。
- Plugins – 主要なモデルプロバイダー(OpenAI、Deepgram、Cartesia、Googleなど)用のアダプターで、統一された
inference.*APIを提供します。
主な機能
- STT、LLM、TTSサービスを自由に組み合わせて使用可能。
- 多数のユーザーを同時に処理するための組み込みジョブディスパッチ機能。
- 完全なWebRTCクライアントサポート(ブラウザ、モバイル、Unityなど)およびLiveKitのSIPスタックを介した電話統合。
- 話者がいつ話し終えたかを判断するターン検出トランスフォーマー。
- 外部ツールサーバー用のワンラインMCP統合。
- LLMの動作を検証するための「ジャッジ」を備えたネイティブテストフレームワーク。
- オープンソースであり、セルフホストのLiveKitサーバー上で完全に実行可能。
インストール
pip install "livekit-agents[openai,deepgram,cartesia]"
角括弧内のオプションは、一般的なモデルプロバイダー用のプラグインをインストールします。
クイックスタート(音声アシスタント)
from livekit.agents import Agent, AgentServer, AgentSession, JobContext, RunContext, cli, function_tool, inference
@function_tool
async def lookup_weather(context: RunContext, location: str):
return {"weather": "sunny", "temperature": 70}
server = AgentServer()
@server.rtc_session()
async def entrypoint(ctx: JobContext):
session = AgentSession(
vad=inference.VAD(),
stt=inference.STT("deepgram/nova-3", language="multi"),
llm=inference.LLM("google/gemma-4-31b-it"),
tts=inference.TTS("cartesia/sonic-3", voice="9626c31c-bec5-4cca-baa8-f8ba9e84c8bc"),
)
agent = Agent(instructions="You are a friendly voice assistant.", tools=[lookup_weather])
await session.start(agent=agent, room=ctx.room)
await session.generate_reply(instructions="greet the user and ask about their day")
if __name__ == "__main__":
cli.run_app(server)
プロセスがLiveKitルームに参加できるように、LIVEKIT_URL、LIVEKIT_API_KEY、LIVEKIT_API_SECRETを設定してください。
高度なパターン
- マルチエージェントハンドオフ – あるエージェントが情報を収集し、その後会話を専門のエージェント(ストーリーテラーなど)に引き継ぎます。ハンドオフは、ツール呼び出しから新しい
Agentインスタンスを返すことで行われます。 - テスト – SDKにはpytest互換のテストハーネスが付属しており、特定のユーザーの発話が期待される関数呼び出しやLLM応答をトリガーするかを検証できます。
- MCPツール – LiveKit Docs MCPサーバーに接続し、エージェントが最新のドキュメントやコード検索をクエリできるようにします。
実行と開発
| モード | コマンド | 内容 |
|---|---|---|
| コンソール(クイックテスト) | python myagent.py console |
マイク/オーディオI/Oを使用してローカルで実行(サーバー不要) |
| 開発 | python myagent.py dev |
ホットリロード付きで AgentServer を起動。LiveKit Cloudまたはセルフホストサーバーに接続 |
| 本番 | python myagent.py start |
本番環境向けの最適化設定で実行 |
リソース
- 完全なドキュメント: https://docs.livekit.io/agents/
- サンプルリポジトリ: https://github.com/livekit-examples/python-agents-examples
- コミュニティSlack、Twitter、DiscordのリンクはREADMEバッジにあります。
ライセンス – フレームワークはApache-2.0。ターン検出モデルには独自のLiveKitモデルライセンスが適用されます。
LiveKit Agentsを使用すると、開発者はあらゆるLLMをリアルタイムの音声(またはビデオ)参加者に変えることができます。これはブラウザ、モバイルアプリ、電話から呼び出すことができ、すべてLiveKitのWebRTCインフラストラクチャによって支えられています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト