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 本番環境向けの最適化設定で実行

リソース

ライセンス – フレームワークはApache-2.0。ターン検出モデルには独自のLiveKitモデルライセンスが適用されます。


LiveKit Agentsを使用すると、開発者はあらゆるLLMをリアルタイムの音声(またはビデオ)参加者に変えることができます。これはブラウザ、モバイルアプリ、電話から呼び出すことができ、すべてLiveKitのWebRTCインフラストラクチャによって支えられています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト