开发与工程 voice-aitelephonyspeech-to-texttext-to-speechtwiliotypescriptpythonopentelemetry

Patter Voice SDK

为 Python 和 TypeScript 电话 AI 代理提供可替换语音、模型与运营商的全栈 SDK。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Patter 是一个开源 SDK,用于把应用中的 AI 代理连接到电话网络,并处理代理循环、语音识别、语音合成、实时语音、音频处理和运营商接入。它提供 Python 与 TypeScript 两套接口,README 声明二者具备相同的 API 表面、钩子和事件。开发者可按层选择 LLM、STT、TTS、实时引擎、电话运营商以及音频组件,并以 Realtime、Pipeline 或 Hybrid 模式组合。服务可通过 `phone.serve()` 启动;本地开发可启用 Cloudflare quick tunnel,生产环境则使用静态 `webhook_url`。

应用先以 Patter 创建电话接入,例如 Python 中的 Patter(carrier=Twilio(), phone_number="+15550001234"),再用 phone.agent() 配置 OpenAIRealtimesystem_promptfirst_message。随后调用 await phone.serve(agent, tunnel=True),SDK 会启动代理服务,并在启用隧道时创建 Cloudflare quick tunnel、把号码指向该服务。Patter 将通话在电话运营商、语音组件和模型之间编排;可选运营商包括 Twilio、Telnyx 与 Plivo。它还记录供应商无关的 OpenTelemetry 调用追踪,并提供中途故障切换的 LLM fallback chain。

  1. 需要用 Python 或 TypeScript 为餐厅预订场景接听来电的团队,可基于 Inbound Agent 模板构建电话接待员。
  2. 需要拨打外呼电话、处理 AMD 并投递语音留言的业务团队,可采用 Outbound Calls 模板。
  3. 已有 Twilio 号码、但希望把实时语音引擎替换为 `OpenAIRealtime`、Gemini Live、Ultravox 或 ElevenLabs ConvAI 的开发者。
  4. 需要在通话中查询 CRM 或创建工单的集成开发者,可使用 webhook tools 对接自己的后端。
  5. 需要把 Deepgram STT 与 ElevenLabs TTS 等不同供应商组合进电话代理的团队,可使用 Pipeline 模式。
  6. 希望在本机验证完整通话流程、暂时不接入实体电话的开发者,可从终端模拟通话。

这个 Agent 有哪些优点和局限?

优点
  • 将 LLM、STT、TTS、实时引擎、电话运营商和音频处理明确拆层,可分别替换供应商。
  • Python 与 TypeScript 都提供 SDK,README 声明二者的接口、钩子和事件保持一致。
  • 支持 Twilio、Telnyx 和 Plivo,并将工具调用、转接和 guardrails 设计为跨运营商一致的行为。
  • 提供 Realtime、Pipeline、Hybrid 三种组合方式,以及通话中的 LLM fallback chain。
  • 内置本地隧道、终端通话模拟和供应商无关的 OpenTelemetry 追踪。
局限
  • 实际运行依赖外部模型、语音和电话运营商的账户及环境变量凭据。
  • 本地 `tunnel: true` 使用 Cloudflare quick tunnel;生产部署需要配置静态 `webhook_url` 或使用 ngrok。
  • README 未说明各供应商的价格、计费聚合方式或完整的生产容量限制。
  • 遥测默认收集匿名 SDK、供应商/模型分桶及通话事实数据,虽然可通过配置、CLI 或环境变量关闭。
  • 文档虽列出 27+ 集成,但所给材料未逐项描述每个集成的配置差异与功能覆盖度。

如何安装或部署这个 Agent?

选择一种 SDK:TypeScript 运行 npm install getpatter;Python 运行 pip install getpatter。Python 需要 3.11+,TypeScript 需要 5.0+。在环境变量中提供所选供应商和运营商的凭据,例如 Twilio 的 TWILIO_ACCOUNT_SID 与 OpenAI 的 OPENAI_API_KEY;完整变量目录由项目文档列出。

如何使用这个 Agent?

Python 最小调用:from getpatter import Patter, Twilio, OpenAIRealtime;创建 phone = Patter(carrier=Twilio(), phone_number="+15550001234");用 phone.agent(engine=OpenAIRealtime(), system_prompt="You are a friendly receptionist for Acme Corp.", first_message="Hello! How can I help?") 创建代理;最后执行 await phone.serve(agent, tunnel=True)tunnel=True 适合本地开发;生产环境改用静态 webhook_url

这个 Agent 与同类方案有什么区别?

项目将自身定位为 Vapi 和 Retell 的替代方案,面向希望自行掌控语音 AI 技术栈的构建者;所给材料未提供逐项功能或价格对比。

常见问题

Patter 是否绑定某一家模型或电话运营商?
不是。README 列出多家 LLM、STT、TTS、实时引擎和电话运营商,并说明可按层替换;电话运营商包括 Twilio、Telnyx 和 Plivo。
运行前必须准备什么?
需要 Python 3.11+ 或 TypeScript 5.0+,以及所选电话运营商和 AI/语音供应商的环境变量凭据。
本地开发是否需要先部署公网服务?
不一定。`tunnel=True` 会创建 Cloudflare quick tunnel 并将号码指向本地服务;README 也说明可在终端模拟完整通话。
模型供应商在通话中失败会怎样?
Patter 提供自动 LLM fallback chain,README 将其描述为可在通话中进行供应商故障切换。
是否会发送通话内容作为遥测?
README 声明不会收集通话内容、提示词、电话号码、密钥或自由文本;可用 `telemetry=False`、`getpatter telemetry disable`、`PATTER_TELEMETRY_DISABLED=1` 或 `DO_NOT_TRACK=1` 关闭遥测。

相关 Agents