如何用 LiveKit 与 AssemblyAI 在 ai-engineering-hub 运行 MCP 语音 Agent?

发布时间:2026/9/11 5:06:03
如何用 LiveKit 与 AssemblyAI 在 ai-engineering-hub 运行 MCP 语音 Agent? 如何用 LiveKit 与 AssemblyAI 在 ai-engineering-hub 运行 MCP 语音 Agent【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub这篇文章对应一个具体任务在 ai-engineering-hub 仓库的mcp-voice-agent/目录下完成安装、配置并首次运行一个 MCP 语音 Agent。该 Agent 通过 LiveKit 接入房间用 Silero VAD 做语音活动检测、AssemblyAI 做语音转文本STT再结合 Firecrawl 网络搜索与通过 MCP 接入的 Supabase 数据库工具处理用户语音指令。跑通后Agent 会主动连接 LiveKit、初始化 Supabase MCP 服务器、建立语音交互能力并开始监听同时用一句 “Hello! How can I assist you today?” 打招呼见 README 与 agent.py。准备条件开始之前确认以下条件都满足Python 3.xREADME 对安装的要求是 “Ensure you have Python 3.x installed”五组服务凭证缺一不可README 列出的 RequirementsFirecrawl API keySupabase access tokenOpenAI API keyAssemblyAI API keyLiveKit credentialsNode.js 环境可用。agent.py 中的entrypoint通过MCPServerStdio(npx, args[-y, supabase/mcp-server-supabaselatest, --access-token, SUPABASE_TOKEN])以npx拉起 Supabase MCP 服务器子进程没有可用的npx时这一步无法完成。安装依赖项目提供了两种等价的方式任选其一。方式一运行项目自带的 setup.sh。脚本会创建名为venv的虚拟环境并激活它脚本内对 Windows 的激活命令是注释掉的示例然后安装依赖包python3 -m venv venv source venv/bin/activate pip install livekit-agents livekit-plugins-assemblyai livekit-plugins-openai livekit-plugins-silero python-dotenv pydantic-ai-slim[openai,mcp]方式二按 README 手动安装pip install -r requirements.txt两种方式安装的依赖一致以 requirements.txt 为准livekit-agents、livekit-plugins-assemblyai、livekit-plugins-openai、livekit-plugins-silero、python-dotenv、pydantic-ai-slim[openai,mcp]。需要注意一个已知的文档缺口agent.py 第 16 行from firecrawl import FirecrawlApp, ScrapeOptions但requirements.txt与setup.sh都没有包含 Firecrawl 的 Python SDK 依赖。如果启动时出现ModuleNotFoundError: firecrawl需要自行安装 Firecrawl Python SDK这是源码导入所要求、但依赖清单未覆盖的包。配置 .env 环境变量在项目目录下把 mcp-voice-agent/.env.example 复制为.env并把占位值替换为真实凭证cp mcp-voice-agent/.env.example mcp-voice-agent/.env.env.example中给出的变量和占位形式如下引号内均为文档原有示例需要替换LIVEKIT_URLwss://YOUR-PROJECT.livekit.cloud LIVEKIT_API_KEYyour-key LIVEKIT_API_SECRETyour-secret OPENAI_API_KEYyour-key SUPABASE_ACCESS_TOKENyour-token FIRECRAWL_API_KEYyour-key其中LIVEKIT_URL的示例值wss://YOUR-PROJECT.livekit.cloud表示 LiveKit 云项目的地址替换成你自己的项目地址即可。这里有一处文档不一致按文档原样列出README 的 Setup 章节要求在.env中配置 7 个变量比.env.example多出一个ASSEMBLYAI_API_KEYFIRECRAWL_API_KEYyour_firecrawl_api_key SUPABASE_ACCESS_TOKENyour_supabase_token OPENAI_API_KEYyour_openai_api_key ASSEMBLYAI_API_KEYyour_assemblyai_api_key LIVEKIT_URLyour_livekit_url LIVEKIT_API_KEYyour_livekit_api_key LIVEKIT_API_SECRETyour_livekit_api_secret而仓库实际提供的.env.example文件里没有ASSEMBLYAI_API_KEY。文档没有说明 AssemblyAI 插件是否会自动从环境变量读取该 key按 README 的建议在.env中补上这一行是更稳妥的做法。启动 Agent在虚拟环境已激活、.env已配好的前提下启动python agent.py这是 README 给出的运行命令。另请注意 setup.sh 最后一步用的是python agent.py dev即带dev参数。文档没有解释dev参数的具体含义两处命令并存可以分别尝试若某一种启动方式没有按预期进入房间会话换另一种。验证运行结果文档给出的成功依据如下按 README启动后 Agent 会依次1. 连接 LiveKit2. 初始化用于 Supabase 集成的 MCP 服务器3. 建立语音交互能力4. 开始监听用户输入。代码里可以看到对应行为启动时通过logging.basicConfig(levellogging.INFO)打开 INFO 日志MCP 服务器就绪后会打印Found %d MCP toolsFirecrawl 每次搜索会打印Firecrawl returned %d pages会话建立后调用session.generate_reply(instructionsHello! How can I assist you today?)因此能听到这句问候、并且 Agent 能响应你的语音输入说明整条 LiveKit AssemblyAI STT MCP 工具链已跑通。缺少凭证时的失败现象在 agent.py 中是明确的未设置FIRECRAWL_API_KEY或未设置SUPABASE_ACCESS_TOKEN时程序会先记录一条FIRECRAWL_API_KEY is not set in environment.或对应的 Supabase 提示错误日志然后抛出EnvironmentError终止进程。遇到这种情况回到.env检查对应变量是否配置。限制与已知不一致工具白名单agent.py 中build_livekit_tools会显式跳过 Supabase MCP 提供的deploy_edge_function工具只把其余 Supabase 数据库工具注册给 Agent。模型与语音配置是代码写死的llmopenai.LLM(modelgpt-4o)、ttsopenai.TTS(voiceash)、sttassemblyai.STT(word_boost[Supabase])、vadsilero.VAD.load(min_silence_duration0.1)。想换模型或音色需要改 agent.py 源码文档没有提供运行期开关。README 与.env.example在ASSEMBLYAI_API_KEY上的不一致以及依赖清单未包含 Firecrawl SDK 的问题上文已分别标注除此之外README 的运行命令python agent.py与setup.sh的命令python agent.py dev也存在差异按上文的验证方式判断哪种符合你的预期。如果你能正常完成上述安装、配置、启动三步并听到开场问候、让 Agent 用语音完成一次 Firecrawl 搜索或 Supabase 数据库查询这个installation_first_use场景就算跑通了。【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考