“上下文工程”(Context Engineering)这个在当前(2025年)AI领域,特别是大语言模型(LLM)应用中,变得至关重要的概念。这可以说是继“提示词工程”(Prompt Engineering)之后的又一个核心技术热点。
一、上下文工程(Context Engineering)是什么含义?
上下文工程(Context Engineering)是一种系统化的方法论和技术栈,其核心目标是在与大语言模型(LLM)交互时,动态地、精准地为其构建和提供最相关、最优质的上下文(Context)信息,从而让模型能够生成更准确、更可靠、更具个性化的回答。
我们可以用一个简单的比喻来理解它和提示词工程的关系:
- 提示词工程 (Prompt Engineering): 就像是教会我们如何向一个知识渊博但没有特定背景的“超级大脑”(LLM)“问对问题”。
- 上下文工程 (Context Engineering): 则是负责在问这个问题之前,先把相关的“参考资料”、“背景信息”或“开卷考试的小抄”准备好,一并递给这个“超级大脑”,让它依据这些材料来回答问题。
它的核心不再仅仅是优化那个“问题本身”(Prompt),而是工程化地管理和优化喂给模型的“信息背景”(Context)。
二、它和大型模型有什么关系?为什么它如此重要?
上下文工程之所以变得如此重要,是因为它直接解决了大型模型固有的几大核心局限性:
- 知识截止(Knowledge Cutoff): 像GPT-4这样的模型,其内部知识是静态的,截止到它训练完成的那一天。它不知道今天发生的新闻,不了解你公司上个季度发布的最新财报。CE的解决方式:在用户提问时,系统可以先从网络、新闻API或内部数据库中检索到最新信息,作为上下文注入给模型。
- 数据私有性(Data Privacy): 通用大模型没有也无法访问你公司的内部数据,如产品文档、项目邮件、财务报表、员工手册等。CE的解决方式:建立一个安全的系统,该系统可以在用户提问时,从私有知识库中检索相关文档片段,将其作为上下文提供给模型,而无需用私有数据重新训练模型。
- 事实幻觉(Hallucination): 大模型有时会“一本正经地胡说八道”,编造一些看似合理但实际错误的信息。CE的解决方式:通过提供明确的、基于事实的上下文,并要求模型“请依据以下信息回答”,可以极大地减少模型自由发挥(胡编乱造)的空间,这种技术被称为“接地”(Grounding)。
- 上下文窗口限制(Context Window Limitation): 虽然现在模型的上下文窗口越来越大(可以一次性处理数万甚至数十万词),但你依然不可能把整个公司的数据库都塞进一个提示词里。CE的解决方式:上下文工程的核心技术之一就是“检索”(Retrieval),即如何在海量信息中,精准地找到与当前问题最相关的几段信息,只把这几段“精华”内容放进上下文窗口。
三、上下文工程具体例子
- 企业智能客服机器人:
- 无上下文工程: 你问“我的XX-9000型设备报错代码E57是什么意思?”,通用LLM可能会瞎猜一个答案。
- 有上下文工程: 系统首先从最新的设备手册和维修工单数据库中检索到关于“XX-9000”和“E57”的准确信息,然后将“E57代表传感器连接超时,请检查并重新插拔3号端口的连接线”这段上下文提供给LLM,LLM再用自然的语言回答用户。
- 无上下文工程: 你问“我该买什么股票?”,LLM只能给一些非常笼统的建议。
- 有上下文工程: 系统首先接入你的个人投资组合数据(私有上下文)和实时的市场新闻API(实时上下文)。当你问“根据我目前的持仓和今天的市场情况,我应该如何调整?”时,系统将这些动态信息作为上下文提供给LLM,从而生成高度个性化和时效性的建议。
- 这是一个更高级的例子。在Palantir中,“上下文”不仅仅是文本块,而是结构化的“本体”(Ontology)。当用户问“与最近供应链中断事件相关的、风险最高的供应商是哪个?”时,Palantir的上下文工程系统会:
- 解析问题,理解“供应链中断事件”、“供应商”、“风险最高”这些概念在本体中的对应。
- 自动执行查询,检索出相关的事件对象和供应商对象。
- 将这些结构化的对象信息(而不仅仅是文本)作为上下文提供给LLM。
- LLM基于这些结构化事实进行推理并回答。
四、RAG 提供上下文
目前,实现上下文工程最主流、最流行的技术架构是 “检索增强生成”(Retrieval-Augmented Generation, RAG)。
一个典型的RAG流程如下:
- 数据准备(离线阶段):
- 加载与切分: 将你的私有知识库(如PDF文档、网页、数据库记录)加载进来,并将其切分成一个个小的信息“块”(Chunks)。
- 向量化与索引: 使用一个专门的“嵌入模型”(Embedding Model)将每个信息块转换成一串数字,即“向量”(Vector)。这些向量代表了信息块的语义含义。然后,将这些向量和原文存储在“向量数据库”(Vector Database)中。
- 用户提问: 用户提出一个问题,例如“我们公司最新的报销政策是什么?”。
- 查询向量化: 系统同样使用嵌入模型将用户的问题也转换成一个向量。
- 相似性检索: 系统拿着问题的向量,去向量数据库中进行“相似性搜索”,找出与问题语义最相近的几个信息块(例如,找到了“2025年差旅报销新规.pdf”中的第三段和第四段)。
- 上下文注入与提示词构建: 系统会自动构建一个新的、增强后的提示词,格式可能如下:
---背景资料---
[这里是检索到的“2025年差旅报销新规”的相关段落...]
---我的问题---
我们公司最新的报销政策是什么?
---指令---
请依据以上背景资料,回答我的问题。
- 生成回答: 将这个包含精准上下文的提示词发送给大语言模型(LLM)。LLM会基于你提供的“小抄”生成一个准确的、有据可查的回答。
除了 RAG,以下是几种同样重要且正在快速发展的上下文工程典型范式。先进的AI应用通常会将它们组合使用。
五、微调 (Fine-Tuning):将知识“内化”为模型能力
如果说 RAG 是给模型一本“开卷考试”的参考书,那么微调就是提前给模型进行“考前特训”,将特定的知识和能力“内化”到模型的参数权重中。
- 核心思想:
不是在提问时提供上下文,而是在模型部署前,在一个精心准备的、特定领域的数据集上继续训练一个基础大模型(如 Llama 3, GPT-4)。这个数据集通常包含了成百上千个“高质量问答对”或范例文章。
- 上下文来源:
一个结构化的、领域特定的数据集(例如,包含了公司所有产品手册的问答对、所有历史客服对话、特定风格的法律文书等)。
- 它解决了什么问题?
- 风格与语调 (Style & Tone): 让模型的语言风格完全符合你的品牌语调或专业领域的特定“黑话”。
- 格式遵循 (Format Following): 教会模型稳定地输出特定的格式,如JSON、XML或特定的报告格式。
- 隐性知识 (Implicit Knowledge): 让模型学习特定领域的通用知识和推理模式,而不仅仅是事实。例如,教会模型像一个资深医生那样进行初步的鉴别诊断思考。
- 举例:
一家法律科技公司,希望AI助手能以专业的法律文书风格起草合同。他们可以收集数千份已有的、高质量的合同作为数据集,对一个基础大模型进行微调。微调后,你只需给模型一个简单的指令“起草一份软件授权协议”,它就能自动生成结构、术语、风格都非常专业的文本,而不需要在提示词里提供大量的合同范本作为上下文。
- 与RAG的关系:
微调和RAG是互补的。微调教会模型“如何思考和说话”,RAG则在运行时为其提供“最新的事实依据”。
六、智能体与工具调用 (Agent & Tool-Using):将世界作为“动态上下文”
这是目前最前沿、最强大的范式之一。它不再将上下文视为静态的文本信息,而是将整个外部世界(通过API、数据库等)作为可以实时交互和获取的动态上下文。
- 核心思想:
将LLM打造成一个有“大脑”的智能体(Agent),并为其配备一个“工具箱”(Toolkit)。当面对一个复杂任务时,智能体会自主地思考、规划,并决定调用哪个工具来获取所需信息,然后将工具返回的结果作为下一步思考的上下文。这个过程通常遵循 ReAct (Reason + Act) 框架。
- 上下文来源:
API的实时返回结果、数据库的查询结果、代码执行器的输出、甚至其他AI模型的分析结果。
- 它解决了什么问题?
- 实时性与动态性: 可以获取完全实时的数据,如当前的天气、股价、航班信息。
- 可操作性: 不仅能“读”世界,还能“写”世界。可以执行预订、下单、发送邮件、控制智能家居等实际操作。
- 复杂问题分解: 能够将一个复杂问题分解成多个步骤,通过连续调用不同工具来逐步解决。
- 举例:
场景: 用户说:“帮我规划一次从深圳到北京的周末旅行,预算5000元,要订往返机票和一家评分4.5以上的酒店。”
智能体的执行流程:
- 思考(Reason): “我需要先查机票,再查酒店。” -> 行动(Act): 调用search_flights(origin=’SZX’, destination=’PEK’, dates=’…’) 工具。
- 观察(Observe): 工具返回了几个航班选项(这就是第一层动态上下文)。
- 思考(Reason): “航班A最便宜,剩下预算4000元。现在我需要用这个预算和日期去查酒店。” -> 行动(Act): 调用Google Hotels(city=’Beijing’, budget=4000, min_rating=4.5, …) 工具。
- 观察(Observe): 工具返回了符合条件的酒店列表(这是第二层动态上下文)。
- 思考(Reason): “信息都齐了,可以整合起来给用户一个完整的方案了。” -> 生成最终回答。
RAG可以被看作是智能体拥有的一个“专用工具”,即 retrieve_from_knowledge_base()。智能体范式是RAG的超集,它将上下文的来源从静态知识库扩展到了无限的、可交互的外部服务。
七、上下文窗口管理与压缩 (Context Window Management & Compression)
这种范式专注于如何在一个有限的上下文窗口内,最高效地管理和呈现信息,尤其是在长程对话(Long Conversation)中。
- 核心思想:
对话本身就是最重要的上下文。随着对话轮次增加,如何保留关键信息,同时丢弃不重要的信息,以避免上下文窗口溢出或关键信息被“冲淡”。
- 上下文来源:
历史对话记录。
- 典型技术:
- 滑动窗口 (Sliding Window): 只保留最近的N轮对话作为上下文。简单但容易丢失早期重要信息。
- 对话摘要 (Conversational Summarization): 使用另一个(通常是更小的)LLM在后台定期对历史对话进行总结。然后将这个摘要和最近几轮对话一起作为新的上下文。例如:“摘要:用户正在计划去北京的旅行,已确定机票。当前问题:…”。
- 混合检索: 在检索知识库(RAG)时,不仅使用用户的当前问题,还结合对话历史的摘要或向量进行检索,以更好地理解用户的真实意图。
- 举例:
一个心理咨询AI助手,在进行了长达一个小时的对话后,需要记住用户在对话早期提到的一个关键童年经历。通过对话摘要技术,系统能将这个关键信息持续保留在“工作记忆”(即上下文)中,从而在后续对话中进行引用和共情。
八、总结对比
范式 (Paradigm) |
核心思想 |
上下文来源 |
优点 |
缺点 |
RAG (检索增强生成) |
外部知识检索,开卷考试 |
向量数据库、知识库 |
事实性强、知识可更新、成本较低 |
依赖检索质量、有一定延迟 |
Fine-Tuning (微调) |
内部知识内化,考前特训 |
领域特定数据集 |
风格/语调/格式控制好、推理能力强 |
知识静态、成本高、可能遗忘通用能力 |
Agents & Tools (智能体与工具) |
实时交互,动态获取 |
APIs、数据库、代码执行器 |
实时、可操作、能解决复杂任务 |
系统复杂、有安全风险、依赖工具可靠性 |
Context Management (上下文管理) |
优化长程记忆 |
历史对话记录 |
保持对话连贯性、理解深层意图 |
增加计算开销、可能丢失细节 |
在实践中,最先进的AI应用(如 Palantir AIP、Databricks Mosaic AI Agent Framework 等)往往会融合以上所有范式,构建出一个能够根据任务需求,灵活地检索静态知识、调用实时工具、并保持长程对话记忆的复杂系统。