真实面经题目 · 原创解析
Agent 系统 Prompt 如何设计迭代,并处理用户请求不完整的意图补全?
这题考 Agent system prompt 的工程化设计,以及用户请求不完整时如何识别缺口、澄清、假设和补全。
真实面经题目 · 原创解析
这题考 Agent system prompt 的工程化设计,以及用户请求不完整时如何识别缺口、澄清、假设和补全。
Agent 系统 Prompt 我会按任务边界、工具边界、输出契约和异常策略来设计。首先明确 Agent 的角色、目标、不能做什么、可用工具、权限边界和回答格式;然后把常见任务拆成意图和槽位,例如对象、时间、范围、约束、输出形式、风险等级。用户请求不完整时,不是直接脑补,而是先检测缺失槽位和歧义,判断缺口是否影响结果。如果是高风险或关键槽位缺失,就追问澄清;如果是低风险且有安全默认值,可以显式说明假设后继续;如果可以通过上下文、用户画像或工具查询补全,就先补全并保留依据。迭代上重点看缺槽误判、过度追问、无依据假设和越权补全这些 badcase,把它们沉淀成规则、few-shot 正反例和评测样本。核心是让模型稳定遵守边界,在信息不足时可控地问、查或假设。
系统 Prompt 不是写一句人设,而是定义 Agent 的职责范围、可用工具、禁止行为、权限边界、输出格式和失败处理。它应该让模型知道什么任务能做、什么必须拒绝、什么时候需要调用工具、什么时候需要用户确认。边界越清晰,后续意图补全越稳定。
处理不完整请求前,要知道完整请求需要哪些信息。可以把任务抽象成意图和槽位,例如目标对象、时间范围、地点、数量、约束条件、输出格式、风险等级和确认方式。用户说得少时,Agent 才能判断缺的是关键参数、偏好参数还是可默认参数。
不是所有缺失都要追问。关键槽位缺失、会造成副作用、涉及金钱权限或不可逆操作时应追问确认;低风险缺失可以用默认值或上下文推断,但要告诉用户假设;可以通过工具查到的信息,就不要让用户重复输入。分级能减少无效追问,也能避免危险脑补。
意图补全可以来自当前对话、历史偏好、用户配置、业务规则、检索结果或工具返回。工程上要区分事实、推断和假设:事实可以直接使用,推断要保留置信度,假设要在回答中说明。否则 Agent 很容易把猜测伪装成确定结论。
这道题里的 Prompt 迭代重点不是发布流程,而是不完整请求的处理质量。应把误补全、过度追问、漏问、越权工具调用和格式错误沉淀成样本,更新槽位定义、澄清规则、默认值规则和 few-shot 正反例。评估时重点看缺槽识别、澄清问题质量、假设是否显式和工具补全是否有依据。
Agent 系统 Prompt 还要规定工具调用前后的行为:工具失败是否重试,结果冲突如何处理,用户不回复澄清问题时如何降级,敏感操作是否二次确认。面试中好的回答不是背 prompt 技巧,而是把信息不足时的决策树讲清楚。
关键参数缺失、高风险或会产生副作用时追问;低风险、可逆、默认规则明确或可从上下文工具可靠获得时,可以说明假设后继续。
给每类任务定义最小必要槽位,只追问影响正确性的缺口。偏好类信息可以先用默认值生成初稿,再让用户修改。
把事实、推断和假设分开;对低置信推断不直接执行;高风险场景必须确认;同时用 badcase 评测惩罚无依据脑补。
可以写少量高价值正反例,覆盖边界情况和失败模式。太多示例会占上下文,也可能让模型过拟合某些表达。
用缺槽识别准确率、澄清问题有效率、无依据假设率、工具补全正确率和任务完成率评估,并按高风险操作、信息查询、内容生成等场景分桶。
先区分风险。如果是低风险信息服务,可以基于最保守假设给可修改草案;如果涉及副作用或安全,应先问最少的关键问题。