跳转至

03 · 上下文工程面试题

政策助手的输入塞满了材料,却漏掉“仅限已批准培训”这个条件。面试官追问怎样缩短输入又保住证据时,可以先记住:上下文像随身行李,原文可以托运,登机证不能压没了。

配套 学习章:上下文工程,本章覆盖 Q063–Q065,分别讨论信息选择、计算复用和长任务预算。

Q063 上下文选择、外置与摘要应该怎样配合?

优先级:P0

30–60 秒回答:

先根据当前判断选择有权且有效的信息,再考虑长度。外置把原文放到模型外并保留可解析指针,摘要则重写内容,可能损失条件与不确定性。两者都应保存来源、版本、适用范围和回查方式。重要动作前重新核对关键原文,不能让多轮摘要后的结论成为唯一证据。

展开详细答案、追问与案例

详细答案:

我会先把输入按作用分开:当前目标与可信约束、已确认任务状态、活跃证据、候选目录和历史轨迹。每个片段说明它支持哪个待决判断、来源与版本是什么、适用何时、当前主体能否读取。先过滤失效和无权材料,再按当前子目标排序。下载失败轨迹对排障重要,但比较政策时未必值得常驻;相关性高也不能弥补版本错误。

大工具结果优先在执行层提取字段,保留总条数、筛选条件、截断标记和完整产物位置。外置保持原文可取回,随身只带索引;摘要改变表达,更容易遗漏限定。应把原始证据与摘要明确关联,指针包含文档 ID、内容版本、位置等信息,解析时重新检查权限。路径存在不代表调用者有权读取,摘要可读也不能成为绕过原文权限的后门。

压缩要围绕语义合同验证。例如“仅对已批准的外部培训适用”不能压成“培训适用”。保留否定、例外、人员和日期条件,对重要结论按指针回查。摘要越短越节省输入,却可能增加回查与推理错误;保存大量原文又增加存储和失效治理成本。应同时观测输入构成、遗漏条件、回查次数和最终证据覆盖,不能只看 token 是否减少。

常见追问:

  1. 为什么不把全部历史都交给长窗口模型? 窗口容量并不保证模型正确选择证据。过时判断、重复内容与敏感信息仍需治理,应按任务依赖装入必要材料。
  2. 工具返回空数组,能否总结为没有相关政策? 要先区分真实空结果、权限拒绝、解析失败和截断。只有查询范围和执行状态明确,才能判断“未找到”覆盖了什么。
  3. 摘要已准确,为什么发布前还读原文? 准确只对应生成时的材料。来源可能更新或撤回,发布还依赖特定适用条件和当前权限,应核对真正支撑动作的条款。

实战案例:

内部助手把培训政策压缩为“培训可报销”,据此推荐未批准的内部培训。定位发现原文的“已批准”“外部”在摘要中丢失。处理时把这些条件列为必须保留字段,摘要连回条款位置,缺项则回读原文。验收加入批准与未批准、内部与外部的组合,检查答案是否正确区分;再撤回来源权限,确认新请求不会通过旧摘要继续取得该条款内容。

常见误区:

认为外置就是删除;认为摘要是无损压缩;把片段相关性、来源有效性与可见性合成一个分数,允许高相关材料越过硬条件。

微练习:

将三段含例外和否定的政策压成任务摘要。验收:逐项列出保留条件、可解析原文指针与截断状态,再设计一条必须回查才能回答的问题。

学习与参考: 配套学习章 · 上下文工程 · Deep Agents 上下文机制

Q064 怎样区分 KV、前缀、检索与最终答案缓存?

优先级:P0

30–60 秒回答:

KV 保存注意力计算需要的中间表示,前缀缓存可跨请求复用匹配前缀的相关计算;检索缓存复用候选材料,答案缓存复用最终回答。前两者不会直接把旧答案交给新问题。每层都有不同匹配和失效条件,租户隔离、权限与证据更新仍须执行,缓存命中率不能直接换算成端到端加速比例。

展开详细答案、追问与案例

详细答案:

先按复用对象而非产品名称分类。常见因果注意力模型在生成后续位置时可复用既有位置的 KV;自动前缀缓存进一步寻找请求之间匹配的输入前缀,减少重复 prefill。模型和计算配置、缓存生命周期、实现支持都会影响可复用性。新问题的动态后缀与新输出仍需处理,因此它与直接返回旧回答的答案缓存有本质不同。

检索缓存要关联查询条件、索引和文档版本、权限范围及有效期;答案缓存还要判断问题、日期、人员类别等业务条件是否等价,并跟踪证据变化。即使两个人文字提问完全相同,可见材料不同也可能需要不同答案。缓存键只解决识别一部分条件,真正读取时仍应按当前访问合同验证,不能因为曾经命中就跳过对象授权。

性能评估要拆开排队、前缀处理、后缀处理与输出生成。两个请求前 6000 token 相同、后 2000 不同,不等于总延迟必定下降某个固定百分比。稳定前缀可减少无谓变动,但正确性优先,不能为命中率保留旧政策。共享缓存还可能涉及侧信道;例如 vLLM 支持按请求加 salt 限制复用范围,隔离组应由可信应用分配,而不是允许客户端自称属于其他租户。

