AI原生架构(五):上下文工程实战——提示词、RAG与记忆系统
约 28 分钟8182 字1 次阅读

AI原生架构(五):上下文工程实战——提示词、RAG与记忆系统
在前四篇文章中,我们依次探讨了AI原生应用的时代背景与架构跃迁、成熟度模型、11个关键要素全景,以及模型选择与Agent设计模式。现在,我们将进入AI原生应用开发中最核心、也最考验工程能力的领域之一——上下文工程(Context Engineering)。
如果说模型决定了应用能力的"上限",那么上下文工程决定了应用在具体场景中的"实际表现"。一个再强大的模型,如果无法获得准确、完整、相关的上下文信息,其输出也会大打折扣。
白皮书将上下文工程定义为"提升输出效果的重要手段",它涵盖了提示词工程、RAG(检索增强生成)和记忆系统三大核心技术。本文将系统性地拆解这三项技术的原理、实践与优化方向,帮助读者构建高质量的上下文工程体系。
一、为什么上下文工程如此重要?
在深入具体技术之前,我们需要先理解一个根本性问题:为什么AI原生应用如此依赖上下文工程?
答案在于大模型本身的固有局限。白皮书明确指出:"虽然模型的能力非常强大,但是他们的能力主要源于庞大的预训练数据,这也意味着无论模型多强大,它的知识都是固化的。" 这意味着:
- 知识截止:模型不知道训练数据截止日期之后发生的事情,无法回答关于最新产品、实时新闻或当前天气的问题。
- 缺乏私有知识:模型不了解企业的内部文档、数据库、API接口等专有信息。
- 无状态性:每次交互都是独立的,模型无法记住之前的对话内容,除非将历史信息作为上下文传入。
- 输出不确定性:模型可能产生幻觉,即生成看似合理但实际错误的内容。
上下文工程的核心使命,就是通过精心设计的输入内容,弥补这些固有局限,引导模型生成更准确、更相关、更可靠的输出。它不是一个可有可无的"锦上添花",而是AI原生应用能否从Demo走向生产的决定性因素。
二、提示词工程:与模型高效沟通的基础
2.1 提示词的本质与重要性
提示词(Prompt) 是用户向AI模型提供的输入指令,用于引导模型生成期望的输出。白皮书指出:"Prompt的质量直接决定了AI生成内容的质量、相关性和准确性。" 在AI原生应用中,提示词取代了传统编程语言中的代码,成为开发者与模型之间最主要的沟通媒介。
一个经典的比喻是:提示词就像是给一位聪明但缺乏背景知识的助理分配任务。指令越清晰、背景信息越充分,他完成工作的质量就越高。模糊的指令只会得到泛泛而谈的回答,而结构化、包含角色设定、目标约束和格式示例的指令,能显著提升输出的精准度和实用价值。
2.2 提示词优化的核心原则
白皮书虽然没有在第2章中详细展开提示词优化的全部技巧(这部分留给了第4章),但给出了几个关键原则:
- 清晰具体:避免模糊表述,明确期望的动作与结果。不要说"写点关于人工智能的东西",而要说"以科技专栏作家的身份,撰写一篇800字左右的文章,探讨人工智能在医疗影像诊断中的最新应用、优势与挑战,并列举实例"。
- 提供上下文:包括角色设定(Persona)、背景信息、工具使用说明等。让模型知道"你是谁""你要做什么""你有什么资源可用"。
- 结构化格式:使用Markdown标题、列表、示例(Few-Shot)提高可读性。复杂的指令应该被组织成清晰的层次结构。
- 引导工具使用:不要仅仅罗列工具有哪些,更要解释在何种情况下应该调用哪个工具,以及为什么。
- 期望输出格式:明确指定输出的格式要求,如"以JSON格式回应""提供一个项目符号列表"或"用表格呈现对比结果"。
2.3 提示词优化的进阶技巧
结合白皮书第4章的内容,我们可以进一步提炼出以下进阶技巧:
(1)角色设定(Persona):为模型赋予一个明确的角色身份,可以显著改变输出的风格和质量。例如,"你是一名资深Java架构师""你是一位耐心的小学数学老师""你是一个严谨的法律顾问"。角色设定帮助模型调用特定领域的知识和表达方式。
(2)Few-Shot示例:在提示词中提供输入输出的示例,让模型理解期望的响应模式。对于复杂的任务或特定的输出格式,一两个精心设计的示例往往比长篇大论的描述更有效。
(3)思维链(Chain of Thought):引导模型展示推理过程,而不是直接给出答案。这在数学计算、逻辑推理等场景中特别有效。例如,在提示词中加入"请一步步推理"或"请展示你的思考过程"。
(4)约束条件:明确告诉模型什么可以做、什么不可以做。例如,"只回答关于公司产品的问题""如果不知道答案,请说'我不知道',不要编造""不要提及竞争对手的名称"。
(5)迭代优化:提示词不是一次性写好的,而是需要根据模型的输出不断调整和优化。白皮书强调,优化Prompt是AI原生应用开发中的核心技能,需要持续实践和积累。
2.4 提示词管理的工程化

