Context Engineering - 上下文工程
上一次更新:2026年4月
相关主题:LLM大语言模型 | RAG检索增强生成 | Prompt Engineering提示工程 | AI Agent人工智能体
概述
Context Engineering(上下文工程) 是2025-2026年AI开发领域最重要的技术 discipline,它代表了一种范式转变:从单纯优化单个提示词,转向系统性地设计和维护AI模型所接收的完整信息环境。
在生产级AI系统中,上下文窗口80-90%的内容由检索文档、对话历史和工具结果填充,而提示词本身仅占很小一部分。这解释了为什么上下文工程的质量往往比选择哪个模型更能决定AI输出的质量。
目录
核心概念与定义
什么是Context Engineering
Context Engineering 是系统性地设计、构建和优化大型语言模型在推理时接收的完整信息环境的学科。根据Anthropic 2025年9月的文档,上下文工程涵盖“在LLM推理期间策展和维护最佳token集合的策略,包括进入上下文窗口的所有信息(提示词除外)”。
这一术语由Andrej Karpathy在2025年中期推广,他将上下文工程描述为“在上下文窗口中填充恰到好处的信息以完成下一步的微妙艺术和科学”。
Context Engineering vs Prompt Engineering
| 维度 | Prompt Engineering | Context Engineering |
|---|---|---|
| 焦点 | 优化单个查询的指令 | 设计整个信息环境 |
| 范围 | 孤立的交互优化 | 跨会话的持久系统 |
| 控制方式 | 每次交互手动提供 | 自动化持续维护 |
| 时间成本 | 每次查询15-25%时间解释上下文 | 一次性设置,长期受益 |
| 一致性 | 因开发者而异 | 标准化统一 |
核心比喻:Prompt Engineering是选择问题的措辞,Context Engineering是决定在问题提出之前把哪些教科书、笔记和参考资料放在桌上。
五大支柱
上下文工程的五个核心支柱:
- 检索(Retrieval) - 从外部知识库获取相关信息
- 记忆管理(Memory Management) - 管理对话历史和持久化信息
- 状态管理(State Management) - 跟踪当前会话和任务状态
- 上下文压缩(Context Compression) - 在有限token预算内最大化信息价值
- 信息路由(Information Routing) - 决定哪些数据管道在何时激活
五类上下文
对于AI编码助手,上下文可分为五类:
| 类型 | 描述 | 示例 |
|---|---|---|
| 架构上下文 | 系统结构和设计模式 | 组件通信模式、数据流 |
| 代码库上下文 | 现有代码和工具函数 | 工具类、辅助函数 |
| 业务领域上下文 | 业务规则和术语 | 合规要求、工作流 |
| 开发工作流上下文 | 流程和标准 | Git提交规范、代码审查 |
| 历史和执行上下文 | 演化和运行时数据 | 废弃模式、性能指标 |
上下文窗口管理
核心挑战
上下文窗口管理面临三大根本性挑战:
1. Token限制与成本
- Claude 3 Sonnet: 200K tokens
- GPT-4 Turbo: 128K tokens
- Gemini 1.5 Pro: 2M tokens(2024年6月)
- Claude Opus 4.6: 1M tokens(通用可用)
2. 信号稀释 当上下文扩展时,不相关信息会淹没关键信息,导致模型推理能力下降。研究表明,上下文漂移(Context Drift) 是2025年企业AI失败率65%的主要原因,而非单纯的上下文耗尽。
3. “中间丢失”效应 微软研究院2025年的研究发现,超过100K tokens后,有效上下文利用率降至约60%。模型难以整合或忽略长上下文中显著部分的信息。
主要压缩方法
1. 锚定迭代摘要(Anchored Iterative Summarization)
Factory在36,000个真实工程会话中的评估表明,这种方法通过扩展现有摘要(仅压缩新驱逐的消息并合并到持久状态)优于全量重建,在准确性、完整性和连续性上表现更佳。
2. ACON(Agent Context Optimization)
一种失败驱动的方法,通过分析压缩上下文导致任务失败的案例来迭代优化压缩指南。ACON在保持95%+任务准确率的同时,将内存使用减少26-54%,且可与闭源模型配合使用。
3. 提供商原生API
Anthropic的压缩API(compact-2026-01-12)在Claude、AWS Bedrock、Google Vertex AI和Microsoft Foundry上提供自动生产级压缩。
4. xRAG
使用模态融合将检索文档压缩为单一token,通过将文档嵌入整合到语言模型的表示空间中,在减少3.53倍计算量的同时提高10%性能。
5. CoLoR
通过偏好训练专门优化长上下文语言模型的压缩,实现6%检索提升,文档压缩比达1.91倍。
滑动窗口策略
滑动窗口是管理对话历史的经典方法:
[窗口大小: N条消息]
| 消息1 | 消息2 | ... | 消息N | → [保留] | → [丢弃]
变体:
- Token-based Window: 按token数量而非消息数量计算
- Semantic Window: 按语义主题而非线性时间分段
- Adaptive Window: 根据任务类型动态调整窗口大小
渐进式披露(Progressive Disclosure)
Anthropic在2025年12月发布的Agent Skills使用三级信息加载策略:
| 层级 | 加载时机 | Token消耗 | 示例 |
|---|---|---|---|
| 发现层 | 始终可见 | ~80 tokens | 名称、描述 |
| 激活层 | 相关时加载 | 275-2,000 tokens | 完整指令 |
| 执行层 | 任务期间 | 2,000-8,000 tokens | 脚本、材料 |
上下文构建技术
Few-Shot示例选择
Few-Shot Learning通过在提示中提供少量示例来引导模型理解任务。示例选择的质量直接影响模型性能。
核心策略
1. BM25检索
- 基于概率的词匹配算法
- 强Out-of-domain泛化能力
- 低延迟,索引大小<0.4GB
- 可通过查询增强和重加权提升
2. Embedding语义搜索
- 使用稠密向量表示语义相似性
- 超越关键词匹配的限制
- 识别概念相关而非术语相同的内容
3. 最大边际相关性(MMR) MMR通过组合相似性和多样性来选择示例:
选择与输入嵌入余弦相似度最高的示例,
然后迭代添加示例时惩罚与已选示例的接近度。
MMR优于仅基于语义相似度选择示例的方法,确保选中的示例代表多样化概念。
示例池构建
高质量示例池的构建原则:
- 多样性覆盖:覆盖任务的各个维度和边界情况
- 代表性:反映真实分布而非极端案例
- 清晰标注:每个示例附带任务类型标签
- 定期更新:根据模型反馈迭代优化
上下文压缩技术
Contextual Compression Pipeline
LangChain的DocumentCompressor抽象实现:
检索文档 → 压缩处理 → 精炼上下文
关键压缩器:
| 压缩器 | 原理 | 优势 |
|---|---|---|
| LLMChainExtractor | 使用LLM从文档中提取相关陈述 | 高精度 |
| EmbeddingsFilter | 按嵌入相似度过滤文档 | 自动化 |
| DocumentCompressorPipeline | 链式组合多个压缩步骤 | 灵活性 |
摘要技术
渐进式摘要(Progressive Summarization)
第1层: 保留完整原文
第2层: 提取关键句子
第3层: 生成摘要
第4层: 提取要点/标签
对话摘要 vs 记忆形成
研究显示,记忆形成优于摘要:选择性地存储关键事实而非压缩所有内容。Mem0等系统相比基础聊天历史管理,可削减80-90% token成本,同时将响应质量提高26%。
上下文结构化最佳实践
为什么结构重要
研究显示,提示结构对输出质量的影响与更换模型相当。当使用标准化格式时,你正在与LLM训练时接触的JSON(API)、XML(文档)、YAML(配置)等结构化数据格式对齐。
推荐格式
XML标签格式
Claude在XML结构化提示上达到87分(对比Markdown的71分)。
<role>你是一个Python后端开发专家</role>
<task>优化数据库查询性能</task>
<constraints>
<limit>响应时间<100ms</limit>
<limit>使用现有的ORM框架</limit>
</constraints>
<input>
当前查询: {{query}}
数据库schema: {{schema}}
</input>
<output_format>返回优化后的SQL和解释</output_format>Markdown Fence格式
适用于混乱的有效载荷如堆栈跟踪、CSV和配置:
```json
{
"error": "Connection timeout",
"stack_trace": [...],
"context": {...}
}
```JSON格式
通用标准,适合需要机器可读输出的场景:
{
"task": "code_review",
"language": "python",
"focus_areas": ["security", "performance"],
"constraints": {
"max_complexity": 10,
"require_tests": true
}
}最佳实践清单
- 使用祈使句而非描述(94%应用率 vs 73%)
- 明确分离指令、约束、数据和输出格式
- 跨提示使用一致的描述性标签名
- 提供3-5个多样且相关的示例
- 添加解释为什么的上下文动机
- 将稳定内容(系统指令、工具定义)放在提示开头
RAG中的上下文工程
上下文工程 vs RAG
RAG是一种检索技术,而上下文工程是决定什么信息进入上下文窗口、如何进入、以什么顺序的架构层。
关系图:
┌─────────────────────────────────────┐
│ Context Engineering │
│ ┌─────────────────────────────┐ │
│ │ RAG (检索增强生成) │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ Query Understanding │ │ │
│ │ │ Context Routing │ │ │
│ │ │ Hybrid Retrieval │ │ │
│ │ └─────────────────────────┘ │ │
│ └─────────────────────────────┘ │
│ + System Prompts │
│ + Memory Management │
│ + Tool Orchestration │
└─────────────────────────────────────┘
查询理解(Query Understanding)
高质量RAG的第一步是理解用户查询的真实意图:
| 技术 | 描述 | 适用场景 |
|---|---|---|
| Query Classification | 分类查询类型(事实性/解释性/探索性) | 路由到不同处理流程 |
| Intent Detection | 检测多意图查询 | 分解复合查询 |
| Query Expansion | 扩展查询以提高召回 | 同义词、相关概念 |
| Query Decomposition | 分解为子查询 | 复杂多步骤问题 |
上下文路由(Context Routing)
根据查询类型决定信息源:
用户查询 → 路由判断 → 专用处理管道
↓
┌───────────┼───────────┐
↓ ↓ ↓
知识库 对话历史 工具/API
检索 管理 调用
混合检索(Hybrid Retrieval)
结合多种检索策略的优势:
| 检索类型 | 优势 | 适用场景 |
|---|---|---|
| 关键词搜索 | 精确匹配、语法灵活性 | 专有名词、技术术语 |
| 语义向量搜索 | 概念理解、语义相似性 | 同义词、意图理解 |
| 结构分析 | 依赖关系、模块关联 | 代码库检索 |
| 时间过滤 | 最新信息优先 | 快速变化领域 |
Beyond Naive RAG
2025年的RAG已超越简单的“嵌入并搜索”方法:
- 推理增强搜索:结合LLM推理能力优化检索
- 晚交互模型:Late Interaction(如ColBERT)支持token级别交互
- 多重表示:同一内容的多种索引方式
- 图数据库:关系密集型数据的图索引
多轮对话管理
核心挑战
| 挑战 | 影响 | 解决方案 |
|---|---|---|
| Token限制 | 50轮对话可消耗10,000+ tokens | 分层压缩 |
| 关键信息丢失 | 简单截断导致上下文断裂 | 智能摘要 |
| 状态复杂性 | 多会话、多用户状态 | 隔离与跟踪 |
| 成本上升 | 对话越长推理成本越高 | 按需加载 |
常见策略
1. 最后N条消息 最简单的策略,但会丢失早期关键上下文。
2. Token截断 更好的成本控制,但仍存在上下文丢失问题。
3. 摘要+近期上下文 压缩旧段落同时保留近期交换,是目前最平衡的方案。
高级压缩技术
CDIC(Context-Driven Incremental Compression)
将对话视为交错的上下文线程,通过”检索→修订→回写”循环维护每个线程的可修订压缩状态,在长对话中稳定行为。
MT-OSC(One-off Sequential Condensation)
使用Few-shot冷凝代理和轻量级决策器在后台自动压缩聊天历史,在10轮对话中减少72% token数,同时保持跨多个LLM的准确性。
内存架构
┌────────────────────────────────────────┐
│ Production Architecture │
├────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ Working │ │ Episodic │ │ Long- │ │
│ │ Memory │ │ Memory │ │ Term │ │
│ │(~5轮) │ │ (摘要) │ │ (持久) │ │
│ └────┬─────┘ └────┬─────┘ └───┬────┘ │
│ └──────────────┼────────────┘ │
│ ↓ │
│ ┌───────────────┐ │
│ │ Context Router │ │
│ └───────┬───────┘ │
│ ↓ │
│ ┌───────────────┐ │
│ │ LLM Request │ │
│ └───────────────┘ │
└────────────────────────────────────────┘
上下文质量评估
Faithfulness问题
即使RAG系统提供了外部上下文,LLM仍经常引入不支持的信息或矛盾,这被称为忠实度幻觉(Faithfulness Hallucination)。
评估框架
FaithLens(2025)
8B参数的专门模型,提供二元预测和解释,在12个多样化任务上超越GPT-4.1和o3。使用合成训练数据结合标签正确性和解释质量的过滤策略。
FaithEval
包含4.9K高质量问题的全面基准,涵盖三种任务类型:
- 不可回答上下文:模型应拒绝回答的情况
- 不一致上下文:上下文内部矛盾
- 反事实上下文:与事实相反的上下文
关键发现:即使是最先进的模型也在上下文忠实度上挣扎,更大的模型不一定表现更好。
FaithJudge
LLM-as-Judge框架,通过多样化的人工标注幻觉示例改进自动评估,与人类判断的一致性高于现有方法。
评估指标
| 指标 | 定义 | 测量方法 |
|---|---|---|
| Faithfulness | 输出与上下文的一致程度 | 自动评估、人类评分 |
| Relevance | 上下文与查询的相关性 | 相似度计算 |
| Coverage | 上下文覆盖答案的程度 | 覆盖分析 |
| Utilization | 模型利用上下文的程度 | 注意力分析 |
上下文利用率分析
信号稀释检测:监控模型是否对所有上下文token分配相似注意力,还是集中在少数关键部分。
Lost-in-the-Middle检测:在长上下文的中间位置插入关键信息,测试模型是否能检索到。
前沿技术
Long Context Model演进
时间线
| 时间 | 模型 | 上下文窗口 | 关键突破 |
|---|---|---|---|
| 2024 | GPT-4 Turbo | 128K | 主流突破 |
| 2024 | Claude 3 | 200K | 强推理能力 |
| 2024 | Gemini 1.5 | 1M | 当时最长 |
| 2024.06 | Gemini 1.5 Pro | 2M | 持续领先 |
| 2026 | Claude Opus 4.6 | 1M | 通用可用,无溢价 |
重要警告
尽管上下文窗口不断扩大,但微软研究院2025年的研究表明,超过100K tokens后有效利用率降至约60%。这意味着:
- 更大的上下文窗口 ≠ 更好的结果
- 可能增加成本而无相应质量提升
- “Lost in the middle”问题仍然存在
Context Caching(上下文缓存)
成本优化效果
| 提供商 | 版本 | 缓存读取折扣 |
|---|---|---|
| Gemini 2.5+/3 | 当前 | 90% |
| Gemini 2.0 | 当前 | 75% |
| Anthropic Claude | 当前 | 90%(0.1x基础价格) |
| OpenAI GPT-5.4 | 当前 | 90% |
| OpenAI GPT-4 | 当前 | 50% |
隐式缓存 vs 显式缓存
隐式缓存(自动):
- 默认启用,无需配置
- 自动检测重复内容前缀
- 无保证节省
- 最低token限制:1,024(Flash)/ 4,096(Pro)
显式缓存(手动):
- 手动创建缓存
- 设置自定义TTL
- 保证折扣
- 成本可预测
缓存设计原则
- 位置优化:将稳定内容(系统指令、工具定义、参考文档)放在提示开头
- 阈值优化:确保达到缓存最低token限制
- 批量优化:在短时间窗口内发送相似前缀的请求以最大化隐式缓存命中
- 成本计算:缓存写入(1.25x)+ 缓存读取(0.1x)= 0.675x,已可盈利
Context Compression前沿
LLMLingua
专门训练用于压缩技术文档的模型,在保留信息的同时实现40-50%更好的信息保留率,相比简单截断策略。
模态融合压缩
xRAG等方法将文档嵌入整合到语言模型表示空间,实现极端压缩率。
实操指南
实施阶段
1. 准备阶段
识别高价值上下文来源:
- 分析代码审查中发现的标准(错误处理、日志、测试)
- 审查现有的风格指南和架构文档
- 访谈团队成员获取隐性知识
建立优先级 backlog:
优先级 = 预期影响 × 获取难度
建立上下文文件结构:
/
├── ORGANIZATION.md # 组织级上下文(所有项目)
├── PROJECT.md # 项目级上下文
└── modules/
├── api/
│ └── CONTEXT.md # 模块级上下文
└── database/
└── CONTEXT.md
2. 实施阶段
三个基础上下文文件:
- Coding Standards - 语言特定风格指南、命名约定、文件组织
- Architecture Overview - 系统组件、通信模式、数据流
- Development Workflow - 分支策略、代码审查要求、测试标准
工具配置:
- Claude Code:
CLAUDE.md - GitHub Copilot:
.copilot-instructions.md - Cursor:
.cursor/rules
3. 测量与优化
关键指标:
| 指标 | 目标 | 测量方法 |
|---|---|---|
| 手动上下文解释减少率 | >80% | 交互分析 |
| 代码审查周期减少 | 40-60% | PR数据 |
| Token使用效率 | 最大化利用率 | 日志分析 |
| 上下文检索延迟 | <100ms | APM监控 |
自动化验证:
- CI/CD中验证代码示例仍可编译
- 静态分析验证引用函数存在
- 监控上下文文件修改日期,标记陈旧内容
常见陷阱
| 陷阱 | 症状 | 解决方案 |
|---|---|---|
| 上下文漂移 | 文档与实现不一致 | 季度审查、自动验证 |
| 过度上下文 | 无关信息淹没关键内容 | 精炼、过滤 |
| 上下文不足 | 模型产生通用输出 | 补充关键上下文 |
| 陈旧上下文 | 引用不存在的API | 自动验证、TTL |
工具推荐
框架对比
| 框架 | 主要优势 | 适用场景 | 学习曲线 |
|---|---|---|---|
| LangChain/LangGraph | 编排、复杂工作流 | 多步骤Agent、条件逻辑 | 较陡 |
| LlamaIndex | RAG、文档检索 | 知识图谱、结构化数据 | 较缓 |
| 两者结合 | 最佳平衡 | 混合架构 | 中等 |
LangChain vs LlamaIndex
LangChain:
- 通用编排框架
- LCEL(LangChain Expression Language)
- LangGraph用于有状态工作流
- LangSmith用于可观测性
LlamaIndex:
- 数据中心检索框架
- 高级分块和索引
- LlamaCloud用于托管服务
- Arize Phoenix/Langfuse用于可观测性
混合架构推荐
LlamaIndex(数据平面)
├── 文档摄取
├── 分块策略
└── 向量索引
LangGraph(控制平面)
├── 对话状态
├── 多步骤Agent逻辑
└── 工具编排
上下文质量工具
| 工具 | 用途 | 特点 |
|---|---|---|
| Mem0 | 记忆管理 | 80-90% token成本削减 |
| LLMLingua | 上下文压缩 | 专门训练压缩模型 |
| FaithLens | 忠实度检测 | 幻觉检测与解释 |
| Packs/Packmind | 企业上下文管理 | Model Context Protocol |
缓存和成本优化
| 工具/服务 | 用途 | 折扣 |
|---|---|---|
| Anthropic Compact API | 自动压缩 | 生产级 |
| Gemini Context Caching | 显式/隐式缓存 | 75-90% |
| Redis | 会话持久化 | 开源 |
参考资料
核心文献
- State of Context Engineering in 2026 - Kushal Banda, Towards AI, 2026
- What is Context Engineering? - Packmind, 2026
- Context Engineering: The Complete Guide - TECHSY, 2026
- FaithLens: Detecting and Explaining Faithfulness Hallucination - arXiv:2512.20182, 2025
- FaithEval: Can Your Language Model Stay Faithful to Context - ICLR 2025
技术文档
- LangChain Context Engineering - LangChain Docs, 2025
- Context Caching | Gemini API - Google AI, 2026
- RAG Context Engineering - McGillivray LAB, 2025
- Multi-Turn Chatbot Conversation State Management - Chaos and Order, 2026
框架文档
- LangChain vs LlamaIndex in 2025 - Blog Comparison
- LlamaIndex Documentation - Official Docs
- Anthropic Claude API Documentation - Official Docs
延伸阅读
本文档由AI深度调研生成,整合了2025-2026年Context Engineering领域的最新研究成果和实践经验。