常见追问:

  1. 把时间戳放输入最前面会怎样? 它可能缩短匹配前缀,具体取决于实现。可以把真实稳定说明放前面、动态信息后置,但不能删除任务确实需要的时间条件。
  2. 前缀缓存能降低生成长度吗? 不能由缓存本身推导。它主要复用前缀计算,输出仍由当前请求生成;若要降低输出成本,应另行调整任务和输出合同。
  3. 权限撤回后清掉答案缓存就够吗? 不够。检索结果、摘要和派生索引也可能包含相关材料。应沿来源依赖失效,并在使用时再次执行可见性检查。

实战案例:

两个部门询问同一住宿标准,初版应用只按问题文本缓存回答,把受限附录传给另一部门。处理时按可信主体和访问范围限制答案复用,并保留证据版本依赖;底层前缀缓存按其支持的隔离配置单独管理。验收先用同部门重复请求观察复用,再用不同权限主体查询并撤回一份来源,确认返回内容遵守新权限;延迟报告同时展示排队与生成时间,不把命中直接宣传成固定倍数提升。

常见误区:

把 KV 看成知识库;把前缀缓存看成答案缓存;认为隔离 salt 是业务授权;只比较命中率而忽略错误复用与端到端延迟。

微练习:

为四层缓存分别写复用对象、匹配条件和失效事件。验收:能解释“同文本不同权限”“同前缀不同后缀”“政策撤回”三种请求该复用什么、拒绝什么。

学习与参考: 配套学习章 · vLLM 自动前缀缓存 · vLLM 缓存设计与隔离

Q065 长任务怎样分配上下文预算并传播证据失效?

优先级:P1

30–60 秒回答:

先为输出、固定约束和任务状态预留空间,再按当前证据缺口加载材料,目录和原文分层保留。预算不足时优先减少无关证据,而不是截掉关键条件。每个摘要、结论和缓存都应关联来源版本;政策撤回后沿依赖标记失效,重建受影响的输入,保留无关已完成工作,并明确哪些结论仍缺证据。

展开详细答案、追问与案例

详细答案:

预算需要先统一口径。若输入输出共用 32000 token,预留输出 4000,就不能将剩余以外的内容塞进输入;还要计算固定说明、任务状态、工具信息和证据。24 段各 1800 共 43200,尚未加说明就已超限。可以先按权限、适用期和待决问题筛选,再选六段各 1500,共 9000,加固定说明 3000、状态 1000、工具 1000,输入合计 14000,其余留在可回查索引。

加载顺序由判断依赖决定。先提供任务范围和材料目录,再展开相关流程、具体条款与必要原始轨迹。当前证据只能支持一般规则,却缺少例外适用条件时,应沿指针补读,而不是让模型补猜。渐进加载减少无关信息干扰,也增加一次检索或读取的时延;可以预取明确依赖,但不应把所有目录一次展开回原来的大输入。

长任务还需要失效传播。来源与内容版本连接到摘要、比较结论、报告段落和答案缓存,撤回时标记受影响产物,恢复会话不能继续装入它们。事实更新与权限撤回的处理条件不同,但都不能由旧摘要绕过。无关地区的有效证据可继续复用,避免全部重做。评估时同时观察预算、有效证据覆盖、漏条件和恢复成本;输入更短却失去决定性条款,不能算优化完成。

常见追问:

  1. 预留输出 4000 是否就是要求生成 4000? 不是。它是本例的容量规划,实际输出由内容和限制决定。不同模型窗口和计费口径应分别核对,不把这一数字当通用配置。
  2. 预算只够读一份资料时怎样选择? 看当前结论缺哪项必要证据,优先正式且适用的来源。若无法覆盖关键条件,就给出局部结论和未决项,而非靠多篇弱相关资料凑数量。
  3. 撤回一份来源需要删除全部历史吗? 新选择必须排除失效内容,历史审计按保存规则管理。用来源依赖定位受影响判断,保留无关有效产物,避免把更正和历史追溯混为一谈。

实战案例:

助手完成甲乙两地比较后,甲地一份政策撤回,而丙地例外仍待查。初版切换会话只带“甲乙已完成”,继续生成含旧结论的报告。处理时让完成项关联证据版本,撤回触发甲地摘要及段落失效,乙地保留,丙地仍显示缺口。验收核对 14000 的输入构成与回查清单,确认恢复没有重查全部乙地材料,也没有继续引用撤回文件;报告明确甲地重核与丙地缺项状态。

常见误区:

把窗口大小当成实际可用证据容量;用统一尾部截断代替选择;认为来源表已更新,摘要和答案就会自动同步。

微练习:

复算本题预算并为六段证据建立依赖表。验收:撤回其中一段后列出失效摘要、报告段落和缓存,说明下一次输入保留哪些内容、必须补读什么。

学习与参考: 配套学习章 · 上下文工程 · Agent Skills 渐进加载 · Deep Agents 上下文机制

返回进阶题库目录