维度 | Prompt Engineering | Context Engineering |
|---|
关注点 | 单次输入的指令写法 | 整个生命周期的信息流 | 比喻 | 教你怎么问问题 | 帮 AI 布置一个干净的工作台 | 面向 | 单轮对话 | 多轮 Agent + 长任务 | 核心技能 | 措辞、结构、示例 | 检索、压缩、记忆、调度 |
Anthropic 在 2025 年 9 月的官方博客里说得很直接:上下文工程是提示词工程的自然进化。提示词工程问"什么样的词能产生最好的输出",上下文工程问"什么样的信息配置最可能产生我想要的行为"。 为什么会变:因为 Agent 在多轮循环里跑,每一轮都产生更多材料,而这些材料未必都该进入下一轮。决定什么留下、什么移除,才是工程问题。 一个具象的比喻:LLM 是 CPU,上下文窗口是它的 RAM。你的工作就是做好这块 RAM 的调度。 上下文腐烂:Context Rot这是上下文工程存在的根本原因。 Chroma 在 2025 年 7 月的技术报告里测试了 18 个模型(含 Claude Opus 4、GPT-4.1、Gemini 2.5 Pro、Qwen3),任务是难度固定、只变输入长度。结果是:所有实验的性能都一致地下降。 Anthropic 也报告同样的模式:有些模型退化更平缓,但没有一个免疫。 原因是架构性的——Transformer 让每个 token 关注其他所有 token,产生 n² 的成对关系,注意力随上下文增长而稀释。 Lost in the MiddleLiu 等人的经典发现(TACL,被引 7000+):模型对长上下文中段的信息利用率显著下降,规模化场景下退化可达 40%。 上下文长度 | 模型表现 |
|---|
10K token | 还能准确捕捉每处细节 | 50K token | 信息开始相互干扰 | 100K token | 经典"迷失在中间"爆发——开头结尾记得,中间全忘 | 200K token | 即使"记得",推理准确率也明显衰减 |
关键推论:能塞进窗口的信息量,和使用好它的能力,是两条完全不同的曲线。 更大的窗口能解决问题吗不能。这是最普遍的认知误区。 百万 token 窗口仍然会上下文腐烂,仍然逼你做选择。Anthropic 明确表示等更大窗口不是策略。 指导原则在任何窗口大小下都成立:找到能产生目标结果的、最小的高信号 token 集合。 四个被混用的术语Token 预算 vs 注意力预算 | Token 预算 | 注意力预算 |
|---|
是什么 | Context Window 的物理空间 | 模型有效消化能力 | 边界 | 模型规格(128K / 1M) | 由模型、任务、信息布局共同决定 | 超出时 | API 报错 | 准确率下降、Lost in the Middle | 怎么测 | tiktoken 计数 | 评估集 + benchmark |
Token 预算只是硬性上限,注意力预算才是有效上限。 Token 预算控制器实际要控制的是注意力预算,通常设在物理边界的 60-80%。 KV Cache vs Prompt Cache两个名字相似,层次完全不同。 | KV Cache | Prompt Cache |
|---|
是什么 | 推理服务内部的缓存 | 供应商在 API 层的前缀复用 | 在哪 | 加速器内存或分层缓存 | 服务端 API 层 | 存什么 | 各层已计算的 Key/Value | 相同或可复用的稳定前缀 | 谁维护 | 推理系统 | Anthropic / OpenAI / Google | 你能控制吗 | 通常不能 | 能(设计稳定前缀) |
超长上下文的 KV Cache 可能达到数十 GB——1M token 约需 15GB 显存/用户。这决定了"无脑全量上下文"在服务端不可扩展。 四条实战路线Anthropic 的工程方法论收敛为四个动词,社区总结成标准框架。它们不是四选一,是分层组合。 路线 | 做什么 | 最大坑 |
|---|
写穿 Write-through | 关键状态写进外部文件,主上下文只留指针 | 写出去就忘了读 | 选择 Select | 只把当下需要的拉进窗口 | 检索质量 = 系统天花板 | 压缩 Compress | 对长期对话做摘要或剪枝 | 按时间一刀切丢约束 | 隔离 Isolate | 脏活分给独立上下文的子任务 | 子代理世界观冲突 |
判断标准只有一条:每一层都要回答"这个信息为什么值得占用主上下文"。 路线一:写穿(Write-through)核心理念:不是所有信息都要一直待在上下文里。写到外部存储,用的时候再调。 这像人的记忆方式——你不会把一整本书背下来,而是记住它在书架上的位置。 形式 | 用途 |
|---|
Scratchpad 草稿本 | 单次任务内的临时笔记,如自动维护的待办列表 | 长期记忆 | 跨会话持久化:用户偏好、项目规范 | NOTES.md | 项目状态、决策记录 |
坑:Agent 把东西写出去就忘了读。指针体系必须有读回机制——只写不读的外部存储等于没有。 路线二:选择(Select)核心理念:别一次性把知识库全塞进去,按需动态加载。 从预检索到即时检索(Just-in-Time Retrieval)这是 2026 年的重要趋势转变: Claude Code 就是这么干的——它不会一次性读完整个代码库,而是用 head、tail、grep、find 定点加载。 这就像人的认知:你查资料不会把整个图书馆搬回家,只带回那几页需要的。 代价要说清楚:检索质量的天花板就是系统的天花板。检索不准,选择机制再精巧也没用。 路线三:压缩(Compress)当上下文接近上限,把历史摘要化,用摘要开启新窗口。 1. 调用模型总结历史对话
2. 抽取:关键决策、未解决问题、重要文件路径
3. 丢弃:冗余的工具原始输出(老的 ls 输出没必要留)
4. 用摘要作为新上下文起点继续工作
分层压缩:2026 年更好的做法默认方案——"把旧轮次压成短段落、保留最近轮次原文"——把同一段时间的所有信息一视同仁,这在 2026 年已被明确指出是粗糙的。 更好的做法是分层压缩: 信息类型 | 处理方式 |
|---|
事实与约束 | 全量保留 | 过程性叙述 | 进摘要 |
压缩的第一原则是永不丢约束。 丢掉"用户要求周一交"这种句子的代价,远大于丢掉一千字过程描写。 已经调用过很久、结果也已被后续消化的老工具输出,可以直接清掉,基本无损。 Anthropic 的务实建议:先保召回(recall),再优化精度(precision)。压缩初期宁可多留,确保不丢关键信息;稳定后再逐步剪掉明显多余的部分。 路线四:隔离(Isolate)把 Agent 搞不定的复杂任务,拆给子 Agent,每个在自己的干净窗口里工作。 主 Agent:高层规划、任务分发、结果汇总
└─ 子 Agent A:独立窗口,专注子任务(可能消耗几万 token 探索)
└─ 子 Agent B:独立窗口,专注另一子任务
↓
只返回 1-2K token 的精炼总结
主 Agent 的上下文始终干净,不被子任务细节淹没。 隔离的边界Cognition 的两条原则最值得记住: 1. 共享上下文(Share context) 2. 行动携带隐含决策(Actions carry implicit decisions) 2026 年的判断标准: 适用隔离 | 不适用隔离 |
|---|
结果可独立验收 | 决策相互依赖 | 并行检索、批量格式转换 | 架构设计、长链路编排 | 多角度分析 | 需要谈判的协作 |
看子任务之间需不需要谈判——需要谈判的不要拆。 四种上下文灾难名称 | 表现 | 解法 |
|---|
Context Poisoning 上下文中毒 | 模型产生幻觉,错误留在上下文里,后续每步都参考它 | 压缩 + 校验 | Context Distraction 上下文分心 | 塞了太多历史工具结果,模型盯着历史动作复读 | 压缩 + 工具结果清理 | Context Confusion 上下文混淆 | 工具列表塞了 50 个描述相似的工具,模型像抽盲盒 | 选择 + 精简工具 | Context Clash 上下文冲突 | 早期定了"用 PostgreSQL",后来改成"MongoDB",两条指令同时在上下文里 | 压缩时丢弃被推翻的决策 |
成本账:最硬的存在理由上下文工程的成本差距已经大到离谱。 项目 | 数据 |
|---|
填满 1M token 窗口的价格跨度 | $0.14 – $10.00(71 倍价差) | Gemini 缓存命中 vs 未缓存 | $0.3125 vs $1.25 每百万 token(约 1/4) | DeepSeek 缓存命中 | 约为未命中价的 1/10 | Claude 超 200K 长上下文溢价 | 输入 $6 / 输出 $22.50 每百万 | 策略性缓存 + 压缩 + 上下文工程 | 可降本 50-90% |
三个实务结论: 结论一:这是比换模型更大的杠杆。 同样效果,省 50-90% 成本。 结论二:TTFT(首 token 延迟)随窗口膨胀而恶化。 上下文长度同时是成本问题和体验问题。 结论三:KV cache 决定了无脑全量上下文在服务端不可扩展。 上下文工程是刚需,不是优化。 场景化选型任务场景 | 推荐策略 | 代表产品 |
|---|
多轮对话、需要流畅连贯 | Compaction 压缩 | Claude Code 对话模式 | 有明确里程碑的迭代开发 | Note-taking 结构化笔记 | Cursor、Manus 项目模式 | 复杂研究、可并行探索 | Multi-agent 子 Agent 隔离 | 深度研究类 Agent | | | |
|