Patter Voice SDK

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

Star 数
★ 1.1k
最近更新
2 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.11+ 或 TypeScript 5+电话运营商凭据模型/提供商 API 凭据Shell / 命令行网络访问
典型场景
需要用 Python 或 TypeScript 为餐厅预订场景接听来电的团队,可基于 Inbound Agent 模板构建电话接待员。
不适合
  • 不愿向第三方模型、语音和运营商服务发送通话数据的团队
  • 希望零配置、无需任何外部账号即可上线的团队

这个 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() 配置 OpenAIRealtime、system_prompt 和 first_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?

选择一种 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 有哪些优点和局限?

优点
  • 将 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 与同类方案有什么区别?

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

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Patter Voice SDK 当前 52 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.1k 2 个月前 Python OpenAI API · Claude API
Bolna 语音智能体平台 56 · 缺口较多 自托管服务免费 + 模型费 ★ 816 今天 Python OpenAI API
Voice AI 语音智能体学习路线 63 · 存在缺口 代码库 / SDK免费 ★ 338 8 天前 Astro —
Android Voice AI SDK(MVVM架构) 47 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 2.6k 5 个月前 Kotlin Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
52/ 100 五分制 2.6 / 5
信任安全 11/29
可靠稳定 8/14
适用触发 12/18
规范维护 9/18
有效结果 9/13
证据核验 3/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

证据显示:README 明确说明遥测数据可选择性退出,且不收集敏感内容;依赖审计工作流存在但仅警告不阻塞;外部效果(如电话呼叫)需要用户提供凭证和配置。扣分:未提供最小权限原则的明确说明,用户确认机制未明确,敏感数据处理细节不足,回滚机制缺失,来源归属仅基于仓库元数据。

可靠稳定8 / 14 · 2.9/5

证据显示:README 和代码示例一致,依赖声明存在,但失败消息的具体内容未在提供的文件中展示。扣分:失败消息的详细性和可操作性不足。

适用触发12 / 18 · 3.3/5

证据显示:README 提供了多种使用场景(入站、出站、工具调用等),能力边界通过模式(Realtime/Pipeline/Hybrid)和提供商选择明确,触发条件(如 webhook)有示例,环境适配(本地隧道、生产 webhook)有说明。扣分:部分边界(如并发限制)未明确。

规范维护9 / 18 · 2.5/5

证据显示:README 结构清晰,安装说明明确,命名一致(getpatter),示例丰富,MIT 许可证明确。扣分:版本变更日志未提供,已知限制未明确列出,维护责任未明确。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性高(提供 Python/TypeScript SDK 和模板),边际价值明显(替代 Vapi/Retell),成本效益合理(开源免费)。扣分:未提供性能基准或成本对比数据。

证据核验3 / 8 · 1.9/5

证据显示:README 中的声明(如 27+ 集成)未在提供的文件中得到验证,跨来源佐证不足,事实与推断未明确区分。扣分:缺乏可验证的细节。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 遥测数据虽可退出,但默认开启,需注意隐私合规。
  • 依赖审计仅警告不阻塞,可能存在未修复的已知漏洞。
  • 未提供回滚机制,升级后出现问题难以恢复。
  • 版本变更日志缺失,难以追踪破坏性变更。
证据充分度:低 评估于 2026年8月9日 审查版本 1feec82c4086 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.7.0 v0.7.0 — Inworld integration, security hardening, pipeline barge-in fix
    发布说明摘录
    Minor release — new backward-compatible public API since 0.6.9. Highlights ✨ Inworld integration completed (#199) - TTS pricing corrected & completed (both SDKs): inworld-tts-2 $0.025, inworld-tts-1.5-max $0.035, and the new inworld-tts-1.5-mini $0.015 (per 1k chars, On-Demand list rates). - providers.inworld() TTS config helper; the TTSConfig(provider="inworld") path now builds the adapter. - InworldLLM — OpenAI-compatible preset for the Inworld Realtime Router (https://api.inworld.ai/v1, INWORLD_API_KEY), unlocking 220+ models behind one key. …
    在 GitHub 查看 ↗
  2. v0.6.8
    发布说明摘录
    Release 0.6.8 of both SDKs — Python getpatter (PyPI) and TypeScript getpatter (npm). Rolled up from PR #179. Contents (since v0.6.7): - Multi-agent handoff, local recording, preemptive generation, semantic EOU + review-wave fixes across both SDKs (#169) - Parity & bug-fix wave on 0.6.6/0.6.7 — EvalSession TS port, explicit-kwarg precedence, env-key path, telemetry chain guard (#172) - Telemetry: relay-cap batch chunking, XDG state-dir compliance, visible Python disclosure (#173) - Telemetry: hermes/openclaw CLI usage now visible — schema v6 (#175) …
    在 GitHub 查看 ↗
  3. v0.6.5
    发布说明摘录
    0.6.5 Patter as a voice shell in front of an OpenAI-compatible agent runtime. Added - OpenAICompatibleLLM / HermesLLM / OpenClawLLM pipeline-mode LLM providers (Python + TypeScript) — drive a phone call where each turn is answered by an external agent runtime at POST {base_url}/chat/completions (Hermes, OpenClaw, Ollama, vLLM, LM Studio). - Opt-in session continuity: Hermes X-Hermes-Session-Id (per call) + optional X-Hermes-Session-Key (long-term memory scope); OpenClaw user + x-openclaw-session-key. …
    在 GitHub 查看 ↗

常见问题

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 关闭遥测。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents