上下文工程实战:为什么 1M Token 上下文反而拖慢你的 AI 应用
长上下文是2026年的标配,但把资料一股脑塞进去往往效果更差。本文讲清上下文工程的核心原则、检索与压缩的取舍,以及可直接照搬的分层策略。
长上下文≠好效果
2026 年主流模型动辄宣称百万级 Token 上下文,很多人第一反应是”那我全塞进去不就行了”。现实是:把 50 万字文档直接喂给模型,回答质量常常不如只喂 3000 字精选片段。
原因有三。第一,模型存在”中间遗忘”——关键信息放在超长上下文的中间段,被调用的概率明显下降。第二,噪声会稀释信号,无关内容越多,模型越容易被带偏。第三,长上下文意味着高成本和慢响应,用户体验反而变差。
上下文工程(Context Engineering)要解决的,就是”在有限窗口里放正确的信息”。
三层信息架构
一个稳健的上下文可以拆成三层:
- 系统层:角色、目标、约束、输出格式。这部分应极致精简,通常控制在几百字。
- 知识层:与当前问题真正相关的资料。这层靠检索和压缩来控量。
- 对话层:历史交互。这层靠摘要和窗口滑动来控量。
新手最常见的错误是把三层搅在一起——把业务规则写进对话里,把历史记录当知识塞。分层之后,每一层都有明确的截断策略。
检索 vs 压缩:两条路
当候选资料超过窗口时,有两种处理思路。
检索路线:用 RAG 只取 Top-K 相关片段。优点是成本可控、可溯源;缺点是对检索质量极度敏感,检索错了后面全错。
压缩路线:让模型先把长文摘要成结构化要点,再带着摘要回答。优点是保留全局脉络,适合”需要通读全文再回答”的任务;缺点是压缩本身会丢细节。
实战中二者常组合:先粗筛(检索)把范围从万字降到千字,再精压(压缩)把千字压成要点。
五个可照搬的技巧
- 重要信息放头尾:把最关键的指令和材料放上下文开头和结尾,避开中间盲区。
- 结构化优于纯文本:用列表、表格、带标签的字段组织资料,模型定位更准。
- 显式标注来源:给每段材料加编号(如
[doc-1]),要求回答引用编号,便于溯源和纠错。 - 动态裁剪历史:只保留最近 N 轮原文,更早的用滚动摘要替代。
- 用现成工具别硬写:上下文拼装、token 计数、截断逻辑,尽量用框架(如 LangChain、LlamaIndex)里成熟的组件。
怎么验证上下文改得好不好
改上下文不是玄学,要能度量。准备一套固定的测试问题集(20~50 条),每次调整上下文策略后重跑,看准确率、幻觉率、平均 Token 消耗三者的变化。好的上下文工程应该让准确率上升、Token 消耗下降——如果只是堆料换来的准确率,长线一定不划算。
结论
上下文窗口变大,是给了我们更多”选择空间”,而不是取消”选择义务”。真正的竞争力不在于你能塞多少,而在于你能筛得准不准。把上下文当产品设计来做,而不是当仓库来堆,你的 AI 应用会立刻上一个台阶。