LangChain记忆优化艺术:大模型上下文压缩技术解析
上下文管理是智能体高效运作的核心支撑。上下文工程作为融合艺术性与科学性的关键技术,其本质在于动态优化智能体工作流中各环节的上下文信息量。本文基于主流智能体案例及前沿研究成果,系统解析"保存-筛选-压缩-隔离"四大核心策略,并详细阐述LangGraph框架对这些策略的实现支持机制。
上下文管理是智能体高效运作的核心支撑。上下文工程作为融合艺术性与科学性的关键技术,其本质在于动态优化智能体工作流中各环节的上下文信息量。本文基于主流智能体案例及前沿研究成果,系统解析"保存-筛选-压缩-隔离"四大核心策略,并详细阐述LangGraph框架对这些策略的实现支持机制。

上下文工程概览
正如安德烈・卡帕西(Andrej Karpathy)所言,大语言模型(Large Language Models - LLMs) 可视为一种新型操作系统。LLMs 本身如同 中央处理器 (CPU),而其 上下文窗口 (Context Window) 则类似 随机存取存储器 (RAM - Random Access Memory),充当模型的工作内存。如同 RAM 容量有限且需选择性加载数据一样,上下文窗口也有其大小限制。操作系统会精心管理加载到 RAM 中的内容;与之类似,我们可以将上下文工程视为在模型工作内存中进行精细管理的角色。卡帕西对此做出了精辟总结:
“上下文工程是一门精妙的艺术和科学,目标是在上下文窗口中为下一步操作填充恰好适量的信息。”
LLM 应用中的常见上下文类型
在构建 LLM 应用时,我们需要管理哪些类型的上下文呢?上下文工程作为一个宽泛概念,适用于以下几种主要的上下文类型:
• 指令 (Instructions):提示词(Prompts)、内存信息、少样本示例(Few-shot Examples)、工具描述等。
• 知识 (Knowledge):事实(Facts)、存储的信息等。
• 工具反馈 (Tool Feedback):工具调用后返回的信息。

智能体的上下文工程策略
随着 LLM 在推理和工具调用方面的能力持续提升,人们对智能体 (Agents) 的兴趣在(2025)年激增。智能体通过交替执行 LLM 调用 和 工具调用 (Tool Calls),通常用于处理长期运行的任务。它们会利用工具反馈 (Tool Feedback) 来决定后续的操作步骤。

然而,长期任务与不断累积的工具反馈通常意味着智能体会消耗大量 令牌 (Tokens)。这可能导致诸多问题:超出上下文窗口限制、增加成本/延迟,甚至降低智能体的性能。德鲁・布罗伊尼格(Drew Breunig)清晰地概述了过长的上下文可能导致的性能问题:
• 上下文污染 (Context Contamination):当幻觉信息混入上下文时。
• 上下文干扰 (Context Distraction):当信息过多超出模型的训练理解范围时。
• 上下文混淆 (Context Confusion):当冗余信息干扰决策时。
• 上下文冲突 (Context Conflict):当上下文内容相互矛盾时。

鉴于这些挑战,Cognition 公司指出了上下文工程的关键性:
“上下文工程” 实际上是构建 AI 智能体工程师的首要任务。
Anthropic 公司也明确强调:
智能体通常需要处理数百轮的对话,这要求精心设计的上下文管理策略。
那么,业界如何应对这一挑战?我们将当前智能体上下文工程的常见策略归纳为四类:写入 (write)、筛选 (Select)、压缩 (Compress) 和隔离 (Isolate),并通过热门智能体产品和研究论文举例说明。最后,我们将探讨 LangGraph 如何赋能这些策略!

