第 4 章:AI 上下文工程

本章系统梳理了上下文工程与提示词工程的核心区别,深入探讨 RAG、记忆系统、上下文管理等关键技术,帮助开发者构建更智能、更可靠的 AI 原生应用。

提示词工程

大型语言模型(LLM)作为 AI 原生应用的技术核心,其输出质量高度依赖于输入的精确性与引导性。提示词工程(Prompt Engineering)正是围绕如何设计、构建和优化输入文本,以引导大型语言模型产生期望输出的系统性方法。

它并非简单的提问,而是一套涵盖指令设计、上下文注入、角色设定和格式控制的综合性技术。一个精心设计的提示词,能够系统性地引导模型的生成过程,最大化地激发其潜力,确保输出的准确性、相关性和一致性。

在 AI 原生应用的初期阶段,提示词工程构成了将用户意图转化为模型可执行指令的核心接口。它使得开发者和用户能够以低成本、高效率的方式驾驭强大的 LLM,完成从内容创作、代码生成到数据分析等一系列任务。

优秀提示词的核心实践

高质量的提示词能够显著提升模型的表现。尽管具体实现千变万化,但优秀的提示词工程实践普遍遵循以下核心原则:

产生幻觉和不确定性的根本原因错综复杂:

明确角色与目标

在提示词开头为 AI 赋予一个专家角色,能有效激活模型内部与该领域相关的知识库和语言风格,这比泛泛而谈的请求更具引导性。

优秀范例:“假设你是一位拥有 10 年经验的市场营销总监,请为一款新型智能手表起草一份面向年轻专业人士的产品介绍文案。”

提供清晰指令与完整上下文

明确告知 AI 需要执行的任务,并提供完成任务所必需的背景信息。指令越具体,歧义越少,模型偏离主题的可能性就越低。

优秀范例:“请总结以下技术文章的核心观点(不超过 200 字),并列出其中提到的三个关键数据。不要添加个人评论。文章内容如下:[在此处粘贴文章]"

运用范例进行引导

对于需要模型遵循特定模式或风格的复杂任务,提供一到两个“输入 - 输出”范例,能让 AI 迅速理解并模仿要求,这远比冗长的描述更有效。

优秀范例:“请分析以下句子的情感及关键对象。范例:输入:‘我喜欢这部电影的剧情。’输出:{‘sentiment’:‘positive’:‘aspect’:‘plot’}。现在,请分析这个句子:‘这台相机的画质很棒,但电池续航太短。’”

定义结构化输出格式

在应用开发中,要求模型返回特定格式(如 JSON、Markdown 列表)的数据至关重要,这能确保 AI 的输出可以直接被下游程序解析和使用。

优秀范例:“请将你的回答组织成 JSON 格式,包含 product_namekey_features 两个字段,其中 key_features 是一个包含至少三项功能的数组。”

提示词工程的固有局限性

尽管提示词工程在特定场景下表现优异,但随着 AI 应用向更复杂的 Agent 系统和长流程任务演进,其固有的局限性日益凸显,标志着仅优化提问这一思路已接近其能力上限。

应对动态及长流程任务的局限

提示词本质上是静态的、预定义的模板。这种模式难以应对需要动态适应环境变化、处理高并发请求或执行长时间、多步骤的复杂任务。当任务流程包含多个分支或需要根据前序步骤的结果动态调整后续行为时,单个或一组固定的提示词便显得力不从心,缺乏必要的灵活性和扩展性。

应对模型固有的无状态特性

标准的提示词交互是无状态的,即模型不会自动记忆之前的对话历史。虽然可以通过在每次请求中手动拼接历史记录来模拟短期记忆,但这在多轮交互中会迅速变得低效且成本高昂,并受到上下文窗口长度的严格限制。它无法有效建立跨越多次对话的长期记忆,导致对话的连贯性和个性化体验受限。

无法突破模型固有的知识边界

无法突破模型固有的知识边界提示词工程的本质是优化对模型已有知识的访问与提取路径,而非扩充模型可访问的知识库本身。对于模型训练数据截止日期之后的新知识、企业内部的私域知识或需要实时更新的信息,无论提示词设计得多么精妙,模型都无法凭空生成。单纯依赖提示词工程,无法解决 LLM 固有的知识时效性滞后和领域知识缺失的问题。

长上下文中的信息利用不均衡

研究与实践表明,LLM 在处理长上下文时存在“中间遗忘”(Lost in the Middle)现象。模型对位于上下文窗口(即提示词)开头和结尾的信息关注度最高,而对中间部分的信息则容易忽略。这意味着,即使开发者在提示词中精确地提供了所有必需信息,但如果关键指令或数据恰好位于中间位置,模型仍有可能“视而不见”,导致任务执行失败或结果偏离预期。这一现象在通过检索增强生成(RAG)等方式注入大量外部知识时尤为突出,严重挑战了长上下文处理的可靠性,也为构建需要依赖大量背景信息的复杂应用带来了根本性障碍。

这些限制清晰地表明,要构建更强大、更可靠的下一代 AI 应用,必须超越对单次交互的优化。我们需要一种全新的范式,将技术重心从优化静态的提问方式,扩展为动态构建与管理系统的认知环境。这并非简单的替代,而是将提示词设计作为整个上下文构建中的一个关键环节,进行更系统化的提升,确保模型在“思考”的每一刻都能获取最准确、最相关的信息。

