A Survey of Context Engineering for Large Language Models: 上下文工程全景综述
ArXiv ID: 2507.13334
作者: Lingrui Mei, Jiayu Yao, Yuyao Ge, Yiwei Wang, Baolong Bi, Yujun Cai, Jiazhi Liu, Mingyu Li, Zhong-Zhi Li, Duzhen Zhang, Chenlin Zhou, Jiayi Mao, Tianze Xia, Jiafeng Guo, Shenghua Liu (15位作者)
发布日期: 2025年7月17日 (最后更新: 2025年7月21日)
分类: Context Engineering
论文规模: 分析了超过1400篇研究论文
论文摘要
这是上下文工程(Context Engineering)领域的首个系统性综述,将上下文工程定义为一门正式学科,超越简单的提示设计,涵盖了为LLM系统性优化信息载荷的完整方法论。
核心观点: LLM的性能从根本上由推理时提供的上下文信息决定。因此,上下文工程不仅是提示工程的延伸,更是构建高性能LLM系统的基础设施学科。
综述范围:
- 基础组件: 上下文检索、生成、处理、管理
- 系统集成: RAG、记忆系统、工具增强、多Agent系统
- 前沿方向: 长上下文优化、多模态上下文、动态上下文适配
通过对1400+论文的系统性分析,本文为该领域提供了全面的技术路线图。
核心框架: 上下文工程四大支柱
1. 上下文检索 (Context Retrieval)
定义: 从外部知识源中提取与查询相关的信息
1.1 检索技术分类
稀疏检索 (Sparse Retrieval):
- 代表方法: BM25, TF-IDF
- 优势: 高效、可解释
- 劣势: 无法捕捉语义相似性
- 适用场景: 关键词精确匹配、大规模初筛
密集检索 (Dense Retrieval):
- 代表方法: DPR, ColBERT, ANCE
- 核心技术: 双编码器架构(Query Encoder + Document Encoder)
- 优势: 语义理解能力强
- 劣势: 计算开销大
- 适用场景: 语义相似性搜索、跨语言检索
混合检索 (Hybrid Retrieval):
- 策略: 结合稀疏和密集方法,取长补短
- 典型方案: BM25初筛 + DPR重排
- 效果提升: 相比单一方法,F1提升10-15%
1.2 高级检索范式
迭代检索 (Iterative Retrieval):
1 | Query → 初次检索 → 生成中间答案 → 扩展查询 → 再次检索 → 最终答案 |
- 应用: 多跳问答(如”谁发明了TCP/IP的导师是谁?”)
- 挑战: 控制迭代次数,避免检索漂移
自适应检索 (Adaptive Retrieval):
- 核心思想: LLM自主决定何时检索、检索什么
- 典型方法: Self-RAG, FLARE
- 关键技术: 检索触发器(Retrieval Trigger),判断当前生成是否需要外部知识
2. 上下文生成 (Context Generation)
定义: 合成新的上下文信息,而非检索现有知识
2.1 生成策略
查询重写 (Query Rewriting):
- 目标: 将模糊查询转换为更精确的检索查询
- 方法:
- HyDE: 先生成假设性文档,再用该文档检索
- Query2Doc: 用LLM扩展查询为伪文档
示例增强 (Example Augmentation):
- Few-shot Synthesis: LLM生成类似的示例
- 应用: 少样本学习场景,缓解标注数据不足
知识蒸馏 (Knowledge Distillation):
- 目标: 从大模型提取知识,注入小模型的上下文
- 方法: 用大模型生成推理链,作为小模型的上下文
3. 上下文处理 (Context Processing)
定义: 优化上下文的结构和内容,提升LLM的理解和利用效率
3.1 上下文压缩
动机: LLM的上下文窗口有限(如4K, 8K tokens),但检索到的文档可能非常大
压缩技术:
抽取式压缩 (Extractive Compression):
- 方法: 选择最重要的句子/段落
- 指标: 重要性打分(基于相关性、新颖性)
- 工具: LLMLingua, Selective Context
生成式压缩 (Abstractive Compression):
- 方法: 重写为更简洁的摘要
- 风险: 可能丢失细节信息
- 平衡策略: 保留关键数字、实体、日期
Token-level压缩:
- 极端压缩: GIST Tokens, AutoCompressor
- 原理: 将长文本压缩为特殊的”记忆token”
- 压缩比: 高达10:1
3.2 上下文重排序
问题: “Lost in the Middle”现象——LLM对上下文开头和结尾的信息敏感,中间部分容易被忽略
解决方案:
- 重要性排序: 将最相关的信息放在开头或结尾
- 交错排序: 交替放置高/低相关度内容
- 注意力引导: 在上下文中插入强调标记(如”重点:”、”关键信息:”)
4. 上下文管理 (Context Management)
定义: 在长对话或多轮交互中,维护和更新上下文
4.1 记忆机制
短期记忆 (Short-term Memory):
- 实现: 直接保留最近N轮对话
- 缺点: 上下文窗口耗尽时,旧信息丢失
长期记忆 (Long-term Memory):
- 存储: 外部数据库(向量数据库、图数据库)
- 检索: 根据相关性动态加载到上下文
- 代表系统: MemGPT, Generative Agents
层级记忆 (Hierarchical Memory):
- 结构: 工作记忆(当前任务) → 情景记忆(历史对话) → 语义记忆(长期知识)
- 灵感: 模仿人类记忆系统
4.2 上下文更新策略
滑动窗口 (Sliding Window):
- 保留最近K个token,丢弃更早的内容
- 简单高效,但可能丢失重要历史信息
压缩历史 (Compressed History):
- 将旧对话压缩为摘要,保留在上下文中
- 例如: “在前面的对话中,用户提到了X和Y…”
选择性保留 (Selective Retention):
- 基于重要性评分,保留关键信息,丢弃冗余内容
- 需要额外的LLM调用来评估重要性
系统架构: 四大应用范式
范式1: 检索增强生成 (RAG)
架构:
1 | 查询 → 检索器 → 相关文档 → 拼接到上下文 → LLM生成 |
关键技术:
- 索引优化: 分块策略(Chunking)、向量化(Embedding)
- 检索优化: 查询重写、混合检索、重排序
- 生成优化: 引用标注、幻觉检测
前沿变体:
- Self-RAG: LLM自主决定是否检索
- CRAG: 纠正式RAG,先评估检索质量,必要时重新检索
- GraphRAG: 基于知识图谱的结构化检索
范式2: 记忆系统 (Memory Systems)
架构:
1 | 用户输入 → 记忆检索 → 相关历史 → 当前上下文 → LLM → 更新记忆 |
典型系统:
MemGPT:
- 模拟操作系统的虚拟内存管理
- 主动在主记忆(上下文)和外部存储间swap内容
Generative Agents (斯坦福小镇):
- 每个Agent维护独立的记忆流
- 支持检索、反思、规划
Reflexion:
- 从失败中学习,将经验教训写入长期记忆
- 下次遇到类似任务时调用
范式3: 工具增强推理 (Tool-Augmented Reasoning)
核心思想: 将外部工具(API、代码执行器、搜索引擎)视为扩展上下文的手段
架构:
1 | 查询 → LLM规划 → 调用工具 → 结果作为上下文 → 继续推理 |
典型方法:
ReAct (Reasoning + Acting):
- 交替进行推理和行动
- 示例: “思考: 需要查询天气 → 行动: search(‘北京天气’) → 观察: 结果是晴天 → 思考: 可以推荐户外活动”
Toolformer:
- 自监督学习何时、如何调用工具
- 训练数据: 自动生成工具调用标注
ART (Automatic Reasoning and Tool-use):
- 从任务库中检索类似任务的工具使用模式
- 迁移到新任务
范式4: 多Agent系统 (Multi-Agent Systems)
挑战: 每个Agent有独立的上下文窗口,如何协调?
上下文共享策略:
广播模式 (Broadcast):
- 所有Agent共享同一个全局上下文
- 缺点: 上下文窗口快速耗尽
隔离模式 (Isolation):
- 每个Agent维护独立上下文
- 通过消息传递交换信息
- 优点: 可扩展性强
层级模式 (Hierarchical):
- Manager Agent维护全局上下文
- Worker Agent维护局部上下文
- Manager负责任务分配和结果聚合
代表系统:
- AutoGPT: 单Agent + 工具调用
- MetaGPT: 多Agent角色扮演(产品经理、工程师、测试…)
- ChatDev: 软件开发多Agent协作
技术深度对比
RAG vs Fine-tuning: 何时选择哪个?
| 维度 | RAG | Fine-tuning |
|---|---|---|
| 知识更新 | 实时(更新数据库即可) | 慢(需重新训练) |
| 成本 | 低(仅推理成本) | 高(需GPU训练) |
| 可解释性 | 强(可追溯到源文档) | 弱(知识融入参数) |
| 准确性 | 取决于检索质量 | 取决于训练数据 |
| 适用场景 | 知识密集型任务 | 风格适配、领域泛化 |
最佳实践: 结合使用——Fine-tuning提升模型理解能力,RAG注入最新知识
长上下文模型 vs 上下文工程: 是对立还是互补?
长上下文模型 (如GPT-4 128K, Claude 200K):
- 优势: 可以”暴力”塞入所有信息
- 劣势:
- 成本高(按token计费)
- 仍存在”Lost in the Middle”问题
- 推理速度慢
上下文工程:
- 优势: 精准、高效、可控
- 劣势: 需要额外设计检索和压缩策略
结论: 互补关系——长上下文提供基础能力,上下文工程提升效率和质量
前沿研究方向
1. 上下文意识的模型训练
问题: 当前LLM训练时未明确建模上下文利用
方向:
- 上下文敏感训练: 在预训练阶段引入上下文检索任务
- 上下文对比学习: 学习区分有用和无用的上下文
2. 自适应上下文预算分配
问题: 不同任务需要不同长度的上下文,如何动态分配?
方向:
- 强化学习: 以任务性能为奖励,学习最优上下文长度
- 元学习: 快速适应新任务的上下文需求
3. 多模态上下文融合
挑战: 如何统一处理文本、图像、音频、视频上下文?
方向:
- 统一编码器: 将所有模态映射到同一表示空间
- 跨模态检索: 文本查询检索图像上下文
4. 隐私保护的上下文工程
问题: 外部检索可能泄露用户隐私
方向:
- 联邦检索: 在本地设备上检索,不上传查询
- 差分隐私: 对检索结果添加噪声
5. 上下文工程的自动化
愿景: 从手动设计上下文策略→ AI自动优化
代表工作:
- DSPy: 声明式编程框架,自动优化提示和上下文
- ACE: 自进化上下文工程(见相关论文)
评估与基准
关键评估指标
效果指标:
- 准确性: 最终答案的正确率
- 相关性: 检索上下文与查询的匹配度
- 完整性: 是否包含回答问题的充分信息
- 一致性: 多次检索的稳定性
效率指标:
- 延迟: 检索+生成的总时间
- 成本: Token消耗、API调用次数
- 吞吐量: QPS (Queries Per Second)
代表性Benchmark
| Benchmark | 任务类型 | 规模 | 特点 |
|---|---|---|---|
| NaturalQuestions | 问答 | 300K | 基于真实Google搜索 |
| HotpotQA | 多跳推理 | 113K | 需要组合多个文档 |
| KILT | 知识密集型任务 | 11个子任务 | 统一评估框架 |
| LongBench | 长文本理解 | 21个任务 | 评估长上下文能力 |
| MTEB | 检索 | 56个数据集 | 多语言、多任务 |
实战建议
构建RAG系统的最佳实践
1. 数据准备阶段
文档分块策略:
1 | # 不推荐: 固定长度分块(可能割裂语义) |
元数据管理:
1 | { |
2. 检索优化
混合检索实现:
1 | # 第一阶段: BM25粗筛(快速过滤) |
查询增强:
1 | # 原始查询 |
3. 上下文组织
推荐模板:
1 | [系统指令] |
工具选型指南
| 组件 | 推荐工具 | 适用场景 |
|---|---|---|
| 向量数据库 | Pinecone, Weaviate, Qdrant | 密集检索 |
| 图数据库 | Neo4j, ArangoDB | GraphRAG |
| RAG框架 | LangChain, LlamaIndex | 快速原型 |
| 检索模型 | OpenAI Ada, Cohere Embed | 通用检索 |
| 重排序 | Cohere Rerank, BGE Reranker | 精准排序 |
个人评价
综述质量 (5/5)
这是一篇里程碑级别的综述:
全面性: 覆盖1400+论文,几乎涵盖了该领域的所有重要工作
结构化: 将分散的研究统一到”检索-生成-处理-管理”的清晰框架
前瞻性: 不仅总结现有工作,还指出了明确的未来方向
实用价值 (4.5/5)
对研究者:
- 快速了解领域全貌,找到研究切入点
- 识别未被充分探索的方向
对工程师:
- 技术选型参考(RAG vs 记忆系统?)
- 最佳实践指导
对产品经理:
- 理解上下文工程的能力边界
- 评估不同方案的成本效益
不足之处
- 缺乏代码示例: 作为综述,未提供可运行的代码(这是合理的,但降低了工程友好度)
- 评估对比不足: 不同方法的性能对比较少(可能受限于Benchmark不统一)
- 成本分析缺失: 未深入讨论不同技术的成本(Token、计算、存储)
总评分: 4.8/5.0
分类置信度: Very High (99%) - Context Engineering
推荐阅读优先级: ⭐⭐⭐⭐⭐ (最高优先级)
适合人群:
- 必读: 所有从事RAG、Agent系统开发的工程师和研究者
- 推荐: 对LLM系统优化感兴趣的产品经理和架构师
- 延伸: 对提示工程感兴趣的初学者(虽然本文偏学术,但提供了很好的知识框架)
延伸阅读:
- 实践指南: LangChain Documentation
- 理论深入: Attention is All You Need (Transformer基础)
- 前沿工作: ACE: Agentic Context Engineering (自进化上下文)
- GraphRAG: Graph Retrieval-Augmented Generation Survey
使用建议:
- 作为知识地图: 遇到上下文相关问题时,查阅对应章节
- 作为文献入口: 论文引用了大量参考文献,可按需深入
- 作为技术选型指南: 对比不同方法的优劣,选择适合自己场景的技术栈