CE101 上下文工程技术栈
Table of contents
原文地址:https://ce101.ifuryst.com/basics/context-engineering-stack
一、这个内容真正解决的是什么问题?
真正的问题不在“能塞多少 token”,而在“模型在这一轮推理里究竟被什么信息驱动”。一旦把“更长上下文”当成万能解法,就会在三个具体决策点上频繁出错:该放什么、该不该放、放进来之后会不会把模型的注意力与判断推向错误方向。
二、最容易产生误解的地方
误解 1:上下文窗口越大,效果越稳定
- 常见想法:既然模型能吃 1M token,那就尽量塞满,信息越全越不容易错。
- 诱因:把上下文当作“内存”,直觉上更大内存=更强能力。
- 代价:上下文越长越可能分心、重复历史动作、忽略指令;错误一旦写进去,还会被反复引用,变成“越跑越偏”。
误解 2:只要信息是真的,放进去就不会有副作用
- 常见想法:真实信息不会害人,最多只是冗余。
- 诱因:把问题理解成“缺信息”,忽略“注意力预算”与“冲突成本”。
- 代价:相似但无用的材料会形成干扰,甚至与关键证据竞争注意力,导致模型答非所问或质量下降。
误解 3:多轮交互等价于一次性把话说完
- 常见想法:分几次补充细节没关系,模型会自动整合。
- 诱因:人类交流里“渐进补充”很自然。
- 代价:早期不完整回答会留在上下文里成为后续推理的“锚”,错误更容易固化,最终整体效果反而比单轮更差。
误解 4:提示词、RAG、工具调用是“可选增强”
- 常见想法:模型足够强就不需要这些外设。
- 诱因:把能力完全归因于模型参数与训练。
- 代价:时效性、专业性、可行动性都被锁死在模型权重里;在 Agent 场景下还会因为缺少治理而产生工具选择混乱。
三、支撑正确理解的核心机制
1)上下文窗口是一种资源上限,不是质量保证
- 直观理解:像内存一样,上限决定“最多能放多少”,但不决定“放得对不对”。
- 专业表述:上下文窗口限制输入 token 总量;工程问题从“能装下”升级为“怎样组装、怎样裁剪、怎样避免副作用”。
- 在整体中的位置:约束条件,也是技术栈出现的起点。
2)从“长度问题”走向“语义失败模式”
- 直观理解:同样长度的上下文,有的让模型更聪明,有的让模型更迷糊。
- 专业表述:失败不只来自超长或过短,还来自污染、分心、混淆、冲突;你给模型的是自然语言背景,它会把背景当作推理依据。
- 在整体中的位置:问题诊断框架,决定后续选哪类技术应对。
3)信息污染会把错误复制到更大的范围
- 直观理解:错误一旦写进“工作台”,后面每一步都可能继续用错。
- 专业表述:上下文污染会在目标、摘要、观察等多个位置写入错误状态,导致执念、循环与目标偏离;在 Agent 中还可能外溢到记忆或规范文本。
- 在整体中的位置:风险源,决定需要隔离、校验、清洗与回滚机制。
4)注意力偏移是“越长越不聚焦”的结构性现象
- 直观理解:材料堆得越多,越像在一张桌子上同时摊开几十份文件,关键那一页更难被盯住。
- 专业表述:随着输入长度增加,模型在简单任务上也会出现性能显著变化;相似干扰文本数量增加会进一步拉低效果;在超长历史下,模型可能偏好重复动作而非生成新计划。
- 在整体中的位置:性能与可靠性的上限来源,决定需要“锚定注意力”的工程做法(如目标复述、待办清单)。
5)语义冲突与混乱让模型进入“非确定性选择”
- 直观理解:同一段上下文里出现多个互相打架的说法,模型会像人一样犹豫,甚至随便选一个。
- 专业表述:多轮分片输入会让局部信息驱动局部结论,错误在上下文中持续存在并影响最终答案;大量相似工具描述会诱发随机式工具选择与不稳定输出。
- 在整体中的位置:系统治理问题,直接指向工具治理、上下文结构化与冲突消解。
6)技术栈的三大类手段分别对准三种工程目标
- 直观理解:补信息、管信息、存信息。
- 专业表述:上下文增强负责引入外部信息与能力;上下文优化负责清洗、隔离、压缩与降噪;上下文持久化负责把重要状态跨会话保存并可检索复用。
- 在整体中的位置:架构分层,决定系统模块怎么拆。
四、关键术语与概念对齐
- 上下文窗口:模型单次推理可接收的输入 token 上限,它限制“能放多少”,不保证“放得好”。
- 上下文不足:输入信息不足以支撑目标推理,表现为缺依据、泛化回答或无法按意图完成任务。
- 上下文过多:信息量超过有效注意力承载,表现为分心、忽略指令、重复与质量下降,它不等于“超过窗口”。
- 信息污染:错误或误导性信息在上下文中持续存在,并可能外溢到记忆/规范等外部存储,导致重复错误与目标偏离。
- 注意力偏移:模型注意力从目标/指令偏移到无关或相似干扰信息,导致性能随长度或干扰增加而衰减。
- 语义冲突与混乱:上下文中存在歧义、矛盾、冗余或工具描述相近,导致模型理解困难与选择不稳定。
- RAG:先从外部知识库检索相关信息,再与输入一起生成答案,用于降低幻觉、增强时效与领域性。
- MCP:用于规范模型与外部工具交互的协议,使工具接入更标准化、可复用,并带来工具治理新问题。
- 上下文隔离:通过多智能体/任务分片/记忆分区等手段,让不同子任务在独立上下文中运行以减少干扰。
- 上下文压缩:用摘要、修剪、结构化提取等方式降低上下文体积与噪声,维持可推理性与可持续运行。
- 上下文持久化:把关键用户信息、摘要与任务状态长期保存,以便后续检索与复用。
五、结构全景层:原文笔记
上下文窗口是天然限制,也是上下文工程出现的原因之一
- 现阶段 SOTA 大模型的上下文空间普遍在 1M 以内,窗口上限决定了可注入信息的最大规模。
- 上下文空间类比计算机内存:访问快但有限,上限推动了分页/置换式的工程思路在上下文侧的映射。
围绕长度维度会遇到四类直观场景
- 上下文可能超过窗口上限,导致无法完整注入并触发截断或重组需求。
- 上下文也可能过短导致推理支撑不足,而“尽量填满”又会引发模型分心与无法聚焦。
上下文问题从长度走向语义失败模式
- Drew Breunig 提出上下文污染、上下文分心、上下文混淆、上下文冲突四类失败方式,用于解释长上下文失效。
- 文章将其归并为信息污染、注意力偏移、语义冲突与混乱三类,便于定位与选择应对策略。
信息污染会导致错误持续引用与行为死循环
- Gemini 2.5 Pro 在宝可梦 Agent 情境中出现“context poisoning”,错误游戏状态会污染目标与总结并很难撤销。
- 污染会让模型执着于不可能或无关目标,并与循环问题相关,表现为重复荒谬动作或采取极端策略。
少样本提示在 Agent 场景可能诱发模式化重复
- Manus 指出模型擅长模仿上下文中的动作—观察模式,样本越同质越容易把自己 few-shot 进套路里。
- Manus 用结构化的多样性打破重复:替换模板、改写措辞、调整顺序或格式的可控扰动以重新分配注意力。
注意力偏移体现为上下文变长后效果不增反降
- Chroma 的研究指出“模型均匀处理上下文”的假设不成立,输入长度变化会导致性能显著差异。
- 重复单词复写实验显示随着输入变长输出质量下降,而相似干扰文本数量增加会进一步拉低表现。
超长历史会让 Agent 更偏好重复动作而非生成新计划
- Gemini 报告观察到上下文显著超过 100k token 时,Agent 倾向于复用历史动作而不是综合出新计划。
- 报告强调长上下文用于检索与用于多步生成式推理并不等同,工程上需要区别对待。
长上下文并不总能提升 RAG 表现,收益存在递减与衰退区间
- Databricks 的评估显示上下文长度增加初期带来准确率提升,但随后小模型可能恶化,大模型趋缓或进入衰减。
- 失败模式包含重复内容、随机内容、未遵循指令、错误回答与其他类型,说明长度会影响指令遵循与稳定性。
在长上下文里需要显式锚定目标以对抗“被淹没”
- Claude Code 在执行中持续更新目标与 TODO 列表,把全局计划复述到上下文末尾以降低“中段丢失”和目标偏移。
- Manus 也通过不断重写 todo.md 把目标推入最近注意力范围,平均大量工具调用的长循环尤其依赖这种注意力操控。
语义冲突与混乱会在多轮分片与工具密集环境中放大
- 微软与 Salesforce 的研究显示把单轮拆成多轮会显著下降,因为早期局部信息诱发的错误会留在上下文中持续影响。
- Agent 挂载大量工具后,工具描述相似会导致模型在相近选项间进行非确定性选择,从而输出不稳定甚至错误。
上下文工程技术被归为三大类以对应不同职责
- 上下文增强用于补充信息与能力,包含提示词技术、RAG 与工具集成/函数调用(以 MCP 为代表)。
- 上下文优化用于清洗与重组上下文,包含隔离、修剪与压缩;上下文持久化用于长期保存摘要、偏好与任务状态。
上下文持久化让系统具备跨会话记忆与断点续作能力
- 持久化可落在文件、数据库、向量库与 KV 缓存上,用于会话记忆、任务状态与用户偏好记录。
- 策略可采用自动摘要持久化、关键输入保存与分阶段持久化,以降低遗忘与漂移风险。
六、如何把这个内容讲清楚给别人?
最值得慢下来讲的是这一句:“上下文不是越长越好,关键是它会把模型的注意力与推理依据推向哪里。” 它是理解门槛,因为很多人默认模型“会自己抓重点”,而现实里重点需要被工程化地制造:去噪、结构化、锚定、回滚。
可以快速带过的是“窗口到底多大、谁是 SOTA”,这些数字会变,但不改变核心矛盾:资源有限、注意力有限、冲突不可避免。
最小示例 场景:做一个“批量简历审阅”的 Agent。
- 如果把前 19 份的动作—观察对原样全部塞进第 20 份的上下文,模型会更倾向于“模仿节奏”,重复同样的评语结构,甚至忽略第 20 份的独特亮点(注意力偏移 + 模式化重复)。
- 如果把历史压缩成结构化要点(评分标准、常见硬性红线、已确认的用户偏好),并把“本轮目标与输出格式”复述放在上下文末尾,同时仅检索与该候选人岗位匹配的少量证据片段(压缩 + 锚定 + RAG),模型更可能稳定地产生贴合个体的判断。
七、实践与使用视角的结论
适合用在什么场景
- 长会话、复杂任务、需要持续推进的 Agent 流程,且需要跨轮维护目标与状态。
- 需要时效信息、企业私有知识或领域知识的问答与决策,尤其依赖检索与工具。
- 工具调用密集的自动化任务,需要把“能做什么、该做什么、做到哪一步”管理成可控上下文。
不适合用在什么场景
- 纯短问短答且信息闭环的小任务,把上下文做得很重只会增加成本与噪声。
- 无法容忍错误外溢的场景却缺少校验/回滚机制时,把历史与摘要长期持久化会放大风险。
- 工具生态杂乱但没有治理(命名、描述、权限、去重、路由)时,盲目挂载大量 MCP Server 只会提高混乱概率。
最常见、也最危险的错误用法是什么
- 把“更多上下文”当作默认策略,导致分心、忽略指令与输出漂移。
- 让错误状态进入摘要/目标/记忆后持续引用,形成长期的错误轨迹与循环行为。
- 在多轮分片输入中放任早期错误回答滞留,不做纠偏就继续叠加新信息。
最低使用原则 只要上下文里出现“会驱动决策的内容”,就同时准备好三件事:它为何相关、它是否可信、它如何被锚定在目标之下。
八、最终总结
- 上下文窗口是上限,不是质量;上下文工程解决的是“在有限预算里把模型推向正确推理”。
- 长上下文会带来信息污染、注意力偏移与语义冲突,效果可能变差而不是变好。
- 技术栈可以按增强、优化、持久化分层,分别对应补信息、管信息、存信息。
- 在 Agent 场景中,目标复述与结构化状态是对抗漂移的关键,工具接入越多越需要治理。
- 真正的优化不是“塞满”,而是“让关键信息更近、更清晰、更一致”。
-- End --