为此,上下文工程(Context Engineering)应运而生。

上下文工程

上一节我们剖析了提示词工程的固有局限性,揭示了其在应对动态任务、管理长期记忆、突破知识边界以及高效利用长上下文等方面的不足。这些挑战共同指向一个结论:要构建真正强大且可靠的 AI 原生应用,仅优化如何提问是远远不够的。我们必须转向一个更宏大、更系统的范式,即上下文工程(Context Engineering)。

上下文工程的核心理念,在于将 AI 应用开发的焦点从优化单次交互的指令,转向为模型的每一次推理动态构建一个完整、准确且高效的认知环境。它不再局限于设计静态的提示词模板,而是致力于创建一个系统,确保模型在执行任务时,能够实时获取并利用完成该任务所需的所有相关信息,包括外部知识、历史记忆、可用工具及执行环境。

这一范式转变的根本原因在于,AI 应用的复杂性已远超单次问答。现代 AI 系统,尤其是 Agent,被要求执行长流程任务、维持个性化交互并确保事实准确性。随着 LLM 上下文窗口从几千扩展到超过百万 Tokens,如何有效填充和管理这个巨大的信息空间,使其成为 AI 的工作记忆而非信息噪声,成为了决定应用成败的关键。上下文工程正是为应对这一核心挑战而生的系统级解决方案。

上下文工程与提示词工程的核心区别

下表对比了上下文工程与提示词工程在目标、范围和关键技术等维度的不同:

维度提示词工程上下文工程
核心目标优化单次交互的指令,以获得最佳输出构建动态的上下文系统,确保推理的准确性与可靠性
工作范围聚焦于单轮或有限的多轮交互整合多源、异构的数据流与工具
关键技术指令设计、范例选择、角色扮演检索增强生成(RAG)、向量数据库、工作流编排、记忆管理
表 1: 上下文工程与提示词工程对比

简而言之,如果说提示词工程是“术”,专注于提升单次沟通的效率;那么上下文工程则是“道”,旨在构建一个能让 AI 持续、高效、可靠地解决问题的系统性框架。

上下文工程的关键组成部分

上下文工程通过协同工作的一系列核心组件,为 LLM 构建其动态认知环境。这些组件共同构成了下一代 AI 应用的基石。

外部知识库的动态供给

为解决 LLM 知识陈旧和领域知识缺乏的问题,上下文工程的核心是为其接入外部知识库。通过检索增强生成(Retrieval- Augmented Generation,RAG)技术,系统能够在接收到用户请求时,首先从企业的私有数据库、实时信息流或互联网等外部来源检索相关信息,再将这些检索到的信息与提示词一同组合成最终的上下文,引导 LLM 基于准确、实时的知识进行回答。

长期与短期记忆系统

为了实现连贯且个性化的交互,上下文工程引入了记忆系统。短期记忆负责管理当前对话的上下文,确保多轮对话的流畅性。长期记忆则负责存储跨对话周期的关键信息,如用户偏好、历史决策、重要事实等,使 AI 能够记住用户,提供真正个性化的服务。

工具与能力的扩展

上下文不仅包含静态信息,也包括对模型可用的工具(动态能力)的描述。上下文工程通过为 LLM 提供一系列工具(Tools),本质上是 API 或函数调用来扩展其能力边界。这使得 LLM 不再局限于文本生成,而是可以查询数据库、调用外部服务、执行代码甚至操作物理设备,成为一个能够与数字和物理世界交互的智能体。

运行时的上下文管理

面对有限且昂贵的上下文窗口,特别是在长对话或复杂任务中,如何高效管理上下文至关重要。这包括一系列运行时策略,如上下文压缩与摘要,用于在保留关键信息的同时减少 Token 消耗;以及上下文重排(Re- ranking),用于解决中间遗忘问题,将最重要的信息放置在模型最关注的位置,从而提升长上下文处理的可靠性。

通过对这些关键组件的系统性设计与优化,上下文工程为构建高效、可靠且具备深度认知能力的 AI 原生应用提供了坚实的基础。接下来的章节,我们将深入探讨实现上下文工程的核心技术与最佳实践。

RAG 技术原理与挑战

在上一节中,我们明确了上下文工程的目标,为 AI 构建一个动态的认知环境。上下文工程是一个系统性工程,涉及多种技术路径,其中,检索增强 RAG 生成是上下文工程中非常重要的组成部分。RAG 架构通过将 LLM 与外部可信知识库动态连接,从根本上弥合了通用模型能力与企业特定、实时性需求之间的鸿沟,使其成为当前构建动态上下文最重要和最被广泛采用的技术路径。

LLM 固有的三大局限性,知识时效性滞后、缺乏企业私域知识以及存在幻觉风险,构成了其在严肃商业场景中落地的关键障碍。RAG 通过引入并卷考试的模式,在模型生成答案之前,先从指定的知识库中检索相关信息,并将其作为上下文提供给 LLM,从而引导模型基于可靠的外部知识进行回答。这种模式不仅有效缓解了上述局限性,更成为驱动 AI 原生应用业务价值实现的核心引擎。

RAG 的基础范式:三阶段工作流

RAG 的基础范式可被清晰地解构为三个核心阶段:索引(Indexing)、检索(Retrieval)与生成(Generation)。这三个阶段环环相扣,共同构成了一个完整的知识注入一匹配一应用的流程。

1、第一阶段:索引

索引阶段的目标是将原始的、非结构化的外部知识(如企业私域文档、实时数据流等)转化为机器可高效检索的格式。这一过程是 RAG 系统性能的基石,其质量直接决定了后续检索的准确率和效率。通用实现包含以下关键步骤:

  • 文档解析与提取:首先,系统需要从多种格式的原始文档(如 PDF、Word、HTML 等)中解析并提取出纯文本内容。高质量的解析能最大程度地保留原文的结构和语义信息。

  • 文本分块(Chunking):由于 LLM 上下文窗口的长度限制,以及为了实现更精准的语义匹配,长文档必须被切分成更小、更易于管理的“块”(Chunks)。分块策略(如固定大小、按句子/段落切分)对检索效果有至关重要的影响。

  • 语义向量化(Embedding):为让机器理解文本的语义,每个文本块都会通过一个预训练的 Embedding 模型(如 qwen3- embedding、bge- m3)被转化为一个高维度的数学向量。在生成的向量空间中,语义相近的文本块在空间位置上也更接近。

构建向量索引库:将所有文本块的向量表示存储起来,并建立高效的索引,最终形成向量索引库(通常由向量数据库承载)。这使得系统在接收到查询时,无需暴力遍历所有向量,即可快速找到最相似的向量。

2、第二阶段:检索

检索阶段是连接用户意图与知识库的桥梁。其核心任务是根据用户的自然语言查询,从已构建好的向量索引库中,快速、准确地找出最相关的 N 个知识块(Top- K)。

该过程首先将用户的查询通过相同的 Embedding 模型转化为查询向量。随后,系统利用此查询向量在向量索引库中执行相似度搜索(通常使用余弦相似度等度量方法),计算查询向量与库中所有文本块向量的相似度得分。最后,根据集合高低排序,返回最相关的 Top- K 个文本块作为后续生成阶段的事实依据。

3、第三阶段:生成

生成阶段是 RAG 流程价值最终体现的环节。系统会将前一阶段检索到的多个相关知识块与用户的原始查询进行整合,构建一个增强的提示词(Augmented Prompt)。

这个提示词通常包含明确的指令,要求 LLM 基于提供的上下文信息来回答用户的问题。一个典型的提示词模板如下:

随后,这个包含了丰富、相关且具时效性知识的提示词被发送给 LLM。LLM 利用其强大的自然语言理解和生成能力,对信息进行综合、推理、提炼和总结,最终生成一个流畅、连贯且基于所提供事实的最终答案。

RAG 在工程化落地中面临的挑战

尽管 RAG 的基础范式逻辑清晰,但在复杂的现实应用中,将其从原型转化为稳定、高效的生产级系统,开发者会面临一系列严峻的工程挑战。这些挑战贯穿于数据处理、查询理解、召回匹配和复杂推理的全链路。

知识单元的完整性与信息密度的抉择

RAG 系统的根基在于高质量的知识库,而知识库的构建始于对原始数据的精细处理。传统的固定长度或基于分隔符的切块方法,极易破坏信息的完整性,例如一个完整的逻辑段落、一张表格或一段代码块可能被强行截断,导致上下文信息丢失。同时,一个知识单元如果包含过多无关的“噪声”信息(如丢留、丢掷、广告等),会稀释其核心语义,干扰检索模型的判断。

难以精准捕捉模糊、多样的用户意图

用户与 RAG 系统的交互始于一次查询,而用户的查询往往是模糊、口语化甚至包含多重意图的。自然语言天然存在的模糊性与歧义性,以及用户提问的语言风格与知识库文档的书面化、专业化风格之间存在的“语义鸿沟”,都对系统的查询理解能力构成了挑战。若无法准确理解用户的真实意图,后续的检索和生成环节都将是无源之水。

召回匹配时难以兼顾语义相关性与关键词精确性

召回是 RAG 系统的核心环节。主流的基于向量的语义检索,虽能很好地处理同义词、近义词问题,但在需要精确匹配的场景(如专有名词、技术术语、产品型号或代码函数名)时,可能会错失最相关的结果。而传统的关键词检索虽擅长精确匹配,却无法理解语义,对查询的措辞变化非常敏感。如何在二者之间找到最佳平衡点,是否回收许的一大挑战。

需要探索如何在检索精度与完整性之间取得平衡

将召回的知识单元整合到 LLM 的提示词中,面临着大海捞针和上下文窗口限制的双重问题。如果将大量召回的知识单元不加选择地全部塞入上下文,关键信息可能被淹没在冗余内容中,触发 LLM 的中间遗忘问题。而如果上下文过少,则可能导致 LLM 因信息不足而无法生成高质量的答案。

应对需要多知识点综合推理的查询实现

现实世界中的许多问题并非通过单一的知识片段就能回答,它们往往需要综合、比较、推理分布在多个文档、甚至多个数据源中的信息。这类“多跳(Multi- hop)问题是检验 RAG 系统智能水平的试金石。传统的一次检索、一次生成模式,难以应对需要逐步推理的复杂问题,容易出现推理链条的断裂。

认识到这些局限性是推动技术演进的第一步。为了构建真正能够应对复杂业务场景、实现高精度、高稳健性知识服务的 AI 原生应用,我们必须在基础范式的之上,探索更为精细化、系统化的工程落地策略。接下来的章节,我们将深入剖析 RAG 系统的优化实践。

RAG 系统优化实践:索引构建

上一节我们探讨了 RAG 在工程落地中面临的一系列挑战,其中“如何保证知识单元的完整性与信息密度”是所有后续环节的基础。索引构建的质量,直接决定了 RAG 系统能力的上限。一个粗糙的索引过程,即便后续的检索与生成环节再精妙,也无法弥补其先天缺陷。

因此,本节将聚焦于 RAG 系统的第一个核心阶段:索引构建。我们将从基础的分块策略出发,逐步深入到高级优化技术,并最终探讨如何处理包含表格、图像等复杂结构的文档,从而为构建一个高效、精准的知识库奠定坚实基础。

基础文本分块策略

文本分块(Chunking)是将原始文档转化为可检索单元的第一步,其核心目标是在保持语义完整性和控制块大小之间取得平衡。

1、固定大小分块

这是最简单直接的方法,即按照预定义的长度(如字符数、单词数或 Token 数)将文本分割为统一大小的片段。

优势:实现简单,标准化程度高,计算开销低,适合快速原型验证或处理结构化较弱的文本。劣势:完全忽略文本的语义边界,极易将一个完整的句子或逻辑段落强行切分到不同的块中,导致严重的语义断裂。

2、基于句子或段落分块

此策略利用文本的自然结构(如句号、问号等标点符号或段落换行符)作为分割依据。优势:尊重语言的语法和逻辑结构,能更好地保持单个知识点的完整性,提升块的可读性与语义内聚性。劣势:块的大小会随句子或段落的长度而波动,可能产生过短(信息量不足)或过长(超出上下文限制)的块。

3、语义分块

这是一种更先进的动态划分策略。它通过引入 Embedding 技术计算相邻文本单元(如句子)间的语义相似度,在相似度得分显著下降的位置进行切分,从而识别出文本中的语义边界。这旨在创建包含连贯思想或主题的语义单元。

优势:最大程度上保留了自然语义边界和主题的连贯性,生成的知识块信息密度高,尤其适用于法律条款、技术文档等对逻辑连贯性要求高的场景。

劣势:计算成本较高,因需要进行嵌入和相似度计算;且分块质量依赖于所用 Embedding 模型的性能。

高级分块优化策略

为了克服基础策略的局限性,业界发展出了一系列高级优化技术,旨在进一步提升检索的精准度和生成上下文的质量。

1、滑动窗口(Sliding Window)

该策略通过在相邻的文本块之间设置一个重叠区域(Overlap),来减轻因硬性切分导致的边界信息丢失问题。例如,在切分时,下一个块会包含上一个块结尾的一部分内容。

解决的问题:缓解语义断裂。当用户的查询恰好与两个块的边界区域相关时,重叠内容确保了相关上下文能够被完整地检索到。

实践考量:重叠区域的大小需要权衡,过小则效果不彰,过大会则增加存储和计算的冗余。

2、小块检索,大块生成(Small-to-Big)

这是一个核心的优化思想,旨在化解小块检索准,大块语境足的矛盾。其实现方式通常是父子文档映射:

索引阶段:将文档切分成两种粒度。一种是适合检索的、语义集中的子块(Small Chunks),另一种是包含更完整上下文的父块(Big Chunks)。只对子块进行向量化并存入索引库。

检索阶段:使用用户的查询去匹配精准的子块。生成阶段:命中子块后,系统映射回其对应的父块,并将这个包含更丰富上下文的父块传递给 LLM,用于生成答案。解决的问题:兼顾了检索的精准性和生成所需的上下文完整性,显著提升了复杂问题的回答质量。

3、元数据标注与过滤

该策略主张在索引阶段为每个文本块附加丰富的元数据(Metadata),如文档来源、章节标题、作者、发布日期、关键词等。

解决的问题:将单一的语义检索升级为元数据过滤 + 语义检索的混合模式。在检索时,可以首先通过元数据对候选范围进行精确筛选(例如,只检索“第三章节”或“2024 年之后”的文档),然后在此范围内再进行语义搜索。这极大地提升了检索效率和准确性,尤其是在大规模知识库中。

处理复杂文档的索引策略

真实世界的文档往往不只是纯文本,还包含表格、图片、代码、脚注等复杂结构。一个健壮的索引流程必须能够感知并区别处理这些元素。

1、层次化索引

对于具有清晰层级结构(如章节 - 段落 - 包子)的文档,可以构建一个层次化的索引结构。

实现方式:为文档的顶层结构(如章节标题或摘要)创建摘要索引,为底层的详细内容创建区块索引。检索时,可以先在“摘要索引”中快速定位到相关的章节,再到该章节的“区块索引”中进行精细查找。

优势:模拟了人类目录 - 章节 - 段落的阅读认知过程,实现了由粗到细的高效检索,特别适用于长篇技术手册、法律文书和学术论文。

2、多模态内容的处理与表示

