Weaviate 官方发布:上下文工程 ——LLM 实用化的核心架构设计
大型语言模型开发的瓶颈与突破之道 摘要:大型语言模型(LLM)在实际应用中面临三大核心瓶颈:无法访问私有数据、缺乏实时信息、产生幻觉回答。这些限制源于模型的孤立性本质和有限的上下文窗口。为突破这些瓶颈,需要构建"上下文工程"系统,包含六大核心组件:智能体(决策核心)、查询增强(意图理解)、检索(知识连接)、提示词技术(指令优化)、记忆(历史学习)和工具(实时交互)。其中智能体作
每个使用大型语言模型(LLM)进行开发的开发者最终都会遇到同样的瓶颈。一开始,你会惊叹于模型强大的写作、总结和推理能力,但当尝试将其应用于现实问题时,漏洞便开始显现:它无法回答关于你的私人文档的问题,不了解昨天发生的事件,在不知道答案时还会自信地编造内容。
问题不在于模型的智能程度,而在于它本质上是孤立的。它就像一个强大却与世隔绝的大脑,无法访问你的特定数据、实时互联网,甚至不记得上一次对话的内容。这种孤立状态源于其核心架构限制:上下文窗口。上下文窗口是模型的活跃工作记忆——一个有限的空间,用于容纳当前任务的指令和信息。每个单词、数字和标点符号都会占用这个窗口的空间。就像一块白板,一旦写满,旧信息就会被擦除以容纳新指令,重要细节也可能因此丢失。
仅通过撰写更好的提示词无法解决这一根本性限制,你必须在模型周围构建一个系统。这就是上下文工程。
上下文工程是一门设计架构的学科,旨在适时为大型语言模型提供合适的信息。它不涉及改变模型本身,而是构建桥梁,将模型与外部世界连接起来,检索外部数据,对接实时工具,并赋予模型记忆能力,使其回答基于事实而非仅依赖训练数据。
核心组件
•智能体:统筹信息使用方式和时机的决策核心。•查询增强:将模糊、不规范的用户请求转化为精确、机器可理解的意图的技术。•检索:连接大型语言模型与你的特定文档和知识库的桥梁。•提示词技术:提供清晰、有效的指令以引导模型推理的技能。•记忆:赋予应用程序历史感和从交互中学习的能力的系统。•工具:让应用程序能够直接采取行动并与实时数据源交互的“双手”。
智能体

最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个,现在还在不断的发掘中,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?
与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,整体AI领域2025年预计缺口1000万人,其中算法、工程应用类人才需求最为紧迫!
学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】
【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!
当你开始使用大型语言模型构建实际系统时,就会遇到静态流水线的局限性。“检索-生成”的固定流程在简单的检索增强生成(RAG)场景中效果良好,但当任务需要判断、适应或多步骤推理时便会失效。
这就是智能体的用武之地。在上下文工程中,智能体负责管理信息在系统中的流动方式和效率。与机械遵循脚本不同,智能体能够评估已知信息、判断所需补充信息、选择合适工具,并在出现问题时调整策略。
智能体既是其上下文的构建者,也是上下文的使用者。然而,它们需要完善的实践和系统进行指导,因为良好的上下文管理极具挑战性——事实上,糟糕的上下文管理会拖累智能体的所有其他功能。
什么是智能体?
“智能体”一词的使用范围广泛,因此我们在大型语言模型开发场景中对其进行定义:人工智能智能体是一个能够实现以下功能的系统:
•对信息流动做出动态决策:不遵循预设路径,而是根据已获取的信息决定下一步行动。•跨多次交互维持状态:与简单的问答系统不同,智能体能够记忆已执行的操作,并利用这些历史信息指导未来决策。•根据结果调整方法:当某种策略无效时,能够尝试其他方案。•自适应使用工具:能够从可用工具中进行选择,并以非预先编程的方式组合使用。
单智能体架构
由单个智能体处理所有任务,适用于中等复杂度的工作流程。
多智能体架构
将工作分配给多个专门处理特定任务的智能体,适用于复杂工作流程,但会带来协调挑战。
上下文清洁度管理
这是智能体系统管理中最关键的环节之一。智能体不仅需要记忆和工具,还需要监控和管理自身上下文的质量。这意味着要避免信息过载、检测无关或冲突信息、根据需要精简或压缩信息,并保持上下文记忆的清晰度,以确保有效推理。
上下文窗口挑战
由于上下文窗口的信息容量有限,大型语言模型的信息处理能力受到约束。这一根本性限制决定了当前智能体及智能体系统的能力边界。
智能体在处理信息时,需要就以下问题做出决策:
•哪些信息应保留在活跃的上下文窗口中•哪些信息可以通过总结或压缩节省空间•哪些信息应存储在外部,需要时再检索•为推理和规划预留多少空间
人们容易认为更大的上下文窗口能解决这个问题,但事实并非如此。更长的上下文(数十万个甚至约100万个token)实际上会带来新的失效模式。
往往在模型达到最大token容量之前,性能就会开始显著下降:智能体可能变得混乱、幻觉率升高,或者无法维持正常水平的表现。这不仅是技术限制,更是任何人工智能应用程序在设计时都必须面对的核心挑战。
随着上下文窗口增大,以下常见错误会开始出现或增多:
•上下文污染:错误或虚构的信息进入上下文。由于智能体会重复使用并基于这些上下文进行扩展,错误会持续存在并不断累积。•上下文干扰:智能体被过多的历史信息(历史记录、工具输出、总结)拖累,过度依赖重复过去的行为而非重新推理。•上下文混淆:无关的工具或文档充斥上下文,干扰模型并导致其使用错误的工具或指令。•上下文冲突:上下文中的矛盾信息误导智能体,使其陷入相互冲突的假设中无法决策。
智能体的策略与任务
智能体之所以能有效协调上下文系统,是因为它们具备动态推理和决策能力。以下是智能体为管理上下文而设计的常见任务和采用的策略:
•上下文总结:定期将累积的历史信息压缩为摘要,在保留关键知识的同时减轻负担。•自适应检索策略:当初次尝试失败时,重新构建查询、切换知识库或更改分块策略。•质量验证:检查检索到的信息是否一致且有用。•上下文精简:通过专门的精简模型或专用大型语言模型工具,主动移除无关或过时的上下文。•上下文卸载:将细节存储在外部,仅在需要时检索,而非将所有信息保存在活跃上下文中。•动态工具选择:不将所有可能的工具都写入提示词,而是由智能体根据任务筛选并加载相关工具,减少混淆并提高准确性。•多源合成:整合来自多个来源的信息,解决冲突,生成连贯的答案。
智能体在上下文工程中的定位

智能体在上下文工程系统中扮演协调者的角色。它们不会替代其他章节介绍的技术,而是智能地统筹这些技术。例如,当初次搜索失败时,智能体可能会应用查询重写;根据遇到的内容类型选择不同的分块策略;或者决定何时压缩对话历史以容纳新信息。它们提供了必要的编排层,能够针对信息管理做出动态、符合上下文的决策。
上下文工程系统中不同类型的智能体及其功能:
•监督智能体:负责规划、优化查询、确保效率。•专业智能体:包括查询重写器、检索器、答案合成器、工具路由器等。•记忆组件:分为短期记忆(工作记忆)和长期记忆(外部知识库)。•工具与接口:各类工具及应用程序接口。
查询增强
上下文工程中最重要的步骤之一是如何处理和呈现用户的查询。如果无法准确理解用户的问题,大型语言模型就无法提供精准的回答。
这听起来简单,实则复杂。需要关注两个核心问题:
1.用户与聊天机器人或输入框的交互方式往往并不理想。 许多产品开发者在开发和测试聊天机器人时,使用的查询通常简洁、标点规范、表达清晰,包含了大型语言模型理解问题所需的所有信息。但在现实场景中,用户与聊天机器人的交互可能模糊、混乱且不完整。因此,要构建稳健的系统,必须实现能够处理各类交互(而非仅理想交互)的解决方案。2.流水线的不同环节需要以不同方式处理查询。 一个大型语言模型能很好理解的问题,可能并不适合作为向量数据库的搜索查询;反之,一个适合向量数据库的查询词,可能不足以让大型语言模型生成完整答案。因此,我们需要一种能够针对流水线中不同工具和步骤优化查询的方法。
请记住,查询增强从流水线的最开始就解决了“输入垃圾,输出垃圾”的问题。无论检索算法多么复杂、重排序模型多么先进、提示词工程多么巧妙,都无法完全弥补对用户意图的误解。
查询重写
查询重写将原始用户查询转化为更适合信息检索的版本。如今,应用程序不再采用“检索-读取”的模式,而是转向“重写-检索-读取”的方式。这项技术通过重构表达不规范的问题,使其更易被系统理解;移除无关上下文;引入常用关键词以提高与正确上下文的匹配度;还可以将复杂问题拆分为简单的子问题。
检索增强生成(RAG)应用对查询的措辞和特定关键词非常敏感,因此该技术通过以下方式发挥作用:
•重构模糊问题:将模糊或表达不当的用户输入转化为精确、信息密集的表述。•上下文移除:删除可能干扰检索过程的无关信息。•关键词增强:引入常用术语,提高匹配相关文档的概率。
查询扩展
查询扩展通过从单个用户输入生成多个相关查询来增强检索效果。当用户查询模糊、表达不规范,或需要更广泛的覆盖范围(如基于关键词的检索系统)时,这种方法能提升结果质量。
然而,查询扩展也面临一些需要谨慎处理的挑战:
•查询偏移:扩展后的查询可能偏离用户原始意图,导致无关结果。•过度扩展:添加过多术语可能降低精度,检索到大量无关文档。•计算开销:处理多个查询会增加系统延迟和资源消耗。
查询分解
查询分解将复杂、多维度的问题拆分为简单、聚焦的子查询,这些子查询可独立处理。这项技术特别适用于需要从多个来源获取信息或涉及多个相关概念的问题。
该过程通常包括两个主要阶段:
•分解阶段:大型语言模型分析原始复杂查询,并将其拆分为更小的聚焦子查询,每个子查询针对原始问题的一个特定方面。•处理阶段:每个子查询通过检索流水线独立处理,实现与相关文档的更精准匹配。
检索完成后,上下文工程系统必须汇总并合成所有子查询的结果,为原始复杂问题生成连贯、全面的答案。
查询智能体

查询智能体是查询增强的最高级形式,它利用人工智能智能体智能处理整个查询处理流水线,整合了上述所有技术。
查询智能体接收用户的自然语言提示词/问题,基于对数据库和数据结构的了解,决定查询的最佳构建方式,并能根据返回结果迭代地决定重新查询和调整策略。
核心步骤
1.分析:使用生成模型(如大型语言模型)分析任务和所需查询,确定要执行的精确查询。•动态查询构建:不依赖预设查询模式,而是基于对用户意图和数据模式的理解,按需构建查询。这意味着它可以自动添加筛选条件、调整搜索词,以在数据库中找到最相关的结果,还可以根据需求选择执行搜索、聚合,或同时执行两者。2.查询执行:构建并向智能体选择的一个或多个数据集发送查询。•多数据集路由:智能体了解所有数据集的结构,因此能根据用户问题智能决定查询哪些数据集。•评估:智能体可以在原始用户查询的上下文中评估检索到的信息。如果存在信息缺失,智能体可以尝试其他知识源或新的查询。3.(可选)响应生成:接收数据库返回的结果,并使用生成模型为用户的提示词/查询生成最终响应。•上下文感知:上下文可能还包括之前的对话历史和其他相关信息。智能体能够维持对话上下文以处理后续问题。
检索

大型语言模型的性能取决于其可访问的信息。虽然大型语言模型经过了海量数据集的训练,但它们无法获取你的特定私人文档以及训练完成后出现的任何信息。要构建真正智能的应用程序,必须适时为它们提供合适的外部信息。这一过程称为检索。检索前和检索步骤是许多依赖上下文工程的人工智能架构(如检索增强生成(RAG))的核心组成部分。
核心挑战
从概念上讲,挑战很简单,但在实践中却很棘手:原始文档数据集通常过大,无法放入大型语言模型有限的上下文窗口(提供给人工智能模型的输入)中。我们不能直接将整套用户手册或研究论文交给模型。相反,我们必须从这些文档中找到最关键的部分——即包含用户查询答案的单个段落或章节。
为了使庞大的知识库可搜索并找到这一关键部分,我们必须首先将文档拆分为更小、更易处理的片段。这一基础性过程称为分块,是实现成功检索的关键。
分块策略矩阵


精确但不完整:过小的分块(如单个句子)易于查找,但缺乏足够的上下文,导致大型语言模型无法生成优质响应。•失效区域:结构混乱、随机的分块,既难以查找又毫无用处,是最糟糕的情况。•最佳区域(最优分块):语义完整的段落,既聚焦且易于查找,又内容丰富且易于理解。•丰富但难以检索:过大的分块包含答案,但嵌入向量“噪声”大,导致检索系统无法准确找到。
设计分块策略时,必须平衡两个相互冲突的优先级:
•检索精度:分块需要小巧且聚焦于单一主题。这能生成独特、精确的嵌入向量,使向量搜索系统更容易找到与用户查询完全匹配的结果。混合多个主题的大分块会生成“平均化”的噪声嵌入向量,难以被精确检索。•上下文丰富度:分块必须足够大且独立,以便能够被理解。分块被检索后会传递给大型语言模型,若分块只是脱离上下文的孤立句子,即使是功能强大的模型也难以生成有意义的响应。
目标是找到分块的最佳平衡点:分块既要足够小以实现精确检索,又要足够完整以向大型语言模型提供所需的全部上下文。
策略的选择取决于文档的性质和应用程序的需求。
简单分块技术
•固定大小分块:最简单的方法,将文本拆分为预定大小的分块(如512个token)。速度快、易于实现,但可能会生硬地拆分句子。在分块之间设置重叠部分(如50个token)有助于缓解这一问题。•递归分块:更智能的方法,使用优先级分隔符列表(如先段落、再句子、最后单词)拆分文本。它尊重文档的自然结构,是处理非结构化文本的可靠默认选择。•基于文档结构分块:利用文档的固有结构进行分块。例如,按Markdown文件的标题(#、##)、HTML文件的标签(、)或源代码的函数进行拆分。
高级分块技术
•语义分块:不依赖分隔符,而是根据含义拆分文本。将语义相关的句子分组,仅当主题切换时才创建新分块,生成高度连贯、独立的分块。•基于大型语言模型的分块:利用大型语言模型智能处理文档,生成语义连贯的分块。不依赖固定规则,大型语言模型能够识别逻辑命题或总结章节,创建保留含义的片段。•智能体分块:在基于大型语言模型分块的基础上更进一步。人工智能智能体动态分析文档的结构和内容,为特定文档选择最佳分块策略(或策略组合)。•层次化分块:创建多个细节层级的分块(如顶层摘要、中层章节和底层段落)。这使检索系统能够从全局概述开始,再根据需要深入到具体细节。•延迟分块:一种颠覆标准流程的架构模式。先对整个文档进行嵌入,生成包含完整上下文的token级嵌入向量,然后再将文档拆分为分块,每个分块的嵌入向量都源自这些预先计算的、富含上下文的token。
预分块与后分块
除了分块方式,系统设计的一个关键选择是分块时机,这决定了两种主要的架构模式:
预分块

最常见的方法,所有数据处理都在用户查询到来之前预先离线完成。
•工作流程:数据清洗→文档分块→嵌入并存储分块•优点:查询时检索速度极快,因为所有工作已提前完成,系统只需执行快速的相似度搜索。•缺点:分块策略固定。若决定更改分块大小或方法,必须重新处理整个数据集。
后分块

一种先进的实时迭代方式,分块在文档被检索后、响应用户查询时动态进行。
•工作流程:存储文档→检索相关文档→动态分块•优点:灵活性极高。可根据用户查询的上下文制定动态分块策略,可能获得更相关的结果。•缺点:增加延迟。分块过程实时进行,导致用户首次响应变慢,且需要更复杂的基础设施进行管理。
分块策略选择指南

总结
检索增强系统的有效性并非取决于单一的“神奇”方法,而是一系列深思熟虑的工程选择。提供给大型语言模型的上下文质量直接取决于两个关键决策:
1.分块策略(如何做):拆分文档的方法。2.架构模式(何时做):执行分块的时机。
掌握这两个要素是上下文工程的基础。设计精良的检索系统,是让大型语言模型从“猜测”走向提供基于事实、可靠且上下文相关答案的关键。
最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个,现在还在不断的发掘中,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?
与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,整体AI领域2025年预计缺口1000万人,其中算法、工程应用类人才需求最为紧迫!
学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】
【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!
更多推荐



所有评论(0)