剖析语音 Agent 的真实应用场景,指出预约、库存查询、价格比较等减少等待时间的场景才真正可用,而非演示驱动的披萨订购。
我知道披萨演示会引起广泛关注。
AI 打电话给餐厅。AI 订购食物。每个人都发布这个视频。
然后我读了评论。
在深入挖掘 OpenClaw 线程时,我发现了一篇关于用 OpenClaw、Vapi 和 Twilio 订购披萨的帖子。一条回复立即切入要点:既然网站上订披萨已经很容易了,为什么有人会想要那样呢?
披萨是消费者语音 Agent 的一个糟糕的基准,因为它解决了错误的问题。大多数语音 Agent 演示都是这样。它们优化的是新奇性,而有用的东西要无聊得多:
检查店铺库存
处理电话菜单树
等待接听,这样你就不用等了
这是我看到的第一个让 OpenClaw 语音工作流感觉像软件而不是表演的框架。
改变我想法的线程一点都不浮夸。
一个用户描述了使用 OpenClaw 来:
预约牙医
用 ElevenLabs 语音 API 拨打本地商店,询问他们是否有某物有货
每周检查多家杂货店,并通过电子邮件返回价格对比
这是一个真实的工作流。
不是"替代我整个生活管理栈"。不是"做我的数字礼宾"。只是:打几个电话,问受限的问题,返回结构化的答案。
之所以有效,是因为它消除了等待时间,而不是点击时间。
点击通过披萨网站很容易。和牙医办公室通话等待不是。
这个区别比大多数 Agent 演示承认的要重要得多。
电话任务通常有明确的成功标准。
"给我预约周二或周三下午5点以后的理发。"
"问问家得宝有没有 20x20x1 MERV 13 过滤器有货。"
"检查这家牙医是否接收新患者。"
"打3家店,短信告诉我最便宜的价格。"
每一个都有明确的结果。
要么预约存在,要么不存在。要么物品有货,要么没有。要么办公室接收新患者,要么不。
那就是 Agent 需要的形状。
护栏的有用版本不是"让模型听起来像人类"。而是"让模型知道完成是什么样子"。
披萨订购比看起来要复杂:
网站已经更好地处理了流程
所以 Reddit 怀疑者意外地很有用。他们不是在否定这个类别。他们是在定义实际上能经受现实考验的狭窄部分。
架构说明了一切。
OpenClaw 语音通话插件的形状不像自主购物机器人。它的形状像一个受监督的电话工作人员。
Twilio Programmable Voice
OpenClaw 审批、结果和升级工具
重要的不是它能说话。
很多系统都能说话。
重要的是通话控制表面。
该插件暴露的函数如下:
这是一个工作流界面,不是演示界面。
如果我作为工程师审查这个,ask_owner 是我首先会圈出的功能。
这就是将系统从"漂亮"变成"也许可用"的功能。
Agent 打电话给理发师。
理发师说下午5点满了,但5点30分有空。
OpenClaw 给你发短信。
答案被反馈到实时通话中。
预约完成。
这正是正确的边界。
不是完全自主。不是假信心。只是足够的监督来保持工作流运行。
对于这类工作流,规则集相当简单:
让 Agent 处理重复的路径。
当偏好改变时暂停。
当涉及金钱或身份时升级。
返回结构化结果。
这就是我想从任何处理电话任务的 Agent 那里得到的。
模糊的自然语言摘要是不够的。你想要最后得到机器可读的东西。
{
"task": "book_haircut",
"status": "booked",
"business": "Northside Barbers",
"time": "2026-08-06T17:30:00-04:00",
"notes": "Walk in through side entrance"
}
该输出可以触发 n8n、Make、Zapier 或自定义工作流中的下一步。
在幕后,这个类别之所以有效,是因为 Twilio Media Streams 可以通过 WebSocket 推送实时通话音频。
这为你提供了对电话通话的事件驱动控制,而不是将通话视为黑盒。
有用的事件类型包括:
最后一个比听起来更重要。
如果你曾经构建过实时语音系统,你会知道细小的计时错误会让演示快速感觉断裂。诸如在挂断前等待标记回声之类的事情正是将"在视频中有效"与"在生产中有效"分开的细节。
处理 Media Streams 的最小 Node 服务器大致如下:
import WebSocket, { WebSocketServer } from 'ws';
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (raw) => {
const msg = JSON.parse(raw.toString());
switch (msg.event) {
case 'connected':
console.log('call stream connected');
break;
case 'start':
console.log('stream started', msg.start);
break;
case 'media':
// forward mulaw audio payload to your realtime model/session
break;
case 'dtmf':
console.log('dtmf received', msg.dtmf);
break;
case 'mark':
console.log('playback acknowledged', msg.mark);
break;
case 'stop':
console.log('stream ended');
break;
}
});
});
如果你想要一个实用的状态机,它看起来更像这样:
type CallState =
| 'dialing'
| 'ivr'
| 'talking_to_human'
| 'awaiting_owner_approval'
| 'completed'
| 'failed'
| 'transferred';
interface CallContext {
businessName: string;
requestedTask: string;
preferredSlots: string[];
state: CallState;
retries: number;
}
function shouldAskOwner(offeredSlot: string, ctx: CallContext) {
return !ctx.preferredSlots.includes(offeredSlot);
}
function shouldTransferToOwner(reason: string) {
return [
'payment_required',
'identity_verification_required',
'agent_confused',
'human_requested'
].includes(reason);
}
这才是真正的实现心态:状态、重试、升级、结构化结果。
没有人想坦白说出的昂贵部分
语音 Agent 很酷。
语音 Agent 也非常擅长生成账单。
这是使许多"只是自动化电话通话"演示快速崩溃的原因。
你通常同时为多层付费:
语音平台分钟数
公开定价使问题相当明显。
现在看看人们实际想要的工作流:
请求批准的文本所有者
如果失败,明天重试
这不是一个整洁的请求/响应周期。
这是一个混乱的死路、重试、保留音乐和部分进展的图。
这意味着基于使用的计费会惩罚使工作流有用的确切行为。
如果 Agent 是持久的,成本上升。如果 Agent 负责任地重试,成本上升。如果通话需要更长时间是因为现实很复杂,成本上升。
这就是为什么这个类别对任何运行大量自动化的人来说会很快变得奇怪。
这是大多数团队关注错误优化的地方。
他们无休止地比较模型质量,然后忽视了他们的自动化经济学已经破裂的事实。
如果你在 n8n、Make、Zapier、OpenClaw 或自定义工作流引擎内运行 AI Agent,痛点通常不是让一个语音 Agent 工作。
这是让它整天运行而不用一直盯着 token 支出。
这就是为什么我认为固定费率计算是这里更有趣的基础设施层。
有了 Standard Compute,OpenAI 兼容 API 部分是要点:
现有 OpenAI SDK 和 HTTP 客户端的即插即用替代品
可预测的月度定价,而不是按 token 的焦虑
对于重试、分支和连续运行的自动化很有用
跨 GPT-5.4、Claude Opus 4.6 和 Grok 4.20 的动态路由
如果你的工作流是不断调用、检查、等待和重试的类型,可预测的成本击败理论上的 token 效率。
这比人们承认的要重要得多。
这取决于你想要多少控制。
对于这个用例,我认为 OpenClaw 是最有趣的选项。
不是因为它最闪亮。因为它承认关于语音 Agent 的真相:
他们需要升级路径
如果你想经常运行他们,你需要成本控制
这比通常的"看我的 AI 点午餐"演示更接近真实软件。
如果我构建这个的一个生产版本,我会保持它很狭窄。
这周周一到周五下午5点后给我预约理发
将请求解析为结构化任务。
打电话给2-3个候选商业。
用 press_phone_keys 导航 IVR。
用实时语音模型提出预订问题。
如果提供的时间在偏好之外,触发 ask_owner。
在无应答或回调请求时重试。
返回结构化结果。
{
"status": "booked",
"business": "Northside Barbers",
"slot": "Thursday 5:30 PM",
"contacted": 2,
"failedAttempts": 1,
"nextAction": null
}
在操作上,我想要基本的 CLI 可见性。
openclaw onboard
openclaw status --all
openclaw logs --follow
因为是的,无聊的运维仍然很重要。
如果这东西每周三早上打电话给商店,我想知道在我关心它有多"AgentLike"之前它是否还活着。
这是我认为人们实际上会继续运行的版本:
让 OpenClaw 打电话给几个地方
仅对受限的对话使用语音 AI
当偏好改变时请求批准
当身份、支付或边界情况出现时转接给人工
以结构化结果结束
没有假通用人工智能。没有掌声寻求的披萨机器人。
只是一个受限的语音工作人员在处理烦人的电话任务,而你做其他事情。
这是一个更好的产品形状。
如果这个类别继续增长,我不认为赢家会是最自主的系统。
我认为会是有以下特点的系统:
最清晰的交接
最可预测的经济性
老实说,这听起来比看 AI 订购佩帕罗尼披萨有用得多。
而且比我会信任打电话给我牙医的软件更接近。