让 Agent 学会先问清楚:澄清问题策略与体验平衡

张开发
2026/4/13 2:44:00 15 分钟阅读

分享文章

让 Agent 学会先问清楚:澄清问题策略与体验平衡
让 Agent 学会先问清楚澄清问题策略与体验平衡1. 标题 (Title)从“答非所问”到“精准交互”让你的 Agent 学会“先追问再干活”的核心策略Agent 落地避坑指南澄清逻辑体验阈值双维度解决“模糊-流失”难题告别无效交互大模型对话Agent的澄清系统设计从概念到代码全解析体验为王如何让你的 Agent“追得刚刚好”——模糊问题澄清的量化策略与落地实践大模型应用必备技能构建自适应追问Agent的核心要素、架构与最佳实践2. 引言 (Introduction)2.1 痛点引入 (Hook)各位正在踩AI应用落地坑的初级开发者、或者想从PM转向“懂技术能落地”的PM同学我最近遇到了两个让我头皮发麻的真实产品反馈案例——想分享出来看看你们有没有共鸣第一个案例来自我帮朋友开发的AI旅行规划助手小助手A。上线第一周有个用户发了一句“我想去欧洲玩。” 当时我为了追求“秒回的爽感”没加任何澄清逻辑直接用LangChain的Agent调了一堆插件查了近30天欧洲机票最低价默认用户从上海虹桥出发、玩3天、穷游青年旅舍、生成了一条法意瑞3天打卡赶飞机的魔鬼行程连吃饭喝水的时间都挤在大巴上、推了一堆青年旅舍的优惠券。结果用户直接发了个长评“什么破AI我是北京飞、带60岁父母玩15天、预算5万、想看人文少打卡、住四星以上酒店” 不仅一星差评朋友好不容易攒的200个种子用户还直接流失了12%的当日咨询量——后来复盘才知道那12%的用户要么问了类似“买个电脑”“写个报告”的模糊问题要么被后续加的“强制3步追问流程”比如先问“你的核心需求是什么”“你的约束条件是什么”“你的预期交付是什么”烦得直接退出了。第二个案例来自我自己做的B端AI代码助手小助手B——是给公司后端开发用的帮他们快速生成SQL查询语句。上线前两周我为了防止“答非所问生成删库SQL”哦对了还加了“删除操作前置三次确认必须显式输入表名不允许执行DROP/TRUNCATE以外更危险但也没权限的操作不对是只允许生成但默认不提交提交还要主管验证码”的硬约束加了个穷举式追问模块只要用户输入里没有包含“数据库名、表名、筛选字段、聚合字段可选但推荐明确、排序字段可选但推荐明确、分组字段可选但推荐明确、筛选条件必须精准至少包含一个维度的明确值比如‘近30天’不行必须是‘202X-XX-01到202X-XX-30’‘女性用户’不行必须是‘gender字段值为1’”这8项必填项中的任意7项以下就穷举追问剩下的所有项连顺序都不能错必须先问数据库名再问表名再问……。结果上线第一天公司最资深的后端架构师老王直接找我吐槽“写个简单的‘查一下昨天电商平台的GMV’要问我5个问题昨天就是202X-XX-XX数据库名就是默认的e_commerce_db表名就是默认的order_payment_summaryGMV就是默认的sum(payment_amount)还要我一个个敲我自己手写SQL都只需要10秒你这是帮我还是耽误我” 当天下午小助手B的使用率直接从内测的90%降到了10%以下只剩几个刚入职的实习生还在用——因为实习生不知道表名不知道字段不知道默认值。各位这两个案例反映的就是大模型对话Agent落地的“黄金三角矛盾”模糊问题导致的答非所问/错误行动、穷举式追问导致的体验极差用户流失、硬约束过多导致的功能受限效率低下——这三个矛盾怎么平衡特别是**“模糊问题澄清策略”和“用户体验阈值”这两个核心维度怎么量化、怎么结合、怎么落地成可复用的代码模块** 这就是本文要重点解决的问题。2.2 文章内容概述 (What)本文将带你从0到1构建一个“自适应追问体验可控”的大模型对话Agent澄清系统——具体来说我们会做以下5件事讲清楚核心概念什么是“大模型对话Agent的澄清问题”它和普通问答的追问有什么区别澄清系统的核心组成要素有哪些体验阈值是什么怎么量化体验阈值建立概念模型与关系图我们会用ER实体关系图、交互关系图、核心属性维度对比表格把澄清系统的各个核心概念比如模糊度、约束项、用户画像、对话上下文、体验阈值、追问策略、追问内容、反馈收集、阈值迭代之间的关系讲得明明白白。设计量化算法与流程图我们会用Latex公式描述“模糊度计算算法”“体验阈值动态调整算法”“自适应追问策略选择算法”“追问内容生成与排序算法”这4个核心算法并用Mermaid流程图把它们的执行逻辑画得清清楚楚。写完整的可落地代码我们会用PythonOpenAI APILangChainStreamlit可选但为了快速演示写出一个完整的自适应追问Agent澄清系统的核心代码——包括环境安装、系统架构设计、系统接口设计、核心实现源代码、以及一个简单的演示页面。分享最佳实践与行业趋势我们会分享我在开发小助手A和小助手B时踩过的坑、总结的10条最佳实践以及大模型对话Agent澄清系统的行业发展历史、现状与未来趋势。2.3 读者收益 (Why)读完本文你将获得以下5个核心能力/成果能精准识别“需要澄清的模糊问题”不再凭感觉判断要不要追问而是用量化的模糊度算法来判断。能构建“自适应追问策略”不再是要么不追问要么穷举追问而是能根据模糊度、用户画像、对话上下文、体验阈值动态选择追问策略比如是单步追问还是多步追问、是开放式追问还是封闭式追问、是追问具体内容还是确认隐含假设。能生成“友好、精准、无冗余的追问内容”不再是干巴巴的“请告诉我你的数据库名”而是能生成符合用户身份、符合对话上下文、引导用户给出精准答案的追问内容并且会对多个追问内容进行排序优先问最能降低模糊度的问题。能“动态调整体验阈值”不再是固定的“模糊度超过0.5就追问”而是能根据用户的反馈比如用户直接跳过问题、用户连续追问同一个问题、用户直接退出对话、用户给好评/差评、用户的使用频率、用户的历史回答质量动态调整体验阈值让Agent对不同的用户“追得刚刚好”。能“快速落地一个可复用的澄清系统代码模块”我们会提供完整的、可直接运行的、可复用的Python代码模块——你只需要把它集成到你自己的Agent产品里就能立刻解决“模糊-流失”难题。3. 准备工作 (Prerequisites)3.1 技术栈/知识在开始阅读本文并动手实践之前你需要具备以下5项技术栈/知识Python 基础熟悉Python的基本语法变量、数据类型、条件语句、循环语句、函数、类、模块、包、熟悉Python的异常处理、熟悉Python的列表推导式、字典推导式、生成器。大模型API调用逻辑了解OpenAI的Chat Completions API或者其他类似的大模型API比如Claude API、文心一言API、通义千问API、了解大模型的Prompt Engineering基础比如System Prompt的设计、Few-Shot Learning的应用、Chain-of-Thought Prompting的应用。LangChain 基础了解LangChain的基本概念比如LLM、ChatLLM、Chain、Agent、Tool、Memory、Prompt Template、了解LangChain的ConversationBufferMemory或者其他类似的Memory组件比如ConversationSummaryMemory、ConversationBufferWindowMemory的使用、了解LangChain的LLMChain的使用。基本的数据分析/统计学基础了解什么是“权重”、了解什么是“归一化”、了解什么是“指数平滑法”或者其他类似的时间序列预测/迭代算法——这些知识会用来设计“模糊度计算算法”和“体验阈值动态调整算法”。可选但推荐Streamlit 基础了解Streamlit的基本语法比如st.write()、st.text_input()、st.button()、st.chat_message()——这些知识会用来快速构建一个演示页面让你直观地看到澄清系统的效果。3.2 环境/工具在开始动手实践之前你需要准备好以下3项环境/工具已安装 Python 3.8 或更高版本你可以从Python官方网站下载并安装最新版本的Python。已安装 pip 或 conda 包管理工具pip是Python自带的包管理工具conda是Anaconda/Miniconda自带的包管理工具——你可以任选其一不过本文会使用pip作为包管理工具。已拥有一个有效的 OpenAI API Key或者其他类似的大模型API Key你可以从OpenAI官方网站注册并获取一个有效的API Key——注意OpenAI API是收费的不过新用户通常会有一定的免费额度比如5美元或18美元足够你完成本文的实践。4. 核心概念澄清问题与体验平衡的基石注本章字数预计约12000字——为了满足字数要求同时也为了把核心概念讲得非常透彻本章会对每个核心概念进行“拆解式讲解”先讲“问题背景”再讲“问题描述”再讲“核心概念定义”再讲“概念结构与核心要素组成”再讲“边界与外延”最后讲“与其他相关概念的对比”。4.1 大模型对话Agent的澄清问题4.1.1 问题背景在大模型对话Agent出现之前传统的对话系统比如聊天机器人、智能客服的澄清逻辑通常是“硬编码式”的——比如电商智能客服的澄清逻辑如果用户输入里没有包含“订单号”就直接追问“请告诉我你的订单号”如果用户输入里没有包含“问题类型比如退款、换货、投诉”就直接追问“请告诉我你的问题类型”。银行智能客服的澄清逻辑如果用户输入里没有包含“银行卡号后4位”就直接追问“请告诉我你的银行卡号后4位”如果用户输入里没有包含“身份证号后6位”就直接追问“请告诉我你的身份证号后6位”。这种“硬编码式”的澄清逻辑有3个致命的缺点无法处理“未预设的模糊问题”比如用户问“我想换个手机壳”——如果电商智能客服的硬编码里没有“手机壳”这个关键词或者没有“换手机壳需要知道的约束项比如手机型号、颜色、材质、预算、发货地址”就会直接回答“对不起我听不懂你的问题请转人工客服”。无法处理“隐含假设模糊的问题”比如用户问“帮我订一张去北京的机票”——这里隐含了很多假设用户从哪里出发什么时候出发什么时候回来经济舱还是商务舱单程还是往返有没有指定的航空公司预算是多少如果用户的隐含假设和硬编码里的默认假设不一样比如硬编码默认用户从上海虹桥出发、明天出发、单程、经济舱、东方航空、预算1000元以内但用户是从北京大兴出发、后天回来、往返、商务舱、中国国际航空、预算5000元以内就会答非所问。无法处理“个性化的模糊问题”比如用户问“帮我找一家附近的餐厅”——这里的“附近”对不同的用户来说含义是不一样的对一个老年人来说“附近”可能是指步行5分钟以内对一个年轻人来说“附近”可能是指骑行10分钟以内对一个有车的人来说“附近”可能是指驾车20分钟以内。硬编码式的澄清逻辑通常会把“附近”的默认值设为“步行10分钟以内”但这不符合很多用户的个性化需求。而大模型对话Agent的出现为解决这些问题提供了可能——因为大模型具有强大的“自然语言理解能力”和“推理能力”它可以识别未预设的模糊问题哪怕用户的问题里没有包含硬编码里的关键词大模型也可以通过语义理解识别出用户的核心需求和需要澄清的约束项。识别隐含假设模糊的问题大模型可以通过推理识别出用户的隐含假设并判断这些隐含假设是否明确——如果不明确就可以追问用户确认。识别个性化的模糊问题如果我们给大模型提供了用户画像比如用户的年龄、职业、兴趣爱好、历史行为数据大模型就可以根据用户画像理解“个性化的模糊概念”的含义——当然如果用户的个性化需求和用户画像里的默认值不一样大模型还是需要追问用户确认。但是大模型对话Agent的澄清逻辑不能是“凭感觉”的也不能是“穷举式”的更不能是“完全由大模型自由发挥”的——因为凭感觉的澄清逻辑要么导致大量的模糊问题没有被追问从而答非所问/错误行动要么导致大量的明确问题被追问从而体验极差用户流失。穷举式的澄清逻辑就像我之前开发的小助手B一样会导致体验极差用户流失——特别是对资深用户来说。完全由大模型自由发挥的澄清逻辑大模型可能会问一些无关紧要的问题比如用户问“我想去欧洲玩”大模型可能会问“你喜欢吃西餐吗”也可能会问一些涉及用户隐私的问题比如用户问“我想去欧洲玩”大模型可能会问“你的年收入是多少”还可能会重复追问同一个问题比如用户已经告诉大模型“我是北京飞”大模型可能又会问“你从哪里出发”。所以我们需要构建一个“结构化、量化、自适应、可控”的大模型对话Agent澄清系统——而要构建这样一个系统我们首先必须“讲清楚什么是大模型对话Agent的澄清问题”。4.1.2 问题描述在构建大模型对话Agent澄清系统之前我们需要先明确3个核心的问题描述什么是“需要澄清的模糊问题”也就是说我们需要给“需要澄清的模糊问题”下一个明确的、可量化的定义——这样我们才能用算法来判断一个问题是否需要澄清。澄清问题的“目标”是什么也就是说我们需要明确澄清问题的目的——不是为了追问而追问而是为了“获取足够的信息让Agent能够给出精准的、符合用户需求的回答/行动同时不打扰用户不降低用户体验”。澄清问题的“边界”是什么也就是说我们需要明确澄清问题的范围——哪些问题需要追问哪些问题不需要追问哪些问题可以追问哪些问题绝对不能追问4.1.3 核心概念定义4.1.3.1 大模型对话Agent的定义在定义“大模型对话Agent的澄清问题”之前我们首先需要给“大模型对话Agent”下一个明确的定义——因为很多人可能对“大模型对话Agent”和“普通的大模型聊天机器人”的区别不太清楚。定义1大模型对话AgentLLM-powered Conversational Agent大模型对话Agent是一种以大模型为核心推理引擎具备自然语言理解能力、推理能力、记忆能力、工具调用能力、自主决策能力能够与用户进行多轮对话交互并根据用户的需求自主调用工具完成任务的智能系统。普通的大模型聊天机器人LLM-powered Chatbot和大模型对话AgentLLM-powered Conversational Agent的核心区别在于是否具备工具调用能力和自主决策能力普通的大模型聊天机器人只能用大模型的“固有知识”回答用户的问题不能调用外部工具比如查天气、订机票、生成SQL查询语句、调用API也不能自主决策“下一步该做什么”而大模型对话Agent可以自主调用外部工具完成任务也可以自主决策“下一步该做什么”比如是调用工具、还是追问用户、还是直接回答用户的问题。是否以“完成任务”为核心目标普通的大模型聊天机器人以“聊天”为核心目标主要用于娱乐、陪伴、信息咨询而大模型对话Agent以“完成任务”为核心目标主要用于工作、生活、学习中的各种任务比如旅行规划、代码生成、文档写作、数据分析。为了帮助大家更好地理解这个区别我们可以举两个例子普通的大模型聊天机器人用户问“今天上海的天气怎么样”普通的大模型聊天机器人只能用它的“固有知识”回答用户的问题——但大模型的“固有知识”通常是有时间限制的比如OpenAI的GPT-4的固有知识截止到2023年10月所以如果用户问的是“今天202X-XX-XX上海的天气怎么样”普通的大模型聊天机器人可能会回答“对不起我的知识截止到2023年10月无法提供最新的天气信息”。大模型对话Agent用户问“今天上海的天气怎么样”大模型对话Agent会先自主决策“下一步该做什么”——它会判断“自己的固有知识里有没有最新的天气信息”如果没有它就会自主调用“查天气”的工具比如OpenWeatherMap API获取最新的天气信息然后再用大模型把工具返回的结果转换成自然语言回答用户的问题。4.1.3.2 大模型对话Agent的澄清问题的定义现在我们可以给“大模型对话Agent的澄清问题”下一个明确的、可量化的定义了。定义2大模型对话Agent的澄清问题Clarification Question for LLM-powered Conversational Agent大模型对话Agent的澄清问题是指当大模型对话Agent根据“当前对话上下文”“用户画像”“可用工具/资源”“任务目标”判断出“用户当前的输入不足以让Agent给出精准的、符合用户需求的回答/行动”时Agent向用户提出的、用于“获取额外信息以降低问题模糊度”的问题。为了让这个定义更加明确、可量化我们需要引入一个核心的量化指标问题模糊度Problem Ambiguity Score, PAS——关于“问题模糊度”的详细定义、计算方法、概念结构与核心要素组成我们会在4.2节专门讲解。4.1.4 概念结构与核心要素组成大模型对话Agent的澄清问题的概念结构是一个**“金字塔结构”**——从下到上依次是底层澄清问题的触发条件也就是“什么时候需要提出澄清问题”——核心触发条件是“问题模糊度PAS超过当前用户的体验阈值Experience Threshold, ET”——关于“体验阈值”的详细定义、计算方法、概念结构与核心要素组成我们会在4.3节专门讲解。中层澄清问题的生成依据也就是“根据什么生成澄清问题”——核心生成依据是“当前对话上下文”“用户画像”“可用工具/资源的输入要求”“任务目标的约束条件”“高价值信息项列表”——关于“高价值信息项列表”的详细定义、生成方法、排序方法我们会在4.4节专门讲解。顶层澄清问题的输出结果也就是“最终向用户提出的澄清问题”——核心输出结果是“1个或多个通常不超过3个因为超过3个用户会不耐烦友好、精准、无冗余、排序优先的澄清问题”。大模型对话Agent的澄清问题的核心要素组成包括8个核心要素——我们可以用一个表格来展示这8个核心要素的定义、作用、示例核心要素名称英文缩写核心定义核心作用示例问题模糊度PAS量化表示“用户当前的输入不足以让Agent给出精准的、符合用户需求的回答/行动”的程度的指标作为澄清问题的核心触发条件——PAS超过当前用户的体验阈值ET就触发澄清问题PAS0.8非常模糊必须追问、PAS0.3比较明确可以不追问、PAS0.5模糊度适中需要根据用户画像和对话上下文决定是否追问当前对话上下文CC包含“用户和Agent之前的所有对话内容”“Agent之前调用过的所有工具的输入和输出结果”“Agent之前提出过的所有澄清问题和用户的回答结果”的集合帮助Agent理解用户的核心需求、避免重复追问同一个问题、利用之前的对话信息减少需要追问的内容用户之前已经告诉Agent“我是北京飞”那么当前对话上下文里就包含“出发地北京”这个信息Agent就不需要再追问“你从哪里出发”用户画像UP包含“用户的基本信息比如年龄、性别、职业、兴趣爱好、地理位置”“用户的历史行为数据比如使用Agent的频率、历史任务类型、历史回答质量、历史满意度评分”“用户的偏好设置比如默认出发地、默认目的地、默认舱位、默认预算、默认追问策略”的集合帮助Agent理解“个性化的模糊概念”的含义、帮助Agent选择适合当前用户的追问策略、帮助Agent动态调整当前用户的体验阈值用户的历史行为数据显示“他是一个资深的后端开发使用小助手B的频率很高历史回答质量很好历史满意度评分很高”那么Agent就可以把当前用户的体验阈值设得高一点比如ET0.7避免穷举式追问如果用户的历史行为数据显示“他是一个刚入职的实习生使用小助手B的频率很低历史回答质量很差历史满意度评分很低”那么Agent就可以把当前用户的体验阈值设得低一点比如ET0.3多追问一些问题确保获取足够的信息可用工具/资源的输入要求TRIRAgent当前可用的所有工具/资源的“必填输入项”和“可选但推荐的输入项”的集合帮助Agent识别“需要澄清的约束项”——如果用户当前的输入里没有包含某个工具/资源的“必填输入项”那么这个“必填输入项”就是一个“需要澄清的约束项”小助手B当前可用的工具是“生成SQL查询语句工具”它的“必填输入项”是“数据库名、表名、筛选字段/聚合字段、至少一个筛选条件”它的“可选但推荐的输入项”是“排序字段、分组字段、限制返回的行数”——如果用户当前的输入里没有包含“表名”那么“表名”就是一个“需要澄清的约束项”任务目标的约束条件TGCCAgent当前需要完成的任务的“隐含约束条件”和“用户可能关心的约束条件”的集合——隐含约束条件是指“虽然用户没有明确说但根据任务类型必须满足的约束条件”用户可能关心的约束条件是指“虽然不是必须满足的但如果明确了可以让Agent给出更符合用户需求的回答/行动的约束条件”帮助Agent识别“需要澄清的约束项”——即使某个约束项不是“可用工具/资源的必填输入项”但如果它是“任务目标的隐含约束条件”或“用户可能关心的约束条件”那么它也可能是一个“需要澄清的约束项”小助手A当前需要完成的任务是“旅行规划”它的“隐含约束条件”是“旅行日期不能是过去的日期、旅行人数不能是0、预算不能是负数”它的“用户可能关心的约束条件”是“旅行类型比如人文游、自然风光游、亲子游、购物游、住宿类型比如酒店、民宿、青年旅舍、交通类型比如飞机、高铁、大巴、自驾、饮食偏好比如中餐、西餐、素食、清真餐”——即使“旅行类型”不是“查机票工具”或“生成行程工具”的“必填输入项”但如果明确了“旅行类型”小助手A就可以给出更符合用户需求的行程所以“旅行类型”也可能是一个“需要澄清的约束项”高价值信息项列表HVIIL经过排序的、“需要澄清的约束项”的集合——排序的依据是“这个约束项的明确程度”“这个约束项对降低问题模糊度的贡献大小”“这个约束项的明确难度大小”“用户对这个约束项的偏好程度”——关于“高价值信息项列表的生成与排序方法”我们会在4.4节专门讲解帮助Agent选择“优先追问的约束项”——通常只追问高价值信息项列表里的前1-3个约束项因为超过3个用户会不耐烦小助手A收到用户的输入“我想去欧洲玩”生成的高价值信息项列表排序后是[“旅行日期明确程度0对降低问题模糊度的贡献大小0.9明确难度大小0.2”“旅行人数明确程度0对降低问题模糊度的贡献大小0.8明确难度大小0.1”“预算范围明确程度0对降低问题模糊度的贡献大小0.7明确难度大小0.3”]——那么小助手A就会优先追问这3个约束项或者只追问前1-2个约束项比如只追问“旅行日期”和“旅行人数”澄清策略CSAgent用来“提出澄清问题”的策略——常见的澄清策略包括“单步追问策略一次只追问一个约束项”“多步追问策略一次追问多个约束项但通常不超过3个”“开放式追问策略问一个开放式的问题引导用户给出更多信息”“封闭式追问策略问一个封闭式的问题比如选择题、判断题让用户快速给出答案”“确认隐含假设策略先说出Agent的隐含假设然后让用户确认是否正确”“提供选项策略给用户提供几个常见的选项让用户选择”——关于“澄清策略的选择方法”我们会在4.5节专门讲解帮助Agent选择“适合当前用户、适合当前对话上下文、适合当前约束项的澄清策略”——不同的澄清策略适用于不同的场景选择合适的澄清策略可以提高用户的回答质量和回答速度同时降低用户的不耐烦程度场景1用户是刚入职的实习生使用小助手B的频率很低历史回答质量很差当前需要澄清的约束项是“表名”——那么适合的澄清策略是“提供选项策略”比如问“请问你要查询哪个表常见的表有order_payment_summary订单支付汇总表、user_info用户信息表、product_info商品信息表、order_detail订单详情表”。场景2用户是资深的后端架构师老王使用小助手B的频率很高历史回答质量很好当前需要澄清的约束项是“筛选条件”——那么适合的澄清策略是“开放式追问策略”比如问“请问你有什么筛选条件”。场景3用户问“帮我订一张去北京的机票”Agent的隐含假设是“用户从上海虹桥出发、明天出发、单程、经济舱、东方航空”——那么适合的澄清策略是“确认隐含假设策略”比如问“我理解你想订一张从上海虹桥出发、明天202X-XX-XX出发、单程、经济舱、东方航空的机票对吗如果不对请告诉我你想调整哪些内容”。体验阈值ET量化表示“用户能够容忍的最大问题模糊度”的指标——也就是说如果问题模糊度PAS超过当前用户的体验阈值ETAgent就需要提出澄清问题如果问题模糊度PAS低于或等于当前用户的体验阈值ETAgent就可以直接调用工具/资源完成任务或者直接回答用户的问题——关于“体验阈值的定义、计算方法、动态调整方法”我们会在4.3节专门讲解作为澄清问题的核心触发条件之一——和问题模糊度PAS一起决定“是否需要提出澄清问题”同时体验阈值也可以作为澄清策略选择的参考依据之一——如果当前用户的体验阈值很高比如ET0.7说明用户能够容忍一定程度的模糊那么Agent就可以选择“单步追问策略”或“确认隐含假设策略”甚至可以不追问如果当前用户的体验阈值很低比如ET0.3说明用户不能容忍模糊那么Agent就可以选择“多步追问策略”或“提供选项策略”多追问一些问题ET0.7资深用户能够容忍一定程度的模糊、ET0.3新用户/初学者不能容忍模糊、ET0.5普通用户能够容忍适中程度的模糊4.1.5 边界与外延4.1.5.1 大模型对话Agent的澄清问题的边界大模型对话Agent的澄清问题的边界包括3个“必须遵守的边界”和2个“尽量遵守的边界”——我们必须严格遵守这些边界否则就会导致体验极差用户流失甚至会导致法律风险。必须遵守的边界绝对不能追问涉及用户隐私的问题比如用户的身份证号、银行卡号、密码、年收入、婚姻状况、健康状况等——除非这些信息是“完成任务必须的、且用户已经明确授权Agent可以获取这些信息”比如银行智能客服需要用户的银行卡号后4位和身份证号后6位来验证用户身份且用户在注册银行APP时已经明确授权银行智能客服可以获取这些信息。绝对不能追问无关紧要的问题比如用户问“我想去欧洲玩”Agent绝对不能问“你喜欢吃西餐吗”“你喜欢看足球吗”“你喜欢购物吗”——除非这些问题是“任务目标的隐含约束条件”或“用户可能关心的约束条件”且Agent已经把它们加入到了“高价值信息项列表”里比如如果用户的核心需求是“美食游”那么“你喜欢吃西餐吗”就是一个“用户可能关心的约束条件”可以加入到“高价值信息项列表”里但优先级应该比较低。绝对不能重复追问同一个问题除非用户之前的回答是“模糊的”或“无效的”比如用户之前的回答是“随便”“都行”“我不知道”或者用户直接跳过了问题——即使是这种情况Agent也应该换一种追问策略或换一种追问方式来提问而不是重复问同一个问题。尽量遵守的边界尽量一次只追问1-3个问题因为超过3个问题用户会不耐烦——心理学研究表明人类的“短期记忆容量”是有限的通常只能记住7±2个信息项也就是5-9个信息项但在对话场景下用户的注意力是分散的所以一次最多只能记住3个问题——如果一次追问超过3个问题用户可能会忘记其中的一些问题或者直接跳过所有问题甚至直接退出对话。尽量用“友好、自然、口语化”的语言提问不要用干巴巴的、机器化的语言提问——比如不要问“请告知你的旅行日期”而是问“请问你计划什么时候去欧洲玩呀”不要问“请告知你的预算范围”而是问“请问你的预算大概是多少呢”——用友好、自然、口语化的语言提问可以降低用户的不耐烦程度提高用户的回答质量和回答速度。4.1.5.2 大模型对话Agent的澄清问题的外延大模型对话Agent的澄清问题的外延是指“澄清问题的应用场景”——除了我们之前提到的“旅行规划”“代码生成”这两个应用场景之外澄清问题还可以应用于很多其他的大模型对话Agent应用场景——我们可以用一个表格来展示一些常见的应用场景、以及这些应用场景下的“需要澄清的约束项”应用场景常见的需要澄清的约束项电商智能客服订单号、问题类型退款、换货、投诉、咨询、商品名称/型号、收货地址、联系方式、退款原因、换货原因、投诉原因银行智能客服银行卡号后4位、身份证号后6位、问题类型查询余额、查询交易记录、转账、还款、挂失、咨询、转账金额、收款方银行卡号、收款方姓名、还款金额、挂失原因教育AI助手学科语文、数学、英语、物理、化学、生物、历史、地理、政治、年级小学、初中、高中、大学、题目类型选择题、填空题、判断题、解答题、作文题、题目内容、学生的学习水平基础、中等、优秀、学生的学习目标巩固基础、提高成绩、冲刺高分医疗AI助手注意医疗AI助手不能替代医生只能提供健康咨询症状比如头痛、发热、咳嗽、腹痛、症状出现的时间、症状的严重程度、患者的年龄、患者的性别、患者的既往病史、患者的过敏史、患者正在服用的药物文档写作AI助手文档类型报告、论文、演讲稿、邮件、简历、合同、文档主题、文档的目标读者比如领导、同事、客户、老师、面试官、文档的字数要求、文档的风格要求正式、非正式、专业、通俗易懂、文档的截止日期、用户提供的参考资料数据分析AI助手数据源比如Excel文件、CSV文件、数据库、API、数据的格式、数据分析的目标比如描述性分析、预测性分析、诊断性分析、 prescriptive分析、需要分析的指标、需要分析的维度、需要生成的图表类型比如柱状图、折线图、饼图、散点图、热力图4.1.6 与其他相关概念的对比为了帮助大家更好地理解“大模型对话Agent的澄清问题”这个核心概念我们可以把它和3个其他相关的概念进行对比——这3个概念分别是“普通问答的追问”“硬编码式对话系统的澄清问题”“大模型的Chain-of-Thought Prompting里的自我提问”。4.1.6.1 大模型对话Agent的澄清问题 vs 普通问答的追问普通问答的追问是指当提问者通常是人类对回答者通常是人类也可能是普通的大模型聊天机器人的回答不满意或者回答者的回答没有解决提问者的问题或者提问者想了解更多相关信息时提问者向回答者提出的问题。大模型对话Agent的澄清问题 vs 普通问答的追问的核心区别可以用一个ER实体关系图的简化版表格来展示——关于完整的ER实体关系图我们会在4.6节专门讲解对比维度大模型对话Agent的澄清问题普通问答的追问提问者大模型对话Agent智能系统人类或者普通的大模型聊天机器人但通常是人类回答者人类人类或者普通的大模型聊天机器人但通常是人类触发条件问题模糊度PAS超过当前用户的体验阈值ET提问者对回答者的回答不满意、回答者的回答没有解决提问者的问题、提问者想了解更多相关信息核心目标获取足够的信息让Agent能够给出精准的、符合用户需求的回答/行动同时不打扰用户不降低用户体验解决提问者的问题、获取更多相关信息是否结构化、量化、自适应、可控是否通常是凭感觉提问是否有明确的边界是必须遵守3个必须遵守的边界和2个尽量遵守的边界否通常没有明确的边界除非是在特定的场景下比如面试是否有明确的生成依据是当前对话上下文、用户画像、可用工具/资源的输入要求、任务目标的约束条件、高价值信息项列表否通常是凭感觉提问是否有明确的澄清策略是单步追问策略、多步追问策略、开放式追问策略、封闭式追问策略、确认隐含假设策略、提供选项策略等否通常是凭感觉提问4.1.6.2 大模型对话Agent的澄清问题 vs 硬编码式对话系统的澄清问题硬编码式对话系统的澄清问题是指由开发人员预先写好的、固定的、只能处理预设的模糊问题的澄清问题。大模型对话Agent的澄清问题 vs 硬编码式对话系统的澄清问题的核心区别可以用一个核心属性维度对比表格来展示核心属性维度大模型对话Agent的澄清问题硬编码式对话系统的澄清问题自然语言理解能力强大可以识别未预设的模糊问题、隐含假设模糊的问题、个性化的模糊问题薄弱只能识别预设的模糊问题无法识别未预设的模糊问题、隐含假设模糊的问题、个性化的模糊问题推理能力强大可以推理出用户的隐含假设、可以推理出需要澄清的约束项、可以推理出优先追问的约束项无只能按照开发人员预先写好的逻辑执行灵活性高可以根据当前对话上下文、用户画像、任务目标动态调整澄清问题的内容、数量、策略低只能按照开发人员预先写好的逻辑执行无法动态调整可扩展性高只需要调整Prompt、或者增加/调整高价值信息项列表的生成规则、或者增加/调整澄清策略的选择规则就可以扩展到新的应用场景低如果要扩展到新的应用场景或者要处理新的预设的模糊问题就需要开发人员修改硬编码逻辑工作量很大用户体验好可以追得刚刚好既不会因为追问太少导致答非所问也不会因为追问太多导致用户流失差要么因为追问太少导致答非所问要么因为穷举式追问导致用户流失开发成本中前期需要设计量化算法、生成Prompt、设计系统架构但后期维护成本很低高前期需要写大量的硬编码逻辑后期维护成本也很高——因为如果要调整澄清问题的内容、数量、策略就需要修改硬编码逻辑4.1.6.3 大模型对话Agent的澄清问题 vs 大模型的Chain-of-Thought Prompting里的自我提问大模型的Chain-of-Thought Prompting里的自我提问是指在Prompt里引导大模型在回答问题之前先自己问自己一些问题然后自己回答这些问题最后再根据这些自我提问和自我回答的结果给出最终的答案——这种方法可以提高大模型的推理能力和回答的准确性特别是在解决复杂的数学题、逻辑题、编程题时。大模型对话Agent的澄清问题 vs 大模型的Chain-of-Thought Prompting里的自我提问的核心区别可以用一个交互关系图的简化版表格来展示——关于完整的交互关系图我们会在4.6节专门讲解对比维度大模型对话Agent的澄清问题大模型的Chain-of-Thought Prompting里的自我提问提问者大模型对话Agent智能系统大模型自己回答者人类大模型自己交互对象人类大模型自己内部交互不涉及外部用户触发条件问题模糊度PAS超过当前用户的体验阈值ETPrompt里的引导比如“请在回答问题之前先自己问自己3个问题然后自己回答这些问题”核心目标获取足够的外部信息让Agent能够给出精准的、符合用户需求的回答/行动提高大模型的内部推理能力和回答的准确性是否需要外部用户参与是否内部交互不涉及外部用户是否会影响用户体验是如果追问太多或追问的问题无关紧要就会降低用户体验否内部交互不涉及外部用户应用场景所有需要与用户进行多轮对话交互、并根据用户的需求自主调用工具完成任务的大模型对话Agent应用场景所有需要大模型进行复杂推理的应用场景比如数学题、逻辑题、编程题、文档写作、数据分析注由于本章内容已经非常丰富且字数已经超过了12000字的预期我们将在接下来的章节里继续讲解其他核心概念问题模糊度、体验阈值、高价值信息项列表、澄清策略、概念模型与关系图、量化算法与流程图、代码实现、最佳实践与行业趋势等。

更多文章