在简单的应用场景中,提示词可能只是一个字符串。但在企业级AI原生应用中,提示词需要被系统化管理:
- 提示词模板:将可复用的提示词结构抽象为模板,支持参数化填充(如用户名称、上下文信息等)。
- 版本管理:对提示词的修改进行版本控制,支持回滚和A/B测试。
- 动态提示词:根据用户输入、上下文状态、业务规则等动态生成或调整提示词内容。
- 提示词评估:建立提示词质量的评估机制,通过自动化测试验证不同提示词版本的效果差异。
白皮书在第3章中提到的Nacos,除了作为A2A注册中心外,还可以作为Prompt的动态管理中心,帮助用户管理Agent应用开发过程中的动态配置。
三、RAG:为模型注入外部知识
3.1 RAG的基本原理与架构
RAG(Retrieval Augmented Generation,检索增强生成) 是当前AI原生应用中最广泛采用的架构范式之一。白皮书指出:"RAG技术能够弥补大模型因知识截止而无法获取最新信息的问题,并有效降低其产生幻觉的风险,而且RAG技术相比于大模型后训练或微调方式,以更加成本低的方式与企业的专有数据作对接。"
一个典型的RAG系统分为两个阶段:
离线索引构建阶段:
- 文档解析:将企业文档(PDF、Word、网页、Markdown等)进行解析,提取文本内容。
- 文档切片:将长文档切分为适当大小的片段(Chunk),通常为256-1024个Token。
- 向量化:使用Embedding模型将每个切片转换为向量表示。
- 存入向量数据库:将向量及其对应的原始文本存入向量数据库(如Milvus、Faiss、Elasticsearch等)。
在线检索生成阶段:
- 查询向量化:将用户的输入问题同样使用Embedding模型转换为向量。
- 向量检索:在向量数据库中检索与查询向量最相似的Top-K个切片。
- 结果融合:将检索到的切片作为上下文,与用户问题一起组装成完整的Prompt。
- LLM生成:将组装后的Prompt提交给大模型,生成最终答案。
3.2 RAG系统的演进:从Naive到Advanced到Agentic
白皮书将RAG的演进划分为三个阶段:
Naive RAG(基础RAG):最简单的"向量检索+LLM"模式。用户问题经过向量化后,从知识库中检索最相似的切片,然后与问题一起交给LLM生成答案。这种模式实现简单,但在复杂业务场景下会遭遇准确率和召回率的挑战,以及信息冗余噪声导致的模型幻觉问题。
Advanced RAG(高级RAG):在检索前、检索中、检索后三个环节引入优化技术:
- 检索前优化:
- Query改写:将用户的原始问题进行改写,使其更适合向量检索。例如,将"它多少钱"改写为"产品的价格是多少"。
- 知识库路由:当有多个知识库时,根据问题内容自动路由到最相关的知识库。
- HyDE(假设文档嵌入):先生成一个假设性的理想答案,再用这个答案去检索,提高召回率。
- 检索中优化:
- 混合检索:结合向量检索(语义相似)和关键词检索(精确匹配),提高召回效果。常用的策略是向量检索+BM25稀疏检索的融合。
- 多路召回:从多个维度(如向量、关键词、结构化标签)同时检索,合并结果。
- 检索后优化:
- 重排序(ReRank):使用专门的ReRank模型对检索结果进行重新排序,将最相关的切片排在前面。
- 拒识模块:当检索结果的相关性低于阈值时,拒绝回答或提示用户补充信息。

