Patter Test Mode实战:免电话、免STT/TTS,在终端快速调试语音AI Agent

发布时间:2026/10/16 2:23:47
Patter Test Mode实战:免电话、免STT/TTS,在终端快速调试语音AI Agent
【免费下载链接】PatterOpen-source voice-AI SDK. The Vapi/Retell alternative for builders who want to own the stack. Give your AI agent a phone number in 4 lines — Python and TypeScript, MIT licensed, Twilio, Telnyx, and Plivo.项目地址https://gitcode.com/gh_mirrors/patte/Patter点击查看免费下载Patter Test Mode是开源语音 AI SDK Patter 内置的终端调试模式不需要真实电话线路不需要 STT/TTS 服务纯文本对话即可模拟完整通话让语音 AI Agent 的开发调试速度成倍提升。本文带你用最短路径上手 Test Mode。一、什么是 Patter Test ModePatter 是一个 MIT 协议的开源语音 AI SDKVapi/Retell 的自托管替代方案支持 Python 和 TypeScript可对接 Twilio、Telnyx、Plivo 三大运营商。调试语音 Agent 时传统流程很痛苦拨真电话 → 等 STT 识别 → 等 LLM 响应 → 等 TTS 合成一轮交互耗时数秒还要消耗真金白银的通话费用。Test Mode 的解法是用纯文本 REPL 模拟电话会话免电话不经过运营商模拟 Caller/Callee 号码️免 STT/TTS直接键入文本直接输出文本⚡完整生命周期on_call_start/on_call_end等回调与生产环境serve()完全一致核心实现位于 test_mode.py入口是Patter客户端的test()方法见 client.py。二、3 步快速上手 Test Mode第 1 步安装 SDKpip install getpatter第 2 步定义一个 Agentimport asyncio from getpatter import Patter, Twilio, OpenAIRealtime phone Patter(carrierTwilio(), phone_number15550001234) agent phone.agent( engineOpenAIRealtime(), # 从环境变量读取 OPENAI_API_KEY system_promptYou are a helpful customer service agent for Acme Corp., first_messageHello! Welcome to Acme Corp. How can I help you today?, )第 3 步一行启动asyncio.run(phone.test(agent))启动后即进入交互式终端会话 PATTER TEST MODE Agent: gpt-realtime-mini / alloy Provider: openai_realtime Call ID: test_a1b2c3d4e5f6 Caller: 15550000001 → Callee: 15550000002 ------------------------------------------------------------ Commands: /quit /transfer number /hangup /history Agent: Hello! Welcome to Acme Corp. How can I help you today? You: I need to return an item Agent: Id be happy to help with your return...无需部署隧道、无需公网地址改一行 prompt 就能立刻重新测试。三、终端命令清单随时查看历史与模拟挂断Test Mode 提供 4 个快捷命令覆盖测试中最高频的操作命令作用/quit结束测试会话/hangup模拟你主动挂断/transfer number模拟转接到指定号码/history打印完整对话历史调试技巧多轮对话后输入/history可以一次性核对 Agent 是否记住了上下文、有没有答非所问比翻日志快得多。四、与on_message处理器配合和生产行为一致如果你用自定义消息处理器而非内置 LLM 循环Test Mode 会以与serve()完全相同的方式调用它包括自动注入call_control转接、挂断控制async def on_message(data, call_control): user_text data[text] history data[history] if cancel in user_text.lower(): await call_control.transfer(15550001111) return Let me transfer you to our cancellation team. return fYou said: {user_text} asyncio.run(phone.test(agent, on_messageon_message))只要处理器签名接受两个参数call_control就会被自动注入——这意味着你无需为测试环境编写任何分支代码。五、零配置调试内置 LLM Loop 与 Tool Calling不提供on_message且环境中存在OPENAI_API_KEY时Test Mode 自动启用内置 LLM 循环并支持 Tool Calling——工具通过配置的 webhook 执行与生产完全一致。餐厅订位场景示例agent phone.agent( system_promptYou are a restaurant booking assistant., tools[ { name: check_availability, description: Check table availability, parameters: { type: object, properties: { date: {type: string}, party_size: {type: integer}, }, }, webhook_url: https://api.example.com/availability, } ], ) asyncio.run(phone.test(agent))在终端输入帮我查一下周六晚上 4 人的位置即可观察 Agent 是否正确触发check_availability工具。六、事件回调复现生产通话的完整生命周期Test Mode 会触发与serve()相同的on_call_start/on_call_end回调结束时的transcript字段包含完整对话记录方便做自动化断言async def on_call_end(event): print(fTest call ended: {event[call_id]}) print(fTranscript: {len(event[transcript])} messages) asyncio.run(phone.test( agent, on_call_starton_call_start, on_call_endon_call_end, ))七、TypeScript 版本同等的调试体验 TypeScript SDK 提供完全对等的 Test ModeAPI 一一对应onMessage/onCallStart/onCallEndnpm install getpatterimport { Patter, Twilio, OpenAIRealtime } from getpatter; const phone new Patter({ carrier: new Twilio(), phoneNumber: 15550001234 }); const agent phone.agent({ engine: new OpenAIRealtime(), systemPrompt: You are a friendly receptionist for Acme Corp., firstMessage: Hello! How can I help?, }); await phone.test({ agent });官方文档分别位于 python-sdk/test-mode.mdx 与 typescript-sdk/test-mode.mdx行为一致性由测试用例 test-mode.test.ts 保障。八、适用边界什么时候该用 Test Mode✅适合迭代 system prompt、开场白first_message验证多轮上下文、工具调用链路调试转接/挂断等call_control逻辑CI 中快速回归配合on_call_end拿到 transcript⚠️不适合验证 VAD、打断barge-in、TTS 音色与延迟——这些只有真实语音链路才能暴露文档明确标注 Test Mode 仅面向开发除内置 LLM 循环所需的 OpenAI 外不依赖任何外部 API最佳实践先用 Test Mode 把对话逻辑调到满意再切换到serve()真机验证语音链路两者代码零改动。总结Patter Test Mode 把改一行 prompt → 拨真电话验证的低效循环压缩成改一行 prompt → 终端回车验证免电话、免 STT/TTS、免部署是语音 AI Agent 开发中最值得优先使用的调试工具。配合/history、事件回调与 Tool Calling 支持绝大多数 Agent 逻辑问题都能在终端内闭环解决。赞分享【免费下载链接】PatterOpen-source voice-AI SDK. The Vapi/Retell alternative for builders who want to own the stack. Give your AI agent a phone number in 4 lines — Python and TypeScript, MIT licensed, Twilio, Telnyx, and Plivo.项目地址https://gitcode.com/gh_mirrors/patte/Patter点击查看免费下载相关推荐Vision-Agents × Fish Audio 实战用 Fish TTS/STT 插件快速构建实时语音 AgentVision Agents × Fish Audio 实战用 Fish TTS/STT 插件快速构建实时语音 Agent 本篇技术指南围绕 Vision AgAgent 框架音视频计算机视觉Patter Evals 评测体系实战指南如何系统化测试语音 AI Agent彻底告别人肉听电话Patter Evals 评测体系实战指南如何系统化测试语音 AI Agent彻底告别人肉听电话 为什么语音 AI Agent 不能再靠人肉听电话abogen有声书生成完整指南从 EPUB 到带同步字幕的音频只需 5 秒起步abogen有声书生成完整指南从 EPUB 到带同步字幕的音频只需 5 秒起步 你有没有过这样的经历手里有一本 EPUB 电子书、一份 PDF 报告或者一AI 应用语音音频媒体生成本地部署创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考