该策略的核心是为不同模态的数据采用专门的处理与表示方法,将其转化为适合索引的格式,并在最终的知识单元中保留其核心语义。其实现方式是:

文本:采用前述的语义分块策略。

表格:并非将其简单序列化为文本,而是提取其结构化数据(如转化为 Markdown 或 JSON 格式),或对表格进行摘要描述,并单独索引。

图像:使用 OCR 技术提取图中文字,并结合图像描述模型(ImageCaptioning)生成对图像内容的语义描述,共同作为该图像的索引内容。

优势:最大限度地保留了文档的原始信息,减少了因格式转换带来的语义损失,是构建真正能够理解复杂混合文档的 RAG 系统的关键。

索引构建是 RAG 系统中一项精细且至关重要的工程任务,远非简单的文本切分所能概括。它是一个需要根据数据源的特性、结构和应用场景,进行策略选择与组合优化的过程。一个设计精良的索引,能够从源头上保证知识的完整性、准确性和可检索性,是实现高质量、高可靠性 RAG 系统的坚实地基。

RAG 系统优化实践:检索流程

在上一节中,我们详细探讨了如何构建一个高质量、结构优良的索引库,这是 RAG 系统的静态基础。然而,一个优秀的知识库必须匹配一个同样高效的检索流程,才能在用户提出请求时,将其潜力完全释放。检索流程是 RAG 系统的动态核心,它承载着从理解用户模糊的意图,到在海量知识中精准定位,再到最终构建出信息浓缩、结构清晰的“完美上下文”的全部使命。

本章将聚焦于 RAG 系统的在线优化实践,深入探讨查询理解与增强、多路召回与混合检索,以及结果精炼与上下文重组这三大关键环节的策略与技术。

查询理解与增强

检索流程的起点是用户的原始查询,而这一查询往往并非最优的检索形式。查询理解与增强的目标,就是通过一系列技术手段,将用户原始、模糊的查询,转化为机器更容易理解、更适合下游检索的结构化或增强型查询。

1、查询改写与扩充

用户的原始查询可能包含口语化表达、拼写错误,或使用的词汇与知识库中的术语不完全匹配。查询改写与扩充旨在通过 LLM 的语言理解和生成能力,将原始查询转化为一个或多个更清晰、更规范、更适合检索的查询版本。

实现方式:采用改写 - 检索 - 阅读(Rewrite- Retrieve- Read)框架,在检索前增加一个“改写”步骤。例如,一个模糊的查询“AI 原生应用咋回事”可以被改写为更精确的“AI 原生应用的架构定义是什么?”或“AI 原生应用的核心特征有哪些?”

效果:纠正了口语化表达,明确了查询焦点,并通过生成多个角度的查询,扩大了语义覆盖面,从而提升召回相关文档的可能性。

2、复杂问题分解

当用户提出一个包含多个子问题或需要多步推理才能解答的复杂问题时,单一的、整体性的检索往往难以奏效。复杂问题分解技术旨在将一个宏大的问题,拆解成一系列更小、更具体的子问题。

实现方式:利用 LLM 识别出原始问题中隐藏的、需要独立解答的子任务。例如,查询“对比 A 产品和 B 产品在性能和成本上的差异?”可被分解为四个独立的子查询:“A 产品的性能是什么?”、“B 产品的性能是什么?”、“A 产品的成本是多少?”、“B 产品的成本是多少?”系统对每个子问题独立进行检索,最后综合所有子问题的检索结果来形成最终答案。

效果:将复杂的多跳(Multi- hop)推理问题,转化为一系列简单的单跳事实检索,显著提升了处理复杂查询的准确性和全面性。

3、假设性文档嵌入(HyDE)

该策略旨在通过一种创新的思路来跨越“短查询”与“长文档”之间的语义鸿沟。其核心思想是:不直接用用户的简短查询去匹配长的文档,而是先利用 LLM 生成一个“假设性的”理想答案文档,然后用这个内容更丰富、与真实答案在形式和语义上更接近的假设性文档去进行向量检索。

实现方式

  • 接收到用户查询后,提示一个强大的 LLM:“请针对以下问题生成一个详细的回答文档”。 - 将 LLM 生成的这个“伪答案”进行向量化。 - 使用这个“答案的向量”去匹配知识库中“真实答案的向量”。

效果:巧妙地将“Question- to- Document”的匹配问题,转化为了“Document- to- Document”的匹配问题,由于两者在形式、长度和语义丰富度上更加对等,从而显著提升了在零样本(zero- shot)场景下的检索精度。

多路召回与混合检索

在拥有了高质量的查询后,下一步是从索引库中找出所有相关的候选文档。单一的检索策略往往存在短板,因此采用多路召回与混合检索的策略,是保证召回广度与精度的关键。

1、向量检索与关键词检索的协同

现代 RAG 系统中最经典的混合检索组合,就是向量检索(密集检索)与关键词检索(稀疏检索,如 BM25 算法)的协同。

向量检索:核心优势在于其强大的语义理解能力,能很好地处理同义词、近义词等问题。- 关键词检索:核心优势在于其字面精确匹配能力,对于专有名词、产品型号、代码片段等需要精确匹配的场景表现出色。- 协同方式:系统并行执行这两种检索,各自生成一个候选文档列表。这样既利用了向量检索的模糊语义理解能力,又利用了关键词检索的精准字面匹配能力,实现了优势互补。

