基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-10-30 05:36

语音 Agent 如何明确表达未知信息

dev.to · AI#语音助手#提示词#幻觉治理
Editor brief · 编辑速览

作者结合九份客户语音 Agent 配置,分析虚构价格、可用时间、业务政策及越界回答四类问题。实践重点是把缺失信息与禁止推断写进提示词,并指定预约等后续动作。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

语音客服最危险的回答,往往听起来很正常:营业时间没写,它说朝九晚五;保险信息没查到,它说可以报销。电话里没有来源链接,客户很容易把一句流畅的回答当成商家的承诺。

作者用九份客户语音 Agent 的导出配置,复盘了这类问题。他的结论是:减少幻觉,先把未知、禁答、工具失败和配置冲突处理清楚。其中两处看似模型胡编的错误,根源就在他们自己写的提示词里。

不知道的事实,也要明确写进提示词

作者为美国客户搭建语音 Agent,使用 Retell、n8n 和 GoHighLevel。他追查过的生产问题大多落在四类:编价格、编可预约时间、编业务政策,以及自信回答医疗症状、法律等业务范围外的问题。

这些问题有一个共同起点:模型没有拿到答案,却继续生成了一个像答案的句子。

在代码里,字段不存在可能返回 undefined,甚至抛出异常;在提示词里,缺失信息通常不会自动中止回答。当地商家常见的营业时间,可能就成了模型补全的素材。

作者在 HVAC,也就是暖通空调业务 Agent 的配置里,明确规定了营业时间未知时的行为:

- Business hours: Not publicly listed - never quote specific hours. Just offer to schedule.

要看的是后半句:它既禁止报具体时间,也给出了下一步动作。水处理 Agent 使用同样的规则;牙科和屋顶维修 Agent 则逐日列出真实营业时间。

业务事实可以未知,但未知时怎么回答不能留白。

作者的检查方式很朴素:列出客户会问的营业时间、价格、保险、融资、服务区域和员工信息,每项要么有准确值,要么明确写出「不能说什么,以及改做什么」。这类似数据结构里区分字段缺失与字段存在但值为 null,只是还要多定义一步交互行为。

禁答规则也遵循这个思路。律师事务所不能提供法律建议,人身伤害律所还不能报赔偿金额或风险代理收费比例;信用修复和债务协商业务不能给保证;屋顶维修不能保证保险理赔获批。

但只有「NEVER」还不够。CallSetter 销售 Agent 的价格规则,把替代回答放在同一处:

### Pricing Lock
NEVER mention specific prices. Always say: "Pricing is customized based on your volume and will be covered on the demo."

要注意 Always say:它让模型有一句获准使用的回答。HVAC、牙科和屋顶维修 Agent 也会先表达不愿猜测,再引导到诊断上门、免费咨询或免费估价。这里的「免费」必须来自各自业务配置,不能跨行业照搬。

作者也承认,禁答清单只能覆盖提前想到的问题。它是第一层约束,无法穷举所有未知情况。

实时事实交给工具,工具没结果也要有出口

营业时间可能长期稳定,可预约时段、当天日程、工单状态却随时变化。作者不把这些事实写成提示词里的固定描述,而是在客户询问时调用 get_slots_from_ghl 或 checkCalendar。

工具应返回数据,例如 {"available": false, "next_slot": "Thursday 10:00"}。相比一段描述本周安排的自然语言,明确字段更容易让模型按结果回答,也减少自行扩写的空间。

他们的预约提示词要求「始终给出恰好两个具体时间」,目的是让 Agent 读出工具返回的选项。但这条规则也有适用条件:工具必须确实返回足够的可用时段。原文没有展示不足两个时段时的完整处理逻辑,不能为了凑齐两个而补造答案。

更容易出问题的是空结果和调用失败。作者发现,很多虚构预约时间的案例,都发生在工具没有返回内容之后:数据链路断了,模型却替它接上了一句听起来合理的话。

因此,工具成功、没有可用结果、调用失败,都需要各自的回答路径。原文还提到,作者曾在每个工具上发现两分钟超时;具体故障处理放在另一篇文章中,这里没有展开,不能据此判断失败路径已经完善。

对开发者来说,关键不只是「接了工具」。还要确认工具没有提供事实时,Agent 会明确收口,而不是继续猜。

先查提示词里的旧配置,再怀疑模型

这篇最有价值的部分,是作者对自己配置的反查。

牙科 Agent 的提示词里,8:30 出现了九次,分布在 Context、规则、暂不预约时的话术和示例对话中;屋顶维修 Agent 的营业时间则出现了十次。