核心策略一:写入上下文
保存上下文指将信息存储到上下文窗口之外,辅助智能体完成后续任务。
草稿本/暂存区 (Scratchpad)
人类在解决问题时会做笔记并记住信息以供未来相关任务参考。智能体也正逐步获得类似能力!通过“草稿本/暂存区”(Scratchpad)做笔记,是智能体在执行任务时持久化信息的一种方式,便于后续调用。Anthropic 的多智能体研究提供了一个清晰的例子:
首席研究员先制定解决方案计划,并将其保存到内存(Memory)中以实现持久化。因为超过 200,000 令牌的上下文会被截断,而保留该计划至关重要。
草稿本的实现方式多样:可以是写入文件的工具调用;也可以是运行时状态对象中的一个字段,在会话期间持久化。无论采用哪种方式,草稿本都能帮助智能体保存对完成任务有益的信息。
长期记忆 (Long-term Memory)
草稿本有助于智能体在特定会话(或线程) 中解决问题,但有时智能体也需要在多个会话中记住重要信息!Reflexion 论文提出了在每次智能体轮次后进行反思 (Reflection) 并复用这些自生成记忆的思想。生成式智能体会定期从过往的智能体反馈集合中合成记忆 (Synthesizing Memories)。
LLM 可用于更新或创建记忆
这一概念已被 ChatGPT、Cursor 和 Windsurf 等热门产品应用。这些产品都具备基于用户与智能体的交互,自动生成可跨会话持久化的长期记忆 (Long-term Memory) 的机制。
核心策略二:筛选上下文
筛选上下文指将特定信息拉入上下文窗口,以协助智能体完成当前任务。
从草稿本中筛选
筛选草稿本信息的方式取决于其实现。如果是工具调用,智能体可通过调用读取工具来获取内容;如果是智能体运行时状态的一部分,开发人员则可精细控制在后续轮次中向 LLM 展示状态的哪些部分。
从记忆中筛选
智能体若具备存储记忆的能力,也需要具备筛选与当前任务相关记忆的能力。这在多方面至关重要:智能体可选择少样本示例(情景记忆 - Episodic Memory) 作为期望行为的范例;选择指令(程序记忆 - Procedural Memory) 引导行为;或选择事实(语义记忆 - Semantic Memory) 作为相关上下文。
挑战在于确保筛选的记忆具有相关性。一些流行智能体仅固定拉取一小部分文件。例如,许多代码智能体会使用特定文件保存指令(程序记忆),或在某些情况下保存示例(情景记忆)。Claude Code 使用 CLAUDE.md;Cursor 和 Windsurf 则使用规则文件。
然而,如果智能体存储了大量事实和/或关系集合(例如,语义记忆),筛选挑战会显著增加。ChatGPT 是一个典型例子,它能存储并从海量的用户特定记忆中进行筛选。
嵌入(Embedding) 和/或 知识图谱(Knowledge Graph) 常用于记忆索引(Memory Indexing) 以辅助筛选。尽管如此,记忆筛选仍非易事。在人工智能工程师世界博览会(AI Engineer World’s Fair)上,西蒙・威利森(Simon Willison)分享了一个筛选失误的案例:ChatGPT 从其记忆中获取了他的位置信息,却意外将其注入到图像请求中。这种意外或不期望的记忆提取,可能会让用户觉得上下文窗口“不再专属”!
筛选工具
智能体依赖工具,但过多的工具选项可能导致负担。通常是由于工具描述重叠,引发模型在选择时的困惑。一种解决方法是对工具描述(Tool Descriptions) 应用 检索增强生成(Retrieval-Augmented Generation - RAG),仅获取与当前任务最相关的工具。近期研究论文表明,这可以将工具选择的准确性提高三倍。
筛选知识
检索增强生成(RAG) 本身就是一个重要的上下文工程挑战领域。代码智能体是 RAG 应用于大规模生产的优秀范例。来自 Windsurf 的瓦伦(Vaibhav)精辟地总结了相关挑战:
索引代码 ≠ 上下文检索…我们通过抽象语法树(Abstract Syntax Tree - AST) 解析代码,并沿着语义边界(Semantic Boundaries) 进行分块(Chunking)… 随着代码库规模增长,仅依赖嵌入搜索(Embedding Search) 作为检索启发式方法(Heuristic)变得不可靠…我们必须组合多种技术,如 grep / 文件搜索、基于知识图谱的检索,以及一个重排序(Re-ranking)步骤(其中 [检索到的] 上下文根据相关性排序)。
核心策略三:压缩上下文
压缩上下文旨在仅保留执行当前任务必需的令牌。
上下文总结
智能体的交互可能跨越数百轮次,并消耗大量令牌用于工具反馈。总结(Summarization) 是应对此挑战的常用策略。Claude Code 用户可能已经见过实际应用:当上下文窗口利用率超过 95% 时,它会自动运行“压缩”,对整个用户与智能体的交互轨迹进行总结。可以在智能体轨迹中应用各种总结策略(如递归或分层总结)。
总结可应用的几个关键点
在智能体设计的特定节点添加总结非常有用,例如,对产生大量令牌的工具调用(如搜索结果)进行后处理(Post-processing);又如,Cognition 公司提到在智能体间信息传递的边界进行总结,以减少令牌数量。若需要保留特定事件或决策细节,总结会面临挑战。为此,Cognition 公司采用了微调模型(Fine-tuned Model),这凸显了实现这一步骤所需的付出。
上下文裁剪
总结通常借助 LLM 提取核心信息,而裁剪(Pruning) 则侧重于过滤或 “修剪(Pruning)” 上下文。可采取基于规则的启发式方法(Heuristics),例如删除较早的历史消息。德鲁・布罗伊尼格(Drew Breunig)还提到了 Provence(一个用于问答的、经过训练的上下文修剪器)。
核心策略四:隔离上下文
隔离上下文是指将上下文进行分割,以帮助智能体专注于特定任务。
多智能体系统
隔离上下文最流行的方法之一是采用多智能体系统(Multi-Agent System),在不同子智能体之间分配上下文。OpenAI 的 Swarm 库的一个核心理念就是关注点分离(Separation of Concerns):一组智能体负责特定的子任务,每个智能体拥有专属的工具集、指令集以及自己独立的上下文窗口。
在多个智能体之间分割上下文
Anthropic 的多智能体研究为此提供了理由:具备隔离上下文的多个智能体协同工作,通常优于单个智能体。这很大程度上源于每个子智能体的上下文窗口能专注于更窄的子任务。正如其博客所述:
[子智能体] 并行运行(Parallel Execution),各自拥有独立的上下文窗口,同时探索问题的不同侧面。
当然,多智能体也有其挑战,包括令牌消耗增加(如 Anthropic 报告,相比普通聊天模式可高出 15 倍)、需要精心的提示词工程(Prompt Engineering) 来规划子智能体工作,以及子智能体之间的协调(Coordination)。
与模型隔离的环境上下文
Hugging Face 的研究员提出了另一个巧妙的上下文隔离示例。多数智能体使用工具调用 API,返回的 JSON 对象(包含工具参数)会被传递给实际工具(如搜索 API)以获取工具反馈(如搜索结果)。Hugging Face 采用 CodeAgent,其输出直接包含待执行的工具调用代码。该代码在沙箱(Sandbox) 环境中运行,工具调用的结果上下文(例如返回值)随后传回 LLM。
沙箱可以将运行环境上下文与 LLM 隔离,这使得运行环境中的上下文(尤其是大体积对象)能与 LLM 核心处理隔离。
智能体状态
值得一提的是,智能体的 运行时状态对象(Runtime State Object) 本身也是隔离上下文的有效方式。它可以起到类似沙箱的作用。开发者可以设计一个包含字段的模式,其中某些字段(例如 messages)会在每个轮次展现给 LLM,而其他字段则隔离信息,仅在被显式调用时使用。
利用 LangSmith / LangGraph 实现上下文工程
如何实践上述策略?有两个基础准备非常关键。首先,拥有监控数据和追踪智能体令牌使用情况的能力,这有助于识别应用上下文工程的最佳位置。LangSmith 是智能体追踪(追踪/可观测性 Tracing/Observability)的理想工具。其次,需要一种简便的方法来测试上下文工程策略对智能体性能的影响。LangSmith 支持智能体评估(Agent Evaluation),可用来衡量相关工作的效果。
保存上下文
LangGraph 在设计之初就考虑了线程范围(Thread Scope) 的(短期)记忆和长期记忆(Long-term Memory)。其检查点(Checkpoint) 机制可持久化智能体在每一步的状态,这相当于一个“草稿本/暂存区”,允许您在智能体运行轨迹的任意步骤写入或读取状态信息。
LangGraph 的长期记忆机制支持在多个智能体会话间持久化上下文。它灵活性强,可用于保存少量文件(如用户配置文件或规则)或大型的记忆集合。此外,LangMem 提供了丰富的抽象,极大简化了 LangGraph 记忆管理的复杂性。
筛选上下文
在 LangGraph 智能体的每个节点(Node)(即执行步骤)中,您都可以访问当前状态。这使您能够在智能体的每个步骤中,精细控制呈现给 LLM 的具体上下文内容。
此外,LangGraph 的长期记忆在每个节点中都可访问,并支持多种检索(Retrieval) 类型(如获取特定文件、基于嵌入的记忆集合查询)
对于工具选择,LangGraph Bigtool 库提供了对工具描述进行语义搜索(Semantic Search) 的出色方案。这在管理大型工具集时,助力筛选与任务最相关的工具。
压缩上下文
LangGraph 作为底层的编排框架(Orchestration Framework),允许您将智能体设计为一组节点,定义每个节点内部的逻辑,并制定节点间传递的状态对象。这种高度可控性为实现上下文压缩提供了多种途径。

