先说结论
多轮 RAG 应维护经过确认的业务对象和条件,将追问改写成明确查询,再按当前权限检索。对象切换、资料变化或指代不明时,应更新状态或请求澄清;不能直接把上一轮答案当作新证据,也不能继承用户已失效的访问权限。
读完你会得到
- 对话状态记录确认过的对象、时间和条件,保留未确认项。
- 查询重写不能添加用户未提供的条件或沿用错误答案。
- 每次检索和执行都使用当前授权,不把历史访问当永久许可。
用户先问 E100 的起租期限,接着问“那三天呢”,再说“换成 Pro”。如果助手只搜索最后一句,它可能不知道要找哪款;如果把全部旧对话当依据,又可能继续使用基础款的规则。本文用教学商品对话说明如何处理。
配套资料与延伸阅读
- 企业 AI 知识库怎么搭建:从资料治理到 RAG 评测(阅读)
相关方法与实施说明
- AI 客服怎么落地:知识库、工作流与转人工设计(阅读)
相关方法与实施说明
- 企业 AI / FDE 服务(了解)
带上一段脱敏的多轮失败对话,可用于讨论企业 RAG 的状态、检索与权限链路。
把对话状态与原始消息分开
原始消息保留用户说过什么,状态记录当前任务已经确认的条件。例如商品标识、租期、地区、业务日期和未解决问题。每项状态都能追溯到用户消息或权威资料,不把模型自己的猜测写成已确认值。
状态无需塞进完整对话历史。可以保留小而明确的结构,并在需要时读取证据。Anthropic 的上下文工程文章讨论按需获取信息与维护上下文,本文将它用于业务追问,是本站设计。
本节依据: [1] Anthropic
一段商品对话怎样更新状态
| 用户消息 | 可确认的变化 | 不能自行假定 |
|---|---|---|
| E100 最少租几天? | 对象为 E100,问题为最低租期 | 用户已决定租赁 |
| 那三天呢? | 可能是询问三天费用或适用性 | 币种、地区和具体日期 |
| 换成 Pro | 请求切换对象 | Pro 指唯一型号,旧规则仍适用 |
| 送到上次地址 | 引用历史地址但需授权查询 | 历史地址仍有效或允许展示 |
“那三天呢”在不同前文里含义不同。可以在上下文明晰时改写为明确查询,涉及报价或执行则补齐影响结果的条件。对象切换后,清理原对象专属字段,例如单价、型号规格和适用例外。
可以把当前状态写成一条简短记录:商品 E100 已确认;租期三天由用户提出;地区尚未确认;当前只在咨询,没有发送或下单授权。用户说“换成 Pro”后,商品先变成待确认候选,原 E100 单价失效,三天租期是否继续适用由对话含义确认,地区仍保持未知。新检索只围绕确认后的对象展开。每次改变保存来源消息和时间,后续摘要不得把“待确认”压缩成“已确认”。这份记录不是业务执行凭证;当咨询转成报价或下单,还要重新检查关键条件与用户授权。
测试时让用户先纠正型号,再纠正租期,检查两次修改是否都生效。状态表中失效值可以留审计历史,但不能继续进入新查询或新草稿。
查询重写只补表达,不补业务事实
重写后的问题应包含当前已确认对象、用户想了解的属性和明确条件。保存原问题与重写问题,便于查出重写是否改变了意图。
不要把“这款能送吗”改写成“E100 可以免费送到北京吗”,除非这些条件已经得到确认。添加的免费、地区或型号会引导检索找到看似相关、实际不适用的资料。
Microsoft 的 RAG 文档介绍利用对话上下文规划查询和处理追问。具体产品功能与实现方式不同,这里强调的是重写前后意图可核对,不能把自动规划当成业务条件已确定。
本节依据: [2] Microsoft Learn
上一轮回答不能自动成为下一轮证据
上轮回答可能错误、过期或基于另一对象。新一轮需要当前依据时,重新读取获授权的资料,而不是引用上轮模型结论证明自己。历史回答可以帮助理解用户在讨论什么,但证据仍来自来源资料或业务系统。
对于稳定的文档可以使用受控缓存,但缓存要检查对象、版本和当前权限。价格、库存和余额等变动信息可能需要重新查询,不能沿用对话开始时的值。
对话持续很久时,明确已经确认的条件与待确认项。用户取消后重新开始,旧任务授权、草稿和未执行动作不要默认继续使用。
每一轮都要重新执行必要授权
用户上一轮能查看某合同,不意味着权限撤销后仍能检索或下载。状态里保存的对象标识不能替代授权。服务端按当前身份与业务范围检查检索和引用。
对“给我看另一部门那份”这样的请求,先确认是否有权访问,不让查询重写扩大范围。无权内容不能通过旧会话摘要、缓存或工具错误信息泄露。
任务从咨询转为执行时,再检查当前内容、目标对象与权限。早先讨论过一个收件人,并不代表用户已经授权发送现在这份内容。
多轮测试要覆盖切换和歧义
| 场景 | 预期行为 |
|---|---|
| 同一对象继续问条件 | 正确补充当前对象,不遗漏限制 |
| 切换到相似型号 | 重查新对象,清除旧对象专属条件 |
| 一句话包含两个候选 | 请求澄清或分别说明,不默选 |
| 用户纠正前面信息 | 以最新明确确认更新状态并保留记录 |
| 资料或权限中途变化 | 按当前范围取证,不继承失效内容 |
| 取消后恢复旧任务 | 重新核对条件与授权,不自动执行 |
保存每轮输入、状态、重写查询、返回证据和结果。只测单轮问题无法发现状态污染;只检查最后答复,也可能漏掉中途越权检索。
从一个指代错误开始改进
选一次“回答成另一款”的失败对话,查对象是在状态更新、查询重写、检索还是生成阶段被替换。修复相应位置,用相似型号和用户纠正的样本回归。
这套方法适合客服、商品和制度问答。高影响业务动作需要更明确的确认步骤;并非所有追问都必须反问,但影响结果的对象或条件不明时,应宁可澄清也不把猜测当事实。
常见问题
把全部聊天历史送给模型是否最稳妥?
不一定。旧对象、错误答案和失效条件会形成干扰,也增加内容暴露与成本。维护必要状态、按需读取来源,并通过多轮案例检验。
每个追问都需要重新检索吗?
取决于问题和资料稳定性。纯措辞解释可利用已核验内容;涉及新对象、条件、版本、权限或变动业务数据时,应重新获取必要证据。
资料来源与核对说明
文章中的行业定义与技术方法尽量引用官方或标准组织资料;表格、清单和决策框架是基于这些资料形成的编辑性整理,不代表来源机构对本站服务的背书。
- Effective context engineering for AI agentsAnthropic
正文发表于 2025-09-29。用于按需检索、上下文压缩与任务状态管理;本文状态表为独立教学设计。
- Retrieval augmented generation (RAG) and indexesMicrosoft Learn
用于检索时访问控制、来源元数据、多轮检索与不可信输入的说明。
带上流程、样例和目标,添加企业微信沟通。先确定项目范围与验收方式,再安排实施。