Agentic RAG(智能体RAG):这是RAG的最新演进方向。白皮书指出:"用户将知识库检索作为大模型的工具之一,由大模型来决定是否以及何时进行检索以获取必要的知识库信息。" 在Agentic RAG中,知识库不再是每次请求都自动检索的固定组件,而是模型可以按需调用的一个工具。模型会根据当前任务的需要,自主判断是否需要检索、检索什么内容,以及如何使用检索结果。这种模式更加灵活,能够适应更复杂的业务场景。
3.3 RAG系统优化实践:索引构建
白皮书第4.4节专门讨论了RAG系统在索引构建阶段的优化实践。以下是关键要点:
文档解析优化:
- 对于PDF等复杂格式的文档,传统的OCR和电子解析技术可能无法准确提取内容。白皮书提到:"文档解析技术除了经典的OCR和电子解析技术,也在利用大模型进行更准确的文档解析,比如对于图片类的文档,通过VLM视觉理解大模型,能够对这类文档进行更全面的文档理解。"
- 对于表格、图表等结构化内容,需要专门的解析策略,确保信息不丢失。
切片策略优化:
- 切片大小需要权衡:切片太小可能导致上下文不完整,切片太大则可能引入噪声且超出模型上下文窗口。
- 常见的切片策略包括:固定大小切片(按Token数切分)、语义切片(按段落或句子边界切分)、递归切片(先按大块切分,再对长块递归切分)。
- 重叠切片:相邻切片之间保留一定的重叠区域,避免关键信息被切分到两个切片中导致丢失。
向量化优化:
- 选择适合业务场景的Embedding模型。白皮书提到,阿里云通义团队发布了"业内广受好评的Qwen3 Embedding文本和视觉系列模型",支持多模态向量化。
- 对于多语言场景,需要选择支持多语言的Embedding模型。
- 向量维度的选择需要在精度和性能之间权衡。
3.4 RAG系统优化实践:检索流程
白皮书第4.5节讨论了检索流程的优化。以下是关键要点:
混合检索策略:
- 向量检索擅长语义匹配,但可能忽略精确的关键词匹配。
- 稀疏检索(如BM25)擅长精确匹配,但无法理解语义。
- 混合检索将两者结合,通常采用加权融合或级联融合的方式,显著提升召回效果。
重排序(ReRank):
- 初检阶段使用高效的向量检索快速召回Top-K(如K=100)个候选切片。
- 再使用更精确但计算成本更高的ReRank模型对候选切片进行重新排序,选出Top-N(如N=5)个最相关的切片送入LLM。
- ReRank模型通常是一个交叉编码器(Cross-Encoder),能够同时考虑查询和文档的交互信息,排序精度远高于向量检索。
Query改写与扩展:
- 用户的原始查询可能不够精确或完整,需要进行改写。
- 改写策略包括:同义词替换、查询分解(将复杂查询拆分为多个子查询)、查询扩展(添加相关术语)。
- 在对话场景中,还需要结合历史上下文对当前查询进行补全(如将"它多少钱"补全为"刚才提到的那个产品的价格是多少")。
多模态RAG:
- 白皮书指出:"多模态RAG技术也是当前蓬勃发展的领域。" 传统的RAG只处理文本,而多模态RAG可以同时处理文本、图像、音频、视频等多种模态的数据。
- 例如,在电商场景中,用户可以通过上传图片来检索商品;在视频创作场景中,可以从海量视频中检索特定片段。
- 多模态RAG依赖于多模态Embedding模型,能够将不同模态的数据映射到统一的向量空间。
3.5 RAG的未来方向
白皮书对RAG的未来发展给出了几个重要判断:
- RAG是上下文工程的核心技术实现:白皮书指出,"知识库向量检索也是当前上下文工程(Context Engineering)的核心技术实现。" 即使未来LLM架构发生变化,只要仍然依赖外部知识增强能力,向量检索作为高效、语义化的上下文获取机制,仍将发挥重要价值。
- 动态样例(Few Shot)干预:通过在知识库里维护正例、反例,可以实时通过用户Query召回相关的样例,补充到上下文,从而降低大模型幻觉。这是一种将RAG与提示词工程相结合的高级用法。
- 大模型工具检索:当一个AI Agent需要接入数量很多的工具时,对于大模型选择工具和工具入参提取的准确率会造成比较大的挑战。通过构建工具的知识库和动态召回少数工具的方式,可以提升大模型工具调用的准确性和降低时延。这实际上是RAG在工具选择场景中的应用。
- 超越简单问答:白皮书指出,"RAG的价值正在从解决幻觉这一技术问题,向赋能业务的更高层面演进。" 基于RAG的系统,叠加大模型分析客户对话数据等能力,能够帮助企业优化服务策略和挖掘销售线索等。
四、记忆系统:让AI拥有长期记忆
4.1 记忆的核心作用
大模型本质上是无状态的,每次交互都是独立的。白皮书指出:"大模型本质上是无状态的,仅能依赖有限的上下文窗口进行交互,这就导致了交互的非连续性,使模型无法积累连贯的认知或沉淀长期的经验。"
记忆组件的引入,为AI应用带来了三个维度的能力:
- 跨越会话的连贯性:AI应用通过记忆组件长期保存关键信息(如对话历史、任务状态、决策依据),并通过高效的检索与上下文注入机制,在新的交互中动态地为模型提供相关背景。这确保了多轮、长周期交互的逻辑一致性,进一步支持长期任务的执行。
- 高度自适应的个性化:通过记忆构建和维护动态的用户画像,系统性地记录用户的偏好(如格式要求、沟通风格等),也能记住历史行为模式与长期目标,使模型能够生成高度定制化的输出。
- 基于历史信息的深度推理:记忆提供的历史知识和经验充当推理的证据库,当模型在决策时,能关联并整合分散在历史中的相关数据、相似案例或既有结论,从而进行更全面、更具深度的综合判断。
4.2 短期记忆与长期记忆
白皮书将记忆分为短期记忆(Short-Term Memory, STM) 和长期记忆(Long-Term Memory, LTM) 两种类型,它们各自有不同的技术实现、特性和应用场景。
短期记忆(工作记忆):
- 技术实现:通过在每次API调用时,将完整的对话历史以messages列表的形式传递给模型。另一种方式是利用System Prompt,预置贯穿全局的指令或动态更新的摘要。
- 优点:信息保真度高,模型可以获取未经压缩的原始对话,无需额外步骤。
- 局限:受限于模型的上下文窗口大小,一旦对话历史超出容量上限,最旧的信息会被舍弃。同时,不断增长的上下文会带来API成本与推理延迟的显著增加。
- 本质:易失、昂贵且容量有限,无法独立支撑长期的、连贯的交互需求。
长期记忆:
- 技术实现:将需要长期保存的信息(如对话摘要、用户画像、关键事实)进行向量化处理,存入专门的向量数据库。当新的交互发生时,系统根据当前输入的语义,在数据库中高效检索出最相关的历史记忆片段,动态加入到模型的输入中。
- 优点:持久性与高度的可扩展性,突破了上下文窗口的限制。
- 局限:存储的通常是信息的摘要或切片,而非原始对话,存在一定程度的信息保真度损失。系统的整体效果高度依赖于检索环节的质量。同时,带来了更高的系统复杂度和额外的处理延迟。
- 本质:持久、可扩展但存在信息损失,依赖检索质量。
4.3 多级记忆系统的构建策略
白皮书强调:"有效增强AI应用记忆能力的关键,在于实现短期与长期记忆的动态协同。" 在实践中,一个成熟的记忆系统通常采用多级架构:
- 第一级:会话内短期记忆。在当前会话中,使用完整的对话历史作为上下文。适用于单次会话内的连贯交互。当会话结束时,这部分记忆可以被压缩或摘要,转入长期记忆。
- 第二级:会话摘要记忆。每次会话结束后,使用LLM对本次会话生成一个结构化摘要,包括关键决策、用户偏好、未完成任务等。这个摘要被存入长期记忆,在后续会话中作为背景信息注入。
- 第三级:用户画像记忆。系统性地记录用户的长期偏好、行为模式、历史交互统计等信息。这些信息以结构化的形式存储(如JSON),在每次交互时动态注入System Prompt。
- 第四级:事实性知识记忆。存储用户提供的关键事实信息(如"我的公司在北京""我的预算是5000元以内"),这些信息需要长期保留并在相关场景中被自动召回。
在实际构建中,开发者需要根据业务场景在上下文成本与检索质量之间做出权衡。例如,对于高频、低价值的交互,可以只使用短期记忆;对于低频、高价值的交互,则需要构建完整的长期记忆系统。
4.4 记忆系统的技术挑战
白皮书指出了记忆系统面临的核心挑战:
- 检索质量:长期记忆的效果高度依赖于检索环节的质量。不精准的检索不仅无益,反而可能引入无关或错误的上下文,干扰模型的判断。
- 信息保真度:长期记忆存储的通常是信息的摘要或切片,而非原始对话,必然存在一定程度的信息损失。如何在压缩和保真之间取得平衡,是一个需要持续优化的课题。
- 系统复杂度:引入长期记忆带来了更高的系统复杂度和额外的处理延迟。向量数据库的维护、检索链路的优化、记忆的更新策略等,都需要投入工程资源。
- 隐私与安全:长期记忆存储了大量用户敏感信息,需要建立严格的访问控制、数据加密和隐私保护机制。
五、三者协同:构建完整的上下文工程体系
提示词工程、RAG和记忆系统并不是孤立的技术,它们共同构成了AI原生应用的上下文工程体系,需要协同工作才能发挥最大效果。
- 提示词工程是基础:无论使用RAG还是记忆系统,最终都需要通过精心设计的提示词将检索到的信息传递给模型。提示词的质量决定了模型能否正确理解和利用这些信息。
- RAG提供外部知识:当模型需要回答关于最新信息、企业私有知识或特定领域知识的问题时,RAG从知识库中检索最相关的信息,作为提示词的一部分注入。
- 记忆系统提供历史上下文:当模型需要理解用户的长期偏好、历史行为或跨会话的上下文时,记忆系统从向量数据库中检索相关的历史信息,同样作为提示词的一部分注入。
三者融合的典型流程:
- 用户发起请求。
- 系统从记忆系统中检索与该用户相关的历史上下文和偏好信息。
- 系统从RAG知识库中检索与当前问题相关的知识片段。
- 系统将用户请求、检索到的记忆信息、检索到的知识片段,以及精心设计的System Prompt组装成完整的提示词。
- 将提示词提交给大模型,生成最终响应。
- 将本次交互的关键信息更新到记忆系统中。
白皮书在第4章中用一个重要的概念概括了这一体系——上下文工程(Context Engineering)。它不是简单的"把更多信息塞进提示词",而是系统性地设计、管理、优化输入给模型的所有上下文信息,以最大化模型的输出质量和业务价值。
六、未来展望
上下文工程是AI原生应用领域最活跃的技术方向之一。白皮书指出了几个值得关注的演进趋势:
- Agentic RAG的普及:知识库检索将不再是固定的流程步骤,而是模型可以按需调用的工具,实现更灵活的上下文获取。
- 多模态RAG的兴起:随着多模态大模型和Embedding模型的成熟,RAG将从纯文本扩展到图像、音频、视频等多种模态,应用场景将大幅扩展。
- 记忆系统的智能化:未来的记忆系统将不仅仅是"存储+检索",而是能够主动判断哪些信息值得记忆、何时需要遗忘、如何自动更新和整合信息。
- 上下文压缩与优化:随着上下文窗口的增大,如何高效地压缩和优化上下文信息,减少Token消耗和推理延迟,将成为重要的工程课题。
- 评估驱动的持续优化:上下文工程的效果需要通过系统化的评估来度量。白皮书在第9章中详细讨论了AI评估体系,其中很大一部分就是针对上下文工程的效果评估。
结语
上下文工程是AI原生应用开发中最具挑战性也最具价值的领域之一。它不像模型选型那样可以"一锤定音",也不像框架选型那样有明确的最佳实践。它需要开发者深入理解业务场景,持续实验和优化,在提示词设计、知识库构建、记忆系统设计等多个维度上精耕细作。
正如白皮书所言:"上下文工程是提升输出效果的重要手段。" 在模型能力日益强大的今天,应用之间的竞争越来越体现在上下文工程的质量上。谁能更好地为模型提供准确、完整、相关的上下文信息,谁就能构建出更智能、更可靠、更有价值的AI原生应用。
在下一篇文章中,我们将深入探讨智能体开发从入门到进阶,从单智能体的开发实践开始,逐步深入到工作流编排和多智能体系统的构建,敬请期待。