一种常见做法是将消息列表作为智能体状态,利用内置功能(如 StateGraph 的内置机制或特定节点)对其进行周期性总结或修剪。此外,您也可以在特定位置(如工具调用节点内部或轮次衔接处)添加逻辑,对工具反馈或智能体工作阶段进行后处理(Post-processing):例如,增设专门的总结节点,或在工具调用逻辑内添加总结步骤以压缩其输出。
隔离上下文
LangGraph 围绕状态对象(State Object)设计,允许您指定状态模式(Schema)并在每一步访问该状态。例如,您可以将工具调用的详细上下文(如大型 JSON 对象或二进制数据)存储在状态的某些特定字段中,使其与 LLM 隔离,直到后续步骤真正需要使用时才引入。

结尾
上下文工程已成为智能体构建者亟需掌握的核心技能。本文介绍了当今众多热门智能体中普遍应用的四大策略:
• 保存上下文:将信息存储到上下文窗口之外,供智能体后续任务使用。
• 筛选上下文:将相关信息拉入上下文窗口,辅助智能体进行当前任务。
• 压缩上下文:通过总结或裁剪,仅保留任务所需的核心令牌。
• 隔离上下文:通过多智能体、沙箱或状态管理进行上下文分割。
LangGraph 使实施上述策略变得便捷高效,而 LangSmith 则提供了一套强大的工具,用于测试智能体和追踪上下文使用情况。两者协同形成了一个良性反馈循环:LangSmith 帮助识别应用上下文工程的最佳点 -> LangGraph 实现策略 -> LangSmith 评估效果 -> 不断优化迭代。
学习大模型 AI 如何助力提升市场竞争优势?
随着新技术的不断涌现,特别是在人工智能领域,大模型的应用正逐渐成为提高社会生产效率的关键因素。这些先进的技术工具不仅优化了工作流程,还极大地提升了工作效率。然而,对于个人而言,掌握这些新技术的时间差异将直接影响到他们的竞争优势。正如在计算机、互联网和移动互联网的早期阶段所展现的那样,那些最先掌握新技术的人往往能够在职场中占据先机。
掌握 AI 大模型技能,不仅能够提高个人工作效率,还能增强在求职市场上的竞争力。在当今快速发展的技术时代,大模型 AI 已成为推动市场竞争力的重要力量。个人和企业必须迅速适应这一变化,以便在市场中保持领先地位。
如何学习大模型 AI ?
在我超过十年的互联网企业工作经验中,我有幸指导了许多同行和后辈,并帮助他们实现个人成长和学习进步。我深刻认识到,分享经验和知识对于推动整个行业的发展至关重要。因此,尽管工作繁忙,我仍然致力于整理和分享各种有价值的AI大模型资料,包括AI大模型入门学习思维导图、精选学习书籍手册、视频教程以及实战学习等内容。通过这些免费的资源,我希望能够帮助更多的互联网行业朋友获取正确的学习资料,进而提升大家的技能和竞争力。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、初阶应用:建立AI基础认知
在第一阶段(10天),重点是对大模型 AI 的基本概念和功能进行深入了解。这将帮助您在相关讨论中发表高级、独特的见解,而不仅仅是跟随他人。您将学习如何调教 AI,以及如何将大模型与业务相结合。
主要学习内容:
- 大模型AI的功能与应用场景:探索AI在各个领域的实际应用
- AI智能的起源与进化:深入了解AI如何获得并提升其智能水平
- AI的核心原理与心法:掌握AI技术的核心概念和关键原理
- 大模型应用的业务与技术架构:学习如何将大模型AI应用于业务场景和技术架构中
- 代码实践:向GPT-3.5注入新知识的示例代码
- 提示工程的重要性与核心思想:理解提示工程在AI应用中的关键作用
- Prompt的构建与指令调优方法:学习如何构建有效的Prompt和进行指令调优
- 思维链与思维树的应用:掌握思维链和思维树在AI推理和决策中的作用
- Prompt攻击与防范策略:了解Prompt攻击的类型和如何进行有效的防范


