📌 本文重點
livekit/agents幫你包好即時語音串流與房間管理- 透過插件快速串接各家 LLM/STT/TTS
- 適合打造客服、家教、會議助理、遊戲 NPC 等語音場景
一句話先講清楚:livekit/agents 是一個「開箱即用」的實時語音/視頻 AI agent 開源框架,幫你處理好語音串流、通話房間、跟各家 LLM 串接,讓你專心寫「助理要做什麼」。
核心功能:它幫你省掉哪些麻煩
1. 即時語音串流處理(含多方通話)
用傳統方式做語音助手,你得自己處理:WebRTC 連線、音訊編碼、封包、延遲調優。livekit/agents 把這些變成幾行 Python:
💡 關鍵: 框架直接處理 WebRTC 與音訊串流細節,讓你用少量程式碼就能做出低延遲語音助手。
- 自動接收使用者麥克風語音、轉成模型可用的
audio stream - 支援多人房間:每個人一條
audio track,可針對某人回應或廣播 - 跟 LiveKit RTC 原生整合,等於直接接上一整套「類 Discord / Zoom 的底層基礎建設」
實際操作可以從他們的 demo server 開始:
# 1. 安裝套件
pip install livekit-agents livekit-plugins-openai
# 2. 跑官方 demo(語音助理)
python -m livekit.agents.examples.voice_assistant
跑起來後,你就有一個能接 LiveKit 房間、聽語音、回語音的 AI 助手,可以先拿來當「互動介面沙盒」。
2. 一層抽象包掉 LLM、STT、TTS
你不需要自己手動串「語音轉文字(STT)→ LLM → 文字轉語音(TTS)」,agents 已經有 plugin 模組:
💡 關鍵: 透過 plugin,你可以像換積木一樣替換不同家的 LLM/STT/TTS,而不必重寫整套語音流程。
- 官方提供 OpenAI、Anthropic 等插件(
livekit-plugins-openai等) - 你可以像換積木一樣,改用別家雲端 LLM 或自建模型
- 支援多模態(文字 + 語音,未來可加上影像)
範例:用 OpenAI 做一個最小語音助手(簡化示意)
from livekit.agents import AutoAgent
from livekit.plugins import openai
llm = openai.ChatCompletion(model="gpt-4o-mini")
async def handle_event(event, ctx):
if event.type == "speech": # 使用者講話片段
text = event.transcript
resp = await llm.complete(text)
await ctx.speak(resp.text) # 語音回覆
agent = AutoAgent(on_event=handle_event)
agent.run()
你只需要關心 handle_event 裡「收到什麼 → 要回什麼」,其餘串流、排程、回應時機都交給框架。
3. 房間管理與多角色 Agent
如果你想做「會議小秘書 + 客服機器人 + 語音監考官」這類多角色場景,livekit/agents 也有:
- 房間(
room)管理:每個房間有多名參與者與多個agent - 可以設定
agent只聽某個角色、只回某些人 - 結合 LiveKit 原本的錄製、串流功能,做後續轉錄、紀錄
典型用法:開一個房間,裡面放
- 一個「會議紀錄 agent」專心記錄與摘要
- 一個「Q&A agent」回覆指定問題
- 再視需要增加自訂邏輯(例如檢查是否有敏感字)
適合誰用?幾個具體場景
1. 線上客服機器人(語音版)
想像電話客服或網站語音客服:
- 使用者進房間 → 說出問題
agent即時聽、查 FAQ 或後端 API → 用自然語音回覆- 若遇到無法回答的問題,可把通話轉接真人(LiveKit 本來就支援真人進房)
可以做的行動:
- 先用官方
voice assistant demo跑起來 - 把 LLM
prompt改成「客服知識庫助理」,接上你的 FAQ 文檔
2. 語音家教、語言學習助手
- 學生講英文/中文 →
agent即時糾錯、給例句 - 用多房間管理不同學生,讓每個人有自己的語音助教
可以做的行動:
- 把 LLM 的系統提示改成「語言老師」
- 把
agent的回應邏輯改成:先評分、再給建議回覆
3. 會議即時小秘書
- 開一個房間,把所有會議成員加入
agent只做三件事:即時紀錄要點、提醒超時、會後產出摘要
可以做的行動:
- 使用 LiveKit SDK 做會議房間
- 在
agents內部實作:每 5 分鐘自動整理一次目前紀錄、會後產出總結
4. 遊戲語音 NPC
- 玩家用麥克風跟 NPC 說話
agent根據遊戲狀態(你可以從遊戲伺服器丟資料給agent)決定 NPC 回應
可以做的行動:
- 在遊戲伺服器中接
WebRTC/HTTP與 LiveKit - 把玩家座標、任務進度寫進 LLM 的
context
怎麼開始:最小可行示例
下面是一條「從零到能跟 AI 說話」的最短路徑,假設你會基本 Python。
步驟 1:準備環境
- 安裝 Python
3.10+(建議用虛擬環境) - 安裝套件:
bash
pip install "livekit-agents[full]" livekit-plugins-openai
-
申請:
-
LiveKit Cloud 帳號(或自己架 LiveKit Server)→ 拿到
LIVEKIT_API_KEY、LIVEKIT_API_SECRET、LIVEKIT_URL - OpenAI API Key(或你要用的其他雲端 LLM)
步驟 2:跑官方 voice assistant demo
在專案 repo 裡會有類似示例,可以照以下思路:
export LIVEKIT_API_KEY=xxx
export LIVEKIT_API_SECRET=yyy
export LIVEKIT_URL=wss://your-livekit-domain
export OPENAI_API_KEY=sk-...
python -m livekit.agents.examples.voice_assistant
啟動後:
- 到 LiveKit 提供的範例前端(通常
repo或docs會有連結) - 填上相同的房間名稱
- 打開麥克風,你就能跟 AI 說話
串接主流雲端 LLM:以 OpenAI 為例
使用 livekit-plugins-openai 可以快速改成使用你想要的 OpenAI 模型,例如 gpt-4o、gpt-4o-mini。
💡 關鍵: 只要改動模型與插件設定,就能快速切換不同雲端 LLM,而保留同一套語音互動邏輯。
示意程式:
from livekit.agents import AutoAgent
from livekit.plugins import openai
system_prompt = """你是一個友善的即時語音助手,回答要簡短、口語化。"""
llm = openai.ChatCompletion(
model="gpt-4o-mini",
system_prompt=system_prompt,
)
async def on_event(event, ctx):
if event.type == "speech" and event.is_final: # 完整一句話
text = event.transcript
resp = await llm.complete(text)
await ctx.speak(resp.text) # 由 agents 幫你轉語音播放
agent = AutoAgent(on_event=on_event)
agent.run()
如果你要換成其他 LLM(Anthropic、DeepSeek 等),通常只要:
- 換插件(例如
livekit-plugins-anthropic) - 換初始化那一行,其他事件處理邏輯可以保持不變
改造成「中文語音助手」
要讓它好好講中文,關鍵有三個:
-
STT 支援中文:選擇支援中文語音辨識的模型(例如 OpenAI 的多語
speech model)。 -
LLM 語言偏好:在 system prompt 裡明講:
text
你是一個中文語音助手,只用繁體中文回覆。
回覆要口語、句子不要太長,方便即時朗讀。
-
TTS 選中文聲音:
-
若使用 OpenAI TTS,在初始化時指定中文
voice - 或用本地 TTS(如 Coqui TTS)輸出中文音頻,再由
agents播放
實作上,只要調整:
- plugin 設定中的模型名稱、語言
prompt描述
其他語音串流邏輯不變。
部署到雲端或自家伺服器
livekit/agents 本身就是 Python 程式,你可以當作一般後端服務來部署。
部署選項概覽
| 方案 | 核心做法 | 適合誰 |
|---|---|---|
| LiveKit Cloud + 雲端 VM | LiveKit 用官方雲服務,agents 跑在 AWS / GCP |
想先跑起產品、不想維護 RTC 的團隊 |
| 全自架(LiveKit Server + agents) | 自己架 LiveKit Server + 部署 agents |
對延遲、成本、數據有嚴格控管需求 |
| Docker / K8s | 把 agents 打包成容器,水平擴展 |
使用 k8s 的公司 / 團隊 |
基本部署步驟:
- 把你的
agent程式包成一個 Python app(例如main.py) - 用
uvicorn或類似方式啟動(若你還要提供HTTP API) - 在雲端 VM 或
K8s上跑起來,設定環境變數(LIVEKIT_URL、API key、LLM key) - 前端(Web / Mobile / 遊戲客戶端)只要接 LiveKit 的 SDK 就能加入房間
和官方 GPT-Live 概念的關係
OpenAI 在文章 Continuous voice interaction with GPT-Live 裡提到:
GPT-Live 使用無回合(turnless)語音模型與低延遲架構,讓語音對話可以連續、不中斷。
livekit/agents 跟它的角色有點像「自幹一個 GPT-Live 式的應用框架」:
- GPT-Live:OpenAI 自家的完整產品體驗
- livekit/agents:你可以拿來做自己的「GPT-Live 版本」,接你選的 LLM、你自家的後端、你想要的 UI
如果你希望的是:
- 「我要一個可完全客製、可掛在自家雲上的即時語音 AI 助手」
那 livekit/agents 正是為這種需求設計的工具。
下一步可以做什麼?
給你一條實作 checklist:
- 用
pip安裝livekit-agents與你要的 LLM plugin - 在 LiveKit Cloud 建一個
project,拿到API key/URL - 跑官方
voice assistant示例,確認可以講話互動 - 把 LLM
prompt改成你的場景(客服 / 家教 / 會議小秘書 / NPC) - 加入最簡單的業務邏輯(查 FAQ、打你自家 API)
- 打包成服務部署到雲端,前端用 LiveKit SDK 接進來
做到第 4 步,你就已經有第一個能上線試用的即時語音 AI app 了。之後再慢慢加功能,而不是一開始就被 WebRTC 和語音串流細節卡住。
🚀 你現在可以做的事
- 先在本機安裝
livekit-agents,跑起官方voice_assistant示例- 申請 LiveKit Cloud 和 OpenAI 等 LLM 帳號,設定好
API key與環境變數- 把示例程式中的
system_prompt改成你的實際場景(客服、家教或會議),開始調整互動邏輯


發佈留言