2、倒数排名融合(RRF)

当从多路召回中获得了多个独立的、排好序的文档列表后,需要一种有效的策略将它们融合成一个最终的排序结果。倒数排名融合(Reciprocal Rank Fusion, RRF)是一种简单而极其有效的策略。

核心思想:一个文档如果在多个不同的检索结果列表里都排在靠前的位置,那么它很可能是一个非常相关的文档。RRF 算法忽略了不同检索系统的原始相关性分数,而是基于文档在各个列表中的排名(Rank)来计算一个融合后的新分数。一个文档在不同列表中的排名越靠前,其最终的融合分数就越高。

效果:RRF 无需复杂的参数调整,稳健性强,能够有效地整合来自不同信息源的信号,优先展示那些被多方共识为重要的文档,显著提升检索结果的整体质量和稳健性。

结果精炼与上下文重组

经过查询增强和多路召回,我们获得了一个比原始检索更相关、更全面的候选文档池。然而,这个阶段的结果仍然可能存在噪声,且直接拼接作为上下文可能会破坏信息的完整性。因此,结果精炼与上下文重组是通往高质量生成的最后一道关键工序。

1、重排序(Rerank)

重排序是在召回(Recall)的基础上进行的一次更精细、更昂贵的二次排序过程。它使用一个更强大、更复杂的模型(如交叉编码器)来对查询与每个候选文档进行深度交互,从而计算出一个比向量相似度远更精准的相关性分数。

核心技术:交叉编码器(Cross- Encoder)。与检索阶段将查询和文档独立编码的双编码器(Bi Encoder)不同,交叉编码器将查询和候选文档同时输入到一个强大的 Transformer 模型中,使其能够充分捕捉两者之间复杂的深层交互关系,从而给出一个远比向量相似度更精准的相关性分数。

流程

使用高效的召回方法(如混合检索)快速召回一个相对较大的候选集(如 Top100)。将这个候选集和原始查询送入交叉编码器模型,逐一进行深度计算和打分。根据新的分数重新排序,并选择排名最高的 Top-K 个文档作为最终上下文。效果:在保持高效召回的同时,极大提升了最终上下文的精准度,有效减少了噪声,是提升生成答案质量、减少幻觉的关键步骤。

2、自动合并检索

该策略旨在解决传统分块方法可能导致的语义割裂问题。其核心思想是在数据处理阶段就建立起文档块之间的层级关系,并在检索后智能地将离散的子块合并回更完整的父块。

实现方式:在索引阶段,将文档解析为层级结构(如父块 - 子块)。检索时,系统在细粒度的子块上进行精准定位。如果发现有多个被召回的子块都指向同一个父块,系统会判定这个父块所代表的、更完整的上下文可能对回答问题至关重要,于是会用这个父块的完整内容,替换掉所有被召回的、属于它的子块。

效果:动态地、智能地调整提供给 LLM 的上下文粒度。既能利用小块进行精准定位,又能在必要时“向上追溯”,提供一个更大、更完整的语境,确保了信息的连贯性和完整性,从而极大地提升了 RAG 的生成质量。

综上,一个高性能的 RAG 检索流程,是通过查询增强、混合检索与结果精炼等一系列环环相扣的优化措施,共同构建的关键链路。它确保了从用户模糊的意图到模型精准的生成,整个信息流动的每一步都尽可能地减少信息损失和噪声引入,最大化知识的利用效率。

当前,这些优化策略主要聚焦于如何更准确地检索事实。然而,AI 应用的未来将要求系统不仅能找到信息,更能进行复杂的推理。下一节,我们将探讨 RAG 架构的前沿演进,看它如何融合更先进的技术,从事实检索迈向推理式检索的更高阶智能。

RAG 的未来方向

通过前文的探讨,我们已经清晰地看到,RAG 已经从一个简单的检索 - 生成模型,演变为一套复杂而精密的系统工程。它不仅是提升 LLM 事实准确性的关键补丁,更是上下文工程的核心支柱。然而,技术演进的步伐从未停歇。发展至今,RAG 技术正沿着三条主要路径加速发展,共同推动其从一个被动的静态检索工具,向一个主动的、多维的、具备推理能力的智能知识基础设施跃迁。

这三大演进方向是 Agentic RAG、多模态 RAG 以及与知识图谱的深度融合,共同预示着下一代 AI 原生应用的核心能力:即一个能够自主规划信息需求、理解并交互于多元世界、并在结构化知识之上进行深度推理的强大认知内核。

Agentic RAG

Agentic RAG 的核心思想,是将信息检索的主动权从 AI 应用开发者手中,移交给 Agent 本身。在传统 RAG 中,检索是一个被动、前置的步骤,而在 Agentic RAG 中,检索被封装成一个智能体可以自主调用、评估和送代的工具(Tool)。

1、核心变革

智能体基于 LLM 的大脑进行判断,决定是否需要检索、何时检索、检索什么以及如何利用检索结果。信息的获取不再是固定的游戏,而是融入了智能体自我判断与送代的闭环之中。智能体可能会:

自我评估:首先判断自身知识是否足以回答问题,若不足,则触发检索。- 查询重构:对用户的原始查询进行调整和优化,以获得更好的检索效果。- 迭代检索:对首次检索的结果进行评估,如果不满意,会调整查询再次检索,直至找到满意的信息或达到最大迭代次数。- 动态规划:针对需要多步推理的复杂问题,自主规划一系列检索步骤。

2、价值与挑战

Agentic RAG 的模式更适合处理动态、开放域、需要多步推理的复杂查询场景。然而,这也带来了更高的实现成本和安全风险。如何设计完善的工具权限与审计机制,如何提升模型对工具选择的准确性,以及如何确保整个系统的稳健性和安全边界,是其在工程落地中必须面对的核心挑战。

多模态 RAG

随着多模态大模型的兴起,RAG 的知识边界也正从纯文本,扩展到图像、表格、音频、视频等更丰富的数据模态。对于企业而言,大量的知识资产并非以纯文本形式存在,多模态 RAG 的演进,将极大地提升这些资产的利用率和检索准确性。

1、核心变革

混合模态 RAG 旨在通过统一的嵌入与检索机制,将文本、图像、语音等不同类型的内容纳入同一个语义空间。

  • 跨模态检索:支持以文搜图、以图搜文等跨模态的检索能力。- 复杂文档理解:不再将图表丰富的文档简单视为纯文本,而是能精准地理解和检索其中的表格、图示和版式结构。- 统一表示:利用先进的多模态 Embedding 模型,将不同模态的数据映射到统一的向量空间中,实现无缝的语义检索。

2、价值与挑战

多模态 RAG 是解锁图表、版式复杂文档、多媒体、行业资料等商业价值的关键。然而,在检索形式上,当前落地案例仍以文搜图、文搜视频为主,而更复杂的图搜文、视频搜文等场景在企业级应用中仍鲜有成熟案例。如何高效处理和索引海量的非结构化多媒体数据,以及如何提升跨模态检索的精准度,是其面临的主要技术挑战。

知识图谱与 RAG 的融合

向量检索的核心在于捕捉语义相似性,而知识图谱(KnowledgeGraphs)的优势在于显式地建模实体之间的结构化关系。将两者融合,旨在将 RAG 从查文本片段的模式,升级到懂知识关联的更高维度。

1、核心变革

基于知识图谱索引的 RAG 技术,通过将实体、关系和属性建模为图结构,与传统的向量、关键词检索协同,实现了双轨驱动的范式。

  • 缓解“语义鸿沟”:让系统能进行多跳路径遍历与关系约束,构建可解释的推理链并对答案进行证据溯源。

  • 双轨范式:将语义相似度驱动的片段召回升级为结构化推理 + 语义匹配的双轨范式。- 应用场景:在法律、医疗、金融等强调逻辑一致性与合规性的场景中,其价值尤为突出。例

如,可以直接回答“糖尿病的并发症有哪些?”这类需要多步推理的问题。

2、价值与挑战

该融合技术极大增强了 RAG 处理需要复杂推理和高解释性问题的能力。然而,在企业级生产实践中,将海量企业级知识库转化为高质量的知识图谱,需要消耗大量的算力和时间。知识的动态更新也因此十分困难。如何在算法上精进构建知识图谱的效率,或在算法策略与图谱效果中进行动态取舍,是影响该技术未来能否广泛落地的关键因素之一。

面向未来,Agentic RAG、多模态 RAG 以及与知识图谱的融合,这三大方向共同将 RAG 从一个功能组件,升级为 AI 原生应用不可或缺的智能知识基础设施。

  • Agentic RAG:提供了任务导向的自主规划与自我检验能力。- 多模态 RAG:扩展了外部大脑的感知边界。- GraphRAG:增强了结构化推理与可追溯合规的能力。

三者协同演进,共同指向一个目标:提升知识获取的效率,增强生成内容与回答的可靠性。对于开发者而言,在实际落地中,应综合考虑业务的数据形态、风险约束与成本目标,进行合理的架构选型与组合优化。结合有效的工程治理能力,才能让好用且可管的 RAG 真正走向规模化,并在 AI 原生时代创造更大的价值。

上下文管理与记忆系统

前面的章节,我们深入探讨了如何通过 RAG 为 LLM 动态注入外部知识,这极大地增强了其回答问题的准确性和时效性。然而,当 AI 应用从问答式工具进化为能够自主规划、执行长流程任务的 Agent 时,我们面临一个全新的、更深层次的上下文挑战:状态管理与记忆。

智能体并非一次性的问答机器,而是一个需要长期运行、持续交互的自治系统。它必须能够记住“我是谁”、“我正在做什么”、“我过去做了什么”以及“我了解你什么”。如果缺乏这种状态和记忆,智能体将陷入失忆困境,无法执行任何需要跨越多步骤或多次交互的复杂任务。因此,一个强大而可靠的记忆系统,以及在此基础上的一整套运行时上下文管理策略,是构建真正智能体的核心,也是上下文工程在高级应用中的集中体现。

核心挑战:有限的工作记忆

LLM 的上下文窗口是智能体唯一的工作记忆,它进行思考、推理和决策的操作空间。尽管这个窗口越来越大,但它依然是有限、有成本且存在性能瓶颈的。对于一个需要长时间运行的智能体而言,将所有历史交互、工具调用结果、中间思考步骤全部塞入上下文,会迅速导致以下问题:

成本与性能下降:更长的上下文意味着更高的 Token 使用成本和更慢的推理速度。中间遗忘:正如前文所述,LLM 在处理长上下文时,容易忽略中间部分的信息,这对于需要依赖长序列信息的复杂任务是致命的。

信息噪声:过多的无关信息会稀释关键信息的浓度,干扰智能体的注意力,导致其偏离核心任务目标。

因此,智能体的上下文管理,其核心就是一套关于如何高效、智能地利用这个有限工作记忆的策略组合。

运行时上下文处理的四大策略

根据上下文工程的研究与实践,智能体在运行时的上下文处理策略可归纳为四大类:写入(Write)、选择(Select)、压缩(Compress)和隔离(Isolate)。

1、写入:将信息保存到外部记忆

该策略指将信息保存到上下文窗口之外,以便未来使用,这是构建记忆系统的基础。

  • 暂存区(Scratchpads):它特指 LLM 在生成下一步行动前,被引导输出的中间推理过程(即“思想链”,Chain of Thought)。这些思考步骤被记录下来,并与任务的观察结果一同作为下一轮推理的输入,从而形成一个连贯的思考与行动循环。

  • 记忆(Memories):帮助智能体跨越多个会话记住信息的持久化存储,如通过反思(Reflection)模型在每次执行后生成的自我总结和经验。

2、选择:将相关信息拉入上下文

该策略指在需要时,精准地将最相关的信息从外部拉入当前的上下文窗口。

  • 记忆检索:智能体根据当前任务,从长期记忆库中选择最相关的记忆。这通常利用向量检索(用于语义相关性)和/或知识图谱(用于实体关系)来实现。- 工具选择:当智能体需要使用工具时,通过 RAG 技术,根据当前任务的语义描述,从众多可用工具中选择最匹配的几个,将其 API 描述放入上下文,供智能体决策调用。

3、压缩:为上下文瘦身

该策略指在保留核心信息的前提下,减少上下文中的 token 数量。

  • 上下文摘要:使用 LLM 对冗长的对话历史或工具调用返回的密集信息进行总结,生成一个简短的摘要。

  • 上下文修剪:通过过滤或修剪上下文,移除旧的或不重要的信息,例如只保留最近 N 轮的对话历史。

4、隔离:拆分与保护上下文

该策略指将上下文进行拆分,以帮助智能体更好地执行任务。

  • 多智能体系统:将复杂任务拆分给多个子智能体,每个智能体拥有独立的、更小的上下文窗口,专注于自己的子任务。

  • 状态对象:通过定义结构化的模式(如 Pydantic 模型),在每个回合中只将指定的关键字段暴露给 LLM,而其他信息则保持隔离,避免干扰。

构建智能体的多级记忆系统

上述运行时策略的有效执行,依赖于一个设计精良的多级记忆系统。这个系统通常分为短期记忆和长期记忆两个层面,共同构成了智能体的认知基础。

1、短期记忆:管理当前对话

短期记忆管理着当前任务会话的完整上下文,它不仅包括对话历史,还应涵盖最近的工具调用结果、当前的执行计划和中间结论等。

管理策略

  • 滑动窗口:维护一个固定大小的窗口,只保留最近 N 轮的对话。- 关键信息保留:识别并优先保留对话中的关键信息,如用户的明确指令、重要的实体等。- 定期清理:定期清理无关或冗余的对话内容。

2、长期记忆:沉淀持久化知识

长期记忆存储跨越多个对话的持久化知识库,如用户偏好、过去项目的摘要、需要长期记住的事实等,是实现个性化和长期连贯性的关键。

构建策略

  • 定期提取:定期从短期记忆中提取关键信息,并合成为长期记忆。- 高效检索:使用向量嵌入和向量数据库实现高效的语义检索。- 版本管理:实现记忆的版本控制和更新机制,确保记忆的准确性。

3、记忆转换时机

确定何时将短期记忆转化为长期记忆,是一个关键的决策点。常见的时机包括:

  • 对话自然结束时:提取关键信息保存为长期记忆。- 识别到重要特征时:当系统识别到重要的用户偏好或个人信息时,主动进行保存。- 定期摘要:定期(如每 5 轮对话)对短期记忆进行总结并存入长期记忆。

对于 Agent 而言,上下文管理与记忆系统并非两个独立的组件,而是其认知核心的一体两面。运行时上下文管理是战术层面的操作,它决定了智能体在此时此刻如何最高效地利用其工作记忆;而多级记忆系统则是战略层面的支撑,它为智能体提供了历史感和个性化的基础。

通过将这两者有机结合,上下文工程使得智能体能够摆脱无状态的束缚,成为真正能够处理复杂任务、提供个性化服务的智能伙伴。这是 AI 应用从能用走向可靠和好用的关键一步。

总结

本章系统梳理了上下文工程与提示词工程的核心区别,深入剖析了 RAG 技术、索引与检索优化、Agentic RAG、多模态 RAG、知识图谱融合以及上下文管理与记忆系统等关键内容。理解并合理运用这些技术,将为构建高效、智能、可扩展的 AI 原生应用奠定坚实基础。

文章导航

独立页面

这是书籍中的独立页面。

书籍首页

评论区