用户意图模糊、指代不清时,如何识别和澄清需求?
未标记
考查重点:指代补全与影响行动的歧义。结合当前对象与历史形成候选意图,可靠信息能补齐就先补;歧义会改变结果时只追问关键槽位,保留已确认约束
本题目录
参考答案
核心回答
先把用户原话与当前对话、正在处理的对象和已知业务状态结合起来,形成候选意图与槽位;再判断缺口是否影响正确执行。能从可靠上下文或工具补齐的先补齐,存在多个合理对象或会改变结果的歧义再追问。不要把“相似问法”直接当成同一意图,也不要逢不确定就让用户重述全部需求。
澄清应只问当前最关键的信息,并保留已确认内容。低风险任务可以说明合理假设后继续,涉及对象不明的修改、购买或发送等操作,要先明确对象与内容。
识别时需要哪些证据
先做口语与错别字规范化,但保留原文;用业务词典、实体库和上下文核对候选。例如“帮我查预约”与“帮我预约”字面接近,一个是查询,一个是创建。上一轮讨论的订单、当前页面或用户明确选择的对象,可以帮助消解“这个”“上次那个”。
状态中保存当前意图、实体、已确认槽位、待问项和来源。用户切换话题时区分新任务与补充信息,不能把旧任务槽位无条件套到新请求。模型自报置信度只作线索,还要看候选差距、必填字段、业务规则与证据一致性。
怎样减少无效追问
假设用户说“想找个好吃的”,位置通常比餐具偏好更影响搜索结果。若当前城市已知,可以直接围绕区域或预算问一个简短问题;若有可靠历史偏好,可先给候选并允许修正。无需固定按品类、位置、预算、场景逐轮询问,更不应把某个面经中的三轮上限当成统一规则。
“按老样子订一下”则可以检索历史订单,展示具体候选、日期和价格变化,再补必需信息。低风险推荐可以用默认条件先给结果;无法确定交易对象时,不能因为用户没回答就自动下单。
如何验证识别与澄清
建立相同表述不同上下文、否定与纠错、指代、多意图、未知意图等测试切片。观察各意图准确率与召回、错误执行率、澄清后成功率、追问轮数和用户放弃情况。阈值根据任务代价校准,不能把模型输出的0.9直接理解为90%执行正确率。
常见追问
用户一直不补信息怎么办? 返回当前能提供的部分结果或少量候选,并说明缺少什么;只暂停依赖该信息的动作,继续不受影响的工作。
对应教程
- 实战项目-电商小二/1-对话系统基础与多轮对话架构:回看意图识别、槽位与根据对话状态决定下一步。
参考资料
- 国内:zero2Agent:模糊需求与澄清:依据信息补齐方式、执行影响与错误代价的区分,说明正文中何时追问及如何选择澄清内容。
- 国内:WeThinkIn:意图识别与业务路由:采用意图、槽位与拒识的分工,说明正文中需求识别与业务路由各自的职责。
- 国内:JavaGuide:结构化输出与Function Calling:依据结构契约对缺失字段和未知值的表达,说明正文中澄清状态如何保持可校验。
- 国外:Rasa:Forms:借鉴动态必需槽位机制,说明正文中如何复用已知信息、只追问关键缺口。
- 国外:Rasa:Fallback and Human Handoff:借鉴分阶段消歧机制,说明正文中先确认候选、仍不明确再调整路径的处理。
相关面经
7 篇阳光保险
AI 应用开发工程师结合意图澄清讲一下如何提高回答的准确率?
字节跳动
Agent 开发后端实习生用户问题比较口语化、有错别字或意图不明确时,如何处理?
迅雷
Agent项目深挖,意图识别你们怎么知道意图分的就是对的,你们指标量化吗? 那如果用户两次提问相似的问法但是实际意图不一样你们怎么去判断出来?(不论用户说什么,进来之后, 本身idealab会清晰地记录一个文档(所以支持混合检索),不同的路由内容。状态机+确认? 结果多方向加权之后(不含RAG),得到一个结果,本地单独model出置信度,最后有兜底。)
美团
AI 全栈开发工程师用户需求很模糊,比如"我想找个好吃的",怎么做多轮澄清
懂车帝
Agent 开发用户的模糊描述,agent怎么优化


