前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库长上下文 文档位置 查询顺序
AIAI 开发提示与上下文设计

在长上下文提示中,为什么建议把文档放在查询之前?

根据模型注意力对序列首尾更敏感的特点,将文档置于查询之前可降低长上下文中关键信息被忽略的风险,改善引用准确性和回答质量。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI 开发#提示与上下文设计#Prompt
先看核心答案
理解线索

文档前置的注意力机制

  1. 首因与近因效应模型对开头和结尾记忆更牢
  2. 中间衰减上下文越长,中段信息越易被忽略
  3. 先读后答让模型先接触材料再做推理

文档前置并非绝对,需要根据任务类型和长度权衡。

核心回答

先记住这个答案

当上下文较长时,模型的注意力对序列开头和结尾更敏感,中间部分的信息往往更难被充分利用。如果把查询放在文档之前,文档整体位于查询之后,其中与查询相关的信息若处于中间位置,容易被模型忽略;同时模型虽会编码全部输入,但查询与文档的相对位置较弱会导致关联不足,从而可能引发对先验内容的依赖。而将文档完整呈现后再把查询置于末尾,可以让查询位于近因效应区域,文档开头部分也受首因效应保护,增强对具体内容的定位能力。然而,这并不能自动保证模型只引用材料,仍需显式提示“仅依据以上内容回答”来减少幻觉,在引用数字或事实时尤其关键。

  • 文档在前可降低关键内容被忽略的风险
  • 关键信息放在开头和结尾更稳
  • 超长上下文仍需分段与摘要

注意力分布与回答规划顺序

Transformer模型对长上下文的注意力并非均匀分布。多项研究观察到模型更容易关注位于序列开头和结尾的信息,位于中间的内容即使重要也可能被忽略。如果查询放在文档之前,查询虽然处于序列开头具有位置优势,但文档中的关键信息可能分散在后续较长的区间内,尤其当相关段落位于中部时,模型在生成时或许难以将其与查询关联,从而更倾向于依赖参数中的先验知识,导致回答偏离文档事实。

文档置于查询前的意义在于使文档相对查询处于注意力有优势的首部,同时查询落在末尾便于模型在输出时回溯。由于模型在处理整个输入时会编码全部内容,顺序的影响主要体现在注意力分配上,而不是信息的可见性。因此,明确要求模型“根据文档内容回答”仍是减少幻觉的关键,仅靠位置调整并不足以保证回答的忠实性。

合同条款问答:文档放前还是放后

假设一个法律AI应用,需要根据一份5000字的合同回答具体条款问题。如果把用户问题'第3条违约责任是什么?'放在最前,而合同全文随后,那么模型虽然编码了全部合同,但第3条的位置可能落在注意力较弱的中间地带,导致模型在生成时没有从原文提取该条款,而是根据通用法律常识猜测常见违约责任,从而偏离合同原文。

较稳妥的方式是先输入完整合同文本,然后在末尾附加'基于以上合同内容,请回答:第3条违约责任是什么?'。这样文档首部与查询末位都处于注意力优势区域,模型更容易将问题与对应条款关联起来。工程设计上,可将文档作为固定前缀,用户查询动态追加在最后,既保证结构统一又方便缓存。

文档前置的失效条件与妥协

当文档极长接近上下文窗口上限时,即使文档前置,中段信息仍可能被模型遗漏。此时单纯依赖位置已不足够,需将文档进行摘要或分段,先让模型对整体结构有了解,再针对特定段落深入。例如可将每个条款做成摘要列表放在最前,再附详细正文。

另一种情况是对话式交互:用户先提问,系统再检索文档作为上下文。这种场景无法将文档物理放在查询之前,解法是明确提示模型'请先阅读提供的材料再回答',并可在检索到的文档后重复一次关键问题,或把问题改写成'基于以下资料,回答原始问题:...',本质上仍让模型先处理文档。

回答前,多想一步

容易答错的地方

认为只影响长文本
有人以为只有超过数万token才需要调整顺序,实际上即使数千token,如果模型对中间细节敏感,顺序也可能影响结果。当文档中关键信息分布较散时,前置查询更容易遗漏部分要点,所以不应只按长度判断。
把查询放最后就万事大吉
文档放前仅是第一步,还需保证文档内结构清晰、关键信息不过度冗长。若文档本身混乱或无关内容过多,模型仍可能无法定位答案。因此应配合清晰的标题、分段以及必要的摘要,甚至使用XML标签标记文档与问题。
试着用自己的话回答

面试官还会怎么问?

如果文档太长无法全部放入上下文怎么办?

需要先做信息检索或分块摘要,只将与查询可能相关的片段传入。可先用查询关键词检索,再按时间顺序或相关性排列文档片段,但注意每段前应注明来源,并让模型综合多个片段。

在对话历史中,应如何安排旧文档与新查询?

应该将完整历史上下文作为前缀,最新查询作为末尾。如果之前已有多轮,可把当前问题重述到文档之后,例如'基于以上全部对话,请回答最新问题:...',以确保模型看到最后一句是明确指令。

所有任务都适合文档前置吗?

不完全。创意写作或头脑风暴时,问题前置反而有助于约束思路。文档前置主要适用于需要引用或分析给定材料的任务,如问答、摘要、信息提取。应根据任务是否依赖外部事实来判断。

从一道题,走向一组知识

把知识连起来

提示与上下文设计

为什么提示词中明确直接的指令比委婉暗示更有效?

同属「提示与上下文设计」专题,接着看 提示词工程 明确指令 直接表述 在具体场景中的处理方式。

提示与上下文设计

上下文接近窗口上限时,应优先裁剪哪类内容?

同属「提示与上下文设计」专题,接着看 上下文裁剪 历史优先 截断策略 在具体场景中的处理方式。

提示与上下文设计

少样本提示中应如何选择示例才能稳定提升输出质量?

同属「提示与上下文设计」专题,接着看 少样本提示 示例选择 质量控制 在具体场景中的处理方式。

参考资料

  • Prompting best practices - Claude Platform Docs

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 注意力分布与回答规划顺序
  3. 合同条款问答:文档放前还是放后
  4. 文档前置的失效条件与妥协
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