Deep Agents Context Engineering 上下文工程Context Engineering是构建高效、智能的Deep Agents深度智能体的核心环节。摘要上下文工程是构建高效、智能Deep Agents深度智能体的核心。它通过精心设计和管理Agent的“工作记忆”与“环境感知”为其提供精准、相关且结构化的信息以支撑复杂的推理、决策与行动。本文系统性地介绍了上下文工程的四大支柱输入上下文任务执行的直接输入、运行时上下文任务执行的过程轨迹、上下文压缩突破模型窗口限制的精炼技术以及长期记忆实现个性化与连续性的跨会话存储。文章深入探讨了每类上下文的具体类型、使用场景、实现技术、最佳实践与核心挑战旨在为开发者构建更强大、更可靠的Agent系统提供清晰的架构指南。目录1. 引言2. 输入上下文的类型和使用场景3. 运行时上下文的介绍4. 上下文压缩(Context compression)5. 长期记忆/跨Session记忆Cross-Session Memory6. 总结它旨在为Agent提供精准、相关且结构化的信息以支持其进行推理、决策和行动。简单来说上下文就是Agent的“工作记忆”和“环境感知”决定了Agent能“看到”什么从而影响其“思考”和“行动”。根据信息的来源、生命周期和作用范围Deep Agents的上下文主要可分为以下几类输入上下文Input Context单次交互或任务执行时由用户或系统直接提供的即时信息。例如用户当前的问题、指令、上传的文件等。它是任务执行的直接输入。运行时上下文Runtime Context在单次任务执行周期内由Agent自身行动、工具调用结果、中间推理步骤等动态生成和积累的信息。它记录了任务执行的“过程轨迹”。压缩上下文Compressed Context通过摘要、提取、嵌入等压缩技术对冗长的历史上下文如长对话、长文档进行精炼后保留的核心信息。旨在突破模型上下文窗口的长度限制保留关键信息。长期记忆/跨会话记忆Long-term / Cross-Session Memory跨越多次独立会话或任务持久化存储的用户偏好、历史交互、学到的知识等。它为Agent提供了连续性和个性化能力。这四类上下文相互关联共同构成了Deep Agents的完整认知体系。接下来我们将对每种类型进行详细介绍。输入上下文的类型和使用场景输入上下文是Agent执行任务的“起跑线”其质量和形式直接影响任务的启动效果。主要类型和使用场景如下类型描述典型使用场景用户指令 (User Instruction)用户以自然语言形式表达的明确需求或命令。“帮我总结这篇技术文档的核心要点。” “预订下周五从北京到上海的航班。”对话历史 (Conversation History)当前会话中已发生的多轮对话记录。用于理解指代如“它”、“上面提到的”、维持对话连贯性、进行多轮任务分解。系统提示词 (System Prompt)预先定义的、用于塑造Agent角色、能力和行为规范的指令。定义Agent为“专业的编程助手”或“耐心的客服代表”并规定其回答风格和边界。检索增强信息 (Retrieved Information)从知识库、文档、网络等外部源实时检索得到的相关片段。回答需要最新或特定领域知识的问题如“LangChain最新版本有什么新特性”结构化数据输入 (Structured Data)以JSON、表格、键值对等形式提供的结构化信息。处理表单数据、API响应、数据库查询结果或接收来自其他系统的任务参数。多模态输入 (Multimodal Input)包含文本、图像、音频、视频等多种模态的信息。图像描述、视频内容分析、根据设计图生成代码、语音指令理解等。最佳实践清晰化确保用户指令明确无歧义。结构化尽可能将非结构化信息转化为结构化提示例如提供清晰的步骤或格式要求。相关性只提供与当前任务高度相关的信息避免信息过载。运行时上下文的介绍运行时上下文是Agent在单次任务执行过程中动态构建的“思维黑板”或“工作记忆”。它记录了从任务开始到结束的完整思维链和行动轨迹。核心组成部分思维链 (Chain-of-Thought, CoT)Agent内部推理的中间步骤。例如在解决数学问题时先分解问题再逐步计算。工具调用记录 (Tool Call History)Agent调用外部工具如计算器、搜索引擎、API的输入、输出和结果。这对于需要多步工具使用的复杂任务至关重要。行动历史 (Action History)在强化学习或自主行动场景中Agent所采取的行动序列及其产生的环境状态变化。中间状态 (Intermediate State)任务执行过程中产生的任何临时变量、决策点或评估结果。作用与价值可解释性通过查看运行时上下文开发者可以理解Agent的决策过程便于调试和优化。错误恢复当任务执行失败或出现意外时Agent可以回溯运行时上下文定位问题所在并尝试替代方案。状态维持对于长流程任务运行时上下文确保了Agent不会“忘记”之前已经完成或决定的事情。示例一个订餐Agent的运行时上下文可能包含用户说“我想吃披萨” - 思考“需要确认预算和地址” - 调用[用户信息查询工具]获取地址 - 调用[餐厅搜索API]找到附近披萨店 - 思考“按评分排序并推荐前3家” - 生成回复。上下文压缩(Context compression)随着交互的进行上下文尤其是对话历史和检索到的文档会变得越来越长很快便会超出语言模型LLM的上下文窗口限制。上下文压缩技术就是为了解决这一问题其目标是在不丢失关键信息的前提下大幅缩减上下文长度。主要压缩方法摘要 (Summarization)做法使用一个LLM对长文本进行总结生成一个更短的摘要版本。场景适用于长文档、长对话历史的整体回顾。例如将长达100轮的客服对话总结成“用户反映了网络延迟和账单问题已提供初步解决方案”。优点保留核心叙事和结论。缺点可能丢失细节和精确数据。提取 (Extraction)做法根据当前查询或任务从长上下文中精准提取出最相关的句子、短语或数据点。场景当只需要上下文中的某些特定信息时。例如从一篇长论文中提取所有关于“实验方法”的段落来回答相关问题。优点保留信息的原始性和精确性。缺点可能破坏信息的连贯性和上下文关联。上下文重排序 (Contextual Re-ranking)做法先通过检索获得大量相关片段然后使用一个更精细的模型重排序器对这些片段根据与问题的相关性进行重新排序最后只保留Top-K个最相关的片段。场景检索增强生成RAG系统中用于提升输入上下文的质量。优点显著提升输入信息的信噪比。缺点需要额外的重排序模型增加计算成本。技术选择在实际系统中这些方法常常组合使用。例如先对超长历史进行摘要再对摘要和当前查询进行相关性提取最后将压缩后的上下文喂给主Agent模型。长期记忆/跨Session记忆Cross-Session Memory长期记忆使Agent能够记住跨越不同时间、不同会话的信息从而实现个性化和连续性体验。它是构建“专属AI伙伴”的关键。实现方式与存储实现方式描述存储介质示例向量记忆 (Vector Memory)将记忆文本转换为向量嵌入存储到向量数据库中。查询时通过语义相似度搜索召回相关记忆。Pinecone, Weaviate, Chroma, pgvector摘要记忆 (Summary Memory)定期或按事件触发对近期对话或重要事件进行摘要并将摘要作为长期记忆存储。关系数据库 (如PostgreSQL), 文档数据库 (如MongoDB)缓冲记忆 (Buffer Memory)保存最近的若干轮对话如最后10轮。通常作为短期记忆但也可定期归档到长期存储。内存、Redis等高速缓存知识图谱记忆 (Knowledge Graph Memory)将记忆中的实体、关系、事件以图结构存储。便于进行复杂的关联推理。Neo4j, NebulaGraph核心功能用户画像构建记忆用户的偏好如“喜欢喝黑咖啡”、“是Java开发者”、习惯、禁忌等。会话连续性在新会话开始时Agent可以主动提及上次未完成的任务或基于历史进行问候如“您上次咨询的机票问题解决了吗”。学习与进化Agent可以从历史成功或失败的交互中学习优化未来的行为策略。挑战隐私与安全长期记忆涉及用户敏感数据必须严格加密和访问控制。记忆管理需要设计策略来决定记住什么重要性过滤、忘记什么记忆衰减或归档以及如何回忆基于当前情境的相关性检索。一致性当用户信息或偏好发生变化时需要更新相关记忆避免提供过时信息。应用示例一个学习助手Agent通过长期记忆记住用户“正在学习机器学习上周掌握了线性回归本周计划学习决策树”。在新会话中当用户问“监督学习有哪些算法”时Agent可以优先推荐决策树并关联到已学的线性回归进行对比讲解。6. 总结上下文工程是Deep Agents从“能执行简单指令”迈向“具备持续学习与复杂问题解决能力”的基石。本文梳理的四大类上下文——输入、运行时、压缩与长期记忆——构成了一个层次分明、相互协作的完整体系输入上下文是任务的起点决定了Agent的初始认知范围。运行时上下文是任务的“思维过程”保障了任务执行的可解释性与状态连续性。上下文压缩是应对信息过载的关键技术确保核心信息能有效传递。长期记忆是Agent实现个性化与进化能力的核心连接了过去、现在与未来。