上下文工程(Context Engineering) 是在人工智能(AI)领域,特别是大型语言模型(LLM)应用中逐渐兴起并日益受到重视的概念。可以理解为一种系统性的工程方法。在于构建动态的系统,以便向AI模型,尤其是LLM,提供精准、相关且及时的信息和工具,使模型能更合理、更有效地完成特定任务 。与传统的提示工程(Prompt Engineering)主要关注单次交互中的指令和示例不同,上下文工程更侧重于设计和实现能捕获、存储、检索和管理上下文信息的完整系统。意味着上下文工程不仅关注“说什么”,更关注“在什么情况下说”,以及如何构建和利用这个“情况”来提升AI的整体表现。涉及到对AI模型运作环境的全面考量,包括模型可以访问的知识范围、这些知识的组织结构,以及在交互过程中如何有效地传递这些知识 。上下文工程可以被视为一种更宏观、更系统化的AI优化策略,通过精细化的上下文管理来释放AI模型的全部潜力。

什么是上下文工程

上下文工程是指构建一个动态系统,以正确的格式提供正确的信息和工具,使大语言模型(LLM)能合理地完成任务。是一种系统性的方法,确保LLM获得执行任务所需的一切必要条件。

多个维度理解

从操作层面来看

涉及到一系列技术和方法,用于在AI模型执行任务之前,有目的地为其构建和提供相关的上下文信息。这些信息可以来自于多种来源,例如开发者的预设指令、用户的实时输入、历史交互记录、外部工具的调用结果、外部知识库、实时环境信息等 。

从系统设计的角度来看

上下文工程强调构建能自动化处理上下文信息的系统,包括上下文的获取、表示、存储、检索、更新和评估等环节。要求开发者不仅要考虑如何获取有效的上下文,还要思考如何高效地管理和利用这些上下文。例如,LangGraph框架的设计目标就是提供最大程度的可控性,允许开发者精确控制每个步骤的执行、输入LLM的内容以及输出的存储方式,实现对上下文工程的精细化管理 。

从目标导向来看

上下文工程的最终目的是提升AI模型在复杂任务中的性能,能更好地理解用户意图、生成更准确的回复、做出更合理的决策,提供更加智能和个性化的服务。正如一些研究者所指出的,上下文是区分一个平庸的AI助手和一个超级助手的核心因素,上下文工程正是实现这一转变的关键。

上下文工程 vs. 提示工程(Prompt Engineering)

上下文工程(Context Engineering)与提示工程(Prompt Engineering)是大型语言模型(LLM)应用开发中两个紧密相关但又有所区别的核心概念。两者都致力于提升LLM的输出质量和任务完成能力,但其关注的层面、方法论和应用范围存在显著差异。理解它们之间的关系,对于有效地设计和优化AI应用至关重要。

提示工程(Prompt Engineering) 主要聚焦于如何设计和优化输入给LLM的“提示”(Prompt),即用户直接提供的指令或问题,以及可能包含的少量示例、任务描述、输出格式要求等。核心目标是找到一个最佳的文本表达方式,以引导LLM理解用户意图,生成符合期望的输出。提示工程更像是一种“与模型沟通的艺术和科学”,探索如何通过精心选择的词语、句式、结构、特殊符号来“激发”模型的特定能力。例如,在文本摘要任务中,提示工程可能会尝试不同的指令,如“请为以下文章生成一个简短的摘要:”、“总结这篇文章的核心观点:”或“TL;DR:”(Too Long; Didn’t Read的缩写),评估哪种提示能获得更好的摘要效果。提示工程关注的是单次交互或单个任务的优化,方法论更侧重于实验、迭代和技巧的积累。

上下文工程(Context Engineering) 是在一个更宏观、更系统的层面上运作。不仅关注用户直接输入的提示,更关注为LLM构建和管理的整个“信息环境”,即上下文。这个上下文可以包括但不限于:对话历史、用户画像、领域知识库、实时数据、API调用结果、以及其他任何能帮助模型更好地理解当前任务和生成更优输出的相关信息。上下文工程的核心目标是系统地设计、获取、组织、存储、检索、更新和评估这些上下文信息,确保LLM能持续获得高质量、高相关性的输入。更像是一种“为模型构建智能信息生态系统的工程学科”。例如,在一个智能客服系统中,上下文工程要考虑用户当前的问题(提示),还要考虑用户的历史咨询记录、购买记录、当前会话状态、以及相关的产品知识库和FAQ文档等,将这些信息有效地整合和传递给LLM。

提示工程和上下文工程并非相互独立,而是相辅相成的。高质量的提示仍然是上下文工程中不可或缺的一环,是用户意图的直接表达。上下文工程为提示的有效执行提供了坚实的基础和丰富的背景信息。在许多先进的AI应用中,两者往往结合使用:通过上下文工程获取和组织丰富的背景信息,再通过精心设计的提示将这些信息有效地传递给LLM,并引导其完成复杂任务。

上下文工程的核心特性

系统性和完整性

要求超越零散的、临时性的上下文提供方式,转而构建一个能全面覆盖上下文生命周期(包括捕获、存储、检索、更新、评估和优化)的完整系统 。与传统的提示工程主要关注单次交互中的即时指令形成对比。

动态性和适应性

上下文工程强调上下文信息应该是动态变化的,能根据任务进展、用户反馈和环境变化进行实时调整和更新 。例如,在长时间的对话中,系统需要能总结之前的对话内容,将其作为后续交互的上下文 。

相关性和精准性

并非所有的上下文信息都是有用的,上下文工程识别和提供那些对当前任务最具影响力的信息,避免信息过载或引入噪声。需要对任务需求和模型特性有深入的理解。

主动构建和优化

上下文工程不是被动地等待上下文出现,而是主动地设计和构建能生成和传递高质量上下文的机制和流程,通过持续的反馈和迭代来优化上下文的质量和有效性。这种主动性和优化意识是工程化方法的重要体现。

上下文工程的重要体现

有助于消除歧义

自然语言本身具有高度的歧义性,同一个词或句子在不同的上下文中可能有完全不同的含义。通过提供足够的上下文信息,AI模型可以更准确地把握语义,做出正确的判断。

增强模型的推理能力

许多复杂的任务需要模型基于已有的信息进行多步推理,丰富的上下文可以为这种推理提供必要的前提和约束。例如,在规划一个会议日程时,模型需要考虑到参与者的可用时间、会议地点、议程主题等多个上下文因素。

实现个性化和智能化服务的基础

通过学习和利用用户的个性化上下文(如历史行为、偏好、习惯等),AI模型可以提供更加贴合用户需求的定制化服务。例如,一个新闻推荐系统如果了解用户对不同主题的兴趣程度,就能推送更相关的新闻。正如一些研究者指出的,上下文是区分一个“愚蠢的助手”和一个“超级队友”的关键因素 。一个能有效利用上下文的AI系统,表现会更加智能、自然和高效,极大地提升用户体验和任务完成效率。

上下文工程的工作原理

动态上下文构建

上下文工程强调动态性,即根据任务需求实时从多个来源获取上下文信息,包括用户输入、历史交互、外部数据等。这种动态构建过程需要系统能够实时感知和响应环境变化,确保模型接收到的信息是最新的、相关的。

来源:
0个人收藏 收藏

评论交流