、、、
二、中阶应用:深入AI实战开发
在第二阶段(30天),您将进入大模型 AI 的进阶实战学习。这将帮助您构建私有知识库,扩展 AI 的能力,并快速开发基于 agent 的对话机器人。适合 Python 和 JavaScript 程序员。
主要学习内容:
- RAG的重要性:理解RAG在AI应用中的关键作用
- 构建基础ChatPDF:动手搭建一个简单的ChatPDF应用
- 检索基础:掌握信息检索的基本概念和原理
- 理解向量表示:深入探讨Embeddings的原理和应用
- 向量数据库与检索技术:学习如何使用向量数据库进行高效检索
- 基于 vector 的 RAG 实现:掌握基于向量的RAG构建方法
- RAG系统的高级扩展:探索RAG系统的进阶知识和技巧
- 混合检索与RAG-Fusion:了解混合检索和RAG-Fusion的概念和应用
- 向量模型的本地部署策略:学习如何在本地环境中部署向量模型

三、高阶应用:模型训练
在这个阶段,你将掌握模型训练的核心技术,能够独立训练和优化大模型AI。你将了解模型训练的基本概念、技术和方法,并能够进行实际操作。
- 模型训练的意义:理解为什么需要进行模型训练。
- 模型训练的基本概念:学习模型训练的基本术语和概念。
- 求解器与损失函数:了解求解器和损失函数在模型训练中的作用。
- 神经网络训练实践:通过实验学习如何手写一个简单的神经网络并进行训练。
- 训练与微调:掌握训练、预训练、微调和轻量化微调的概念和应用。
- Transformer结构:了解Transformer的结构和原理。
- 轻量化微调:学习如何进行轻量化微调以优化模型性能。
- 实验数据集构建:掌握如何构建和准备实验数据集。


四、专家应用:AI商业应用与创业
在这个阶段,你将了解全球大模型的性能、吞吐量和成本等方面的知识,能够在云端和本地等多种环境下部署大模型。你将找到适合自己的项目或创业方向,成为一名被AI武装的产品经理。
- 硬件选型:学习如何选择合适的硬件来部署和运行大模型AI。
- 全球大模型概览:了解全球大模型的发展趋势和主要玩家。
- 国产大模型服务:探索国产大模型服务的优势和特点。
- OpenAI代理搭建:学习如何搭建OpenAI代理以扩展AI的功能和应用范围。
- 热身练习:在阿里云 PAI 上部署 Stable Diffusion
- 本地化部署:在个人计算机上运行大型模型
- 私有化部署策略:大型模型的内部部署方法
- 利用 vLLM 进行模型部署:高效部署大型模型的技术
- 案例分析:如何在阿里云上优雅地私有部署开源大型模型
- 开源 LLM 项目的全面部署:从零开始部署开源大型语言模型
- 内容安全与合规:确保AI应用的内容安全和合规性
- 算法备案流程:互联网信息服务算法的备案指南

通过这些学习内容,您不仅能够掌握大模型 AI 的基本技能,还能够深入理解其高级应用,从而在市场竞争中占据优势。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你无疑是AI领域的佼佼者。然而,即使你只能完成60-70%的内容,你也已经展现出了成为一名大模型AI大师的潜力。
最后,本文提供的完整版大模型 AI 学习资料已上传至 CSDN,您可以通过微信扫描下方的 CSDN 官方认证二维码免费领取【保证100%免费】。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐



所有评论(0)