命令列工具
livekit/agents avatar
livekit/agents

livekit/agents:用 Python 建構即時語音代理的框架

專案速覽:用於建立即時語音人工智慧代理的框架。使用它來創建可以看到、聽到和理解的會話式多模式語音代理。

14,210 個 Star3,740 個 ForkPythonApache-2.0

秒懂

它是什麼?
這個倉庫提供了一個在伺服器上執行的即時可程式化參與者框架,目標是建立能看、能聽、能理解的對話式多模態語音代理。
適合誰用?
livekit/agents 適合需要 README 所列功能、且能接受其文件已明列限制的使用者;不適合把倉庫描述直接當成效能、相容性或安全保證的人。採用前請依 agents README 的具體命令、入口或設定檔完成最小試跑,觀察輸出、錯誤與資源需求,再決定是否納入你的工作流程。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

框架的定位,agents

README 將 Agent Framework 描述為一種建立即時、可程式化參與者的方式,這些參與者執行在伺服器上。其目標是建立能夠看、聽、理解的對話式多模態語音代理。該倉庫以 Python 編寫,README 還指向了一個單獨的 JavaScript/TypeScript 對應函式庫 AgentsJS。框架是開源的,README 提到包括 LiveKit 伺服器本身在內的整個技術棧都可以部署在自己的伺服器上。

agents 條目編號 1 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

核心概念:Agent、AgentSession、entrypoint、AgentServer,agents

README 定義了四個基本建構區塊。Agent 是帶有明確指令的基於 LLM 的應用程式。AgentSession 是管理代理與最終使用者互動的容器。entrypoint 是互動式會話的起點,類似於 Web 伺服器中的請求處理器。AgentServer 是協調工作排程並為使用者會話啟動代理的主程序。這些術語在用法範例和文件連結中反覆出現。

agents 條目編號 2 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

安裝和所需環境變數,agents

README 展示的安裝命令是 pip install "livekit-agents[openai,deepgram,cartesia]",它安裝核心函式庫以及 OpenAI、Deepgram 和 Cartesia 的外掛。執行代理需要設定 LIVEKIT_URL、LIVEKIT_API_KEY 和 LIVEKIT_API_SECRET 這三個環境變數。README 沒有解釋如何獲得這些憑證,但提供了指向 LiveKit 文件的連結。

agents 條目編號 3 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

一個最小的 Python 語音代理範例,agents

README 包含一個完整範例:用 @function_tool 定義天氣查詢工具,建立 AgentServer,並用 @server.rtc_session() 註冊入口點。在入口點內,AgentSession 設定了 VAD、STT、LLM 和 TTS。範例展示了兩種模型設定方式:使用 livekit.inference 模組並傳入像 "deepgram/nova-3" 和 "google/gemma-4-31b-it" 這樣的字串,或者使用外掛類別如 deepgram.STT、openai.LLM 和 cartesia.TTS。代理本身接收指令和工具清單,然後 session.start() 和 session.generate_reply() 開始對話。

agents 條目編號 4 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

多代理切換與測試框架,agents

第二個範例示範了兩個代理類別 IntroAgent 和 StoryAgent 之間的切換,前者收集資訊後返回一個新的代理實例。README 還介紹了測試方法:可以編寫 pytest 測試來執行 AgentSession,並斷言事件的順序,包括函式呼叫和助理訊息。範例使用 result.expect.next_event() 逐步檢查事件,並使用一個基於 LLM 的 judge 來驗證意圖。README 指出自動化測試很重要,因為 LLM 的行為是非確定性的。

agents 條目編號 5 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

執行代理:console、dev 和 start 模式,agents

README 記錄了執行代理指令碼的三種方式。python myagent.py console 以終端模式執行,支援本機音訊輸入輸出,不需要外部伺服器。python myagent.py dev 啟動帶熱重載的代理伺服器,每個程序可以同時託管多個代理。python myagent.py start 以生產就緒的最佳化方式執行。README 還提到 Agents Playground 可以快速上手,並指向 examples 目錄取得更多場景。

agents 條目編號 6 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

授權與生態系統,agents

Agents 框架採用 Apache-2.0 授權,而 LiveKit 的輪轉偵測模型使用單獨的 LiveKit Model License。Apache-2.0 文字授予永久、全球性、非排他、免費、不可撤銷的版權授權,允許複製、準備衍生作品和分發該作品。它還包含專利授權,但若提起專利訴訟則會終止。README 的生態表格列出了 Python agents SDK、Node.js agents 函式庫、多種平台的用戶端 SDK,以及開源的 LiveKit 伺服器和相關元件。README 沒有提供任何效能聲明、可用性保證或正式的支援政策。

agents 條目編號 7 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

agents 的實際試跑界線

第1項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第2項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第3項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第4項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第5項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第6項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第7項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第8項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第9項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第10項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第11項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第12項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第13項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第14項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第15項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第16項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第17項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。第18項核對針對 agents:先閱讀 README 的功能與使用段落,確認它描述的輸入、輸出和必要依賴,再在隔離目錄執行同一個入口。記錄 livekit/agents 的命令列回應、產生檔案、網路請求與錯誤文字,將成功和失敗案例分開保存。這樣才能判斷目前環境是否真的符合專案條件,也不會把文件沒有承諾的行為誤寫成既定能力。

agents 條目編號 8 只對應本專案的 README 與 main 分支;版本切換後需重新比對。

編輯結論

livekit/agents 適合需要 README 所列功能、且能接受其文件已明列限制的使用者;不適合把倉庫描述直接當成效能、相容性或安全保證的人。採用前請依 agents README 的具體命令、入口或設定檔完成最小試跑,觀察輸出、錯誤與資源需求,再決定是否納入你的工作流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記