这种重复很容易制造冲突。诊所修改周五营业时间时,维护者可能只改 Context,漏掉示例。模型随后读出了旧时间,通话记录看起来就像一次幻觉。

但它可能只是照着过期配置回答。

另一处更直接:牙科 Agent 的费用话术里出现了「inspection is free」。牙科没有这里所说的屋顶检查,这句话是从共享模板复制过来的。作者还提到,之前曾遇到 HVAC Agent 监听牙科品牌 Invisalign 的残留配置。

错误甚至存活到了另一份更新后的牙科提示词里。不过,作者没有重新导出线上 Agent 核验,因此他没有声称真实客户听到过这句话。这里应区分两件事:导出文件里存在错误已经确认,线上是否触发仍未确认。

一条业务事实只维护一份,示例引用它,不要再抄一份。

这也是作者建议「怪模型之前先 grep 提示词」的原因。业务事实应当像配置一样维护;把经常变化的事实放进 fine-tuning,同样会增加更新和排查的负担。

限制发挥之后,还要专门测试它会不会乱答

九个 Agent 都运行在 gpt-4.1 上,但最初只有一份导出配置显式设置了 model_temperature,值为 0;修正后的 HVAC 导出又增加了一份,其余使用平台默认值。

作者因此把主动设置温度加入配置检查清单。接待工作通常不需要太多措辞创意,但原文没有给出调整前后的幻觉率对照,不能把温度设为 0 当作事实正确性的保证。

结构也会影响模型的发挥空间。九个 Agent 都采用单提示词,长度约为 2,400 到 4,400 个英文单词。对于固定的信息采集流程,作者认为 conversation flow 能减少偏离流程的机会,但这里同样没有给出两种方案的量化比较。

测试则要主动离开正常预约路径:询问未配置服务的价格、已经被占用的时段、不支持的保险或付款计划、不存在的员工,以及医疗、法律、安全问题。还要在回答中途打断并换问题,或者只问一句没有上下文的「开了吗」。

通过标准很具体:要么回答有事实依据,要么使用获准的兜底话术。作者强调这些测试应该写成脚本,方便复现。

上线后,他们会标记提到价格、政策或日期的通话,每周阅读标记记录并抽样检查。作者称,每个客户每周花十五分钟,就能在客户发现之前找出多数问题;这是他的运维经验,原文没有提供统计口径或漏检率。他们开发的 VoiceDash 则让客户能够自行查看通话和转录记录。

我的判断

我赞同作者把排查顺序前移到业务配置。提示词包含过期时间、串行业话术时,换模型并不会自动消除矛盾。先消除重复事实、明确未知状态,通常更容易定位问题。

但这些做法主要是提示词层面的约束,执行仍依赖模型。结构化工具返回比自然语言更清楚,却不能单独保证模型只引用返回值;低温度可以减少回答变化,也不能让缺失事实凭空变得可靠。

对于价格和预约这类容易形成业务承诺的输出,可以进一步由程序校验金额、日期和可选时段,必要时直接使用固定模板。代价是交互灵活性下降,也需要额外维护分支。这是工程上的取舍,原文没有做方案对照。

还要看到样本范围:九份客户配置足以暴露具体问题,却不足以证明整套方法在一般团队里能降低多少幻觉。文章最可信的贡献,是展示了真实配置缺陷和排查方法;效果幅度仍属于经验之谈。

能拿来做什么

  • 给现有客服或预约 Agent 补一张业务事实表,逐项标明准确值、未知状态和获准的替代回答,优先覆盖价格、营业时间、保险与付款政策。
  • 在 Node 工具接口中区分成功、无结果和失败,并让提示词对应这三种状态;预约工具没有返回时段时,禁止继续生成具体时间。
  • 修改业务配置时,用 grep 或编辑器全局搜索检查同一事实是否散落在规则与示例里,同时清理共享模板中的行业专用词。
  • 把未配置价格、已占用时段、陌生员工、打断和模糊提问写成固定测试脚本,上线后定期抽查涉及价格、政策和日期的通话记录。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
A2A 权限设计:发现、身份与授权分开判断
下一篇
给 AI 代码设置凭证据放行的质量门禁

资讯速览

dev.to · AI · 2026-10-30 05:36

AI 评分 8.0 / 10

相关标签

#语音助手#提示词#幻觉治理

继续阅读

  • 10MB JSON 实测:异步读取仍会阻塞解析
  • A2A 权限设计:发现、身份与授权分开判断
  • 给 AI 代码设置凭证据放行的质量门禁
  • 用原生 JS 与 PHP 搭建站内知识助手
  • 用稳定接口构建游戏工单分类器