把最相关的证据放在开头、次相关的放在结尾可能改善某些长上下文任务也可能打乱时间顺序、因果链或文档中的例外条件。U 型编排应当是一条可以失败的实验假设而不是“破解中部遗忘”的通用按钮。《Lost in the Middle》提供了位置敏感性的研究依据LangChain 10 月 14 日关于长期上下文的文章则讨论把信息移出活动窗口并保留恢复入口。两者解决的问题不同一种考察放进窗口后的使用另一种管理什么时候把什么放进去。位置研究上下文管理先固定集合与预算再改变排列如果 U 型方案使用了更短摘要、更多证据或不同的提示词得分变化就不能只归因于排序。更干净的实验应固定候选集合、文本内容、预算与模型参数只交换位置并随机化查询呈现顺序。对于需要连续阅读的原始段落保持块内顺序。排序的单位可以是一组已经完整引用的证据块而不是把一句主张与下一句例外拆开放到两端。文档关系不明时先保持原文顺序通常比机械交错更容易审计。用确定性排列器检查最基本的守恒下面把排名 A、B 分别放到左右两端其余依次填中间。它只生成一个实验组排列确保没有重复、丢失或改变文档文本不声称模型已经答得更好。图把降序与两端排列作为两组输入位置变化不是质量评分。字符体积相同只是这个教学例子的检查真实 Token 开销仍需要目标 tokenizer。def u_layout(items): result [None]*len(items) left, right 0, len(items)-1 for rank, item in enumerate(items): if rank % 2 0: result[left] item left 1 else: result[right] item right - 1 return result ranked list(ABCDEF) reordered u_layout(ranked) assert reordered list(ACEFDB) assert sorted(reordered) sorted(ranked) assert u_layout([]) [] and u_layout([A]) [A] texts {x: evidence-x for x in ranked} assert sum(len(texts[x]) for x in ranked) sum(len(texts[x]) for x in reordered) print(ABCDEF - ACEFDB; same evidence set and character volume)例子跑通以后还要验证什么这段代码已在本地 macOS、CPython 3.9.6 下运行实际输出为ABCDEF - ACEFDB; same evidence set and character volume。它验证的是例子中的数据约束与分支不包含线上服务的吞吐或延迟测量。没有调用长上下文模型、运行 Needle 基准或评估答案。真实实验应检查无答案查询、跨块引用、时间线问题和拒答表现并按位置分组报告。若交错提高了一个任务、伤害了另一个任务这个差异本身就是选择策略的依据。延伸阅读Lost in the Middle2023 年的位置研究不给当前模型固定收益保证。Context Engineering: How Deep Agents Remember2026 年 10 月 14 日信息移出与可恢复记忆的工程思路。