上下文工程四大支柱:构建能记忆、学习和适应的智能体完全指南!
本文详细介绍了上下文工程的四大核心支柱:写入、读取、压缩和隔离上下文,以及六种关键上下文类型。通过战略性管理信息流,解决大模型的token限制、成本优化和信息相关性挑战,实现智能体的记忆、学习和适应能力。文章提供了最佳实践、工具技术及衡量标准,帮助开发者构建真正理解用户需求的AI智能体,是提升大模型应用效能的必备知识。
通过战略性上下文管理,构建能记忆、学习和适应的智能体
随着AI智能体日益复杂,一个关键挑战浮现出来:我们如何高效地管理上下文? 上下文工程是一门艺术与科学,旨在战略性地管理进出AI智能体的信息流,确保它们在正确的时间获得正确的信息,同时优化性能、成本和准确性。
可以把上下文工程看作AI智能体的记忆管理系统——正如人类认知依赖不同类型的记忆(工作记忆、长期记忆、情景记忆),AI智能体也需要复杂的上下文管理,才能在多轮复杂场景中有效运作。
为什么上下文工程至关重要
现代AI应用面临多个与上下文相关的挑战:
Token限制:大多数大语言模型(LLM)具有有限的上下文窗口(4K至200K个token),迫使我们必须战略性地选择包含哪些信息。
成本优化:每个token都有成本。低效的上下文管理会导致生产应用中的成本呈指数级增长。
信息相关性:并非所有上下文对每个任务都同等重要。无关信息实际上会通过干扰或混淆损害性能。
状态持久化:智能体需要跨会话维持状态、记住用户偏好,并在先前交互的基础上持续构建。
上下文工程的四大支柱
根据图示框架,上下文工程包含四项基本操作:
- 写入上下文:持久化信息
写入上下文是指将信息存储在即时上下文窗口之外,以便未来检索。这创建了一个持久的知识层,智能体可在不同会话和任务中访问。
存储类型:
- 长期记忆:跨会话持久化(用户偏好、习得行为、历史交互)
- 短期记忆:在单次会话内持久化(对话历史、临时变量、工作流状态)
- 状态对象:运行时状态管理(当前任务进度、临时计算、会话变量)
实现示例:
// 长期记忆存储 const userProfile = { preferences: { communicationStyle: "technical", expertise: "senior-developer" }, projectContext: { currentProject: "video-editor", techStack: ["React", "RxJS", "PIXI.js"] }, conversationHistory: [...previousSessions] }; // 当前会话的短期记忆 const sessionState = { currentTask: "debugging timeline drag-drop", activeFiles: ["timeline.jsx", "dragHandler.js"], recentErrors: [...] };
- 读取上下文:战略性信息检索
读取上下文涉及智能地将相关信息拉入智能体的工作上下文窗口。这需要复杂的检索机制和相关性评分。
上下文来源:
- 工具:外部API、数据库、文件系统
- 知识库:文档、向量数据库、结构化数据
- 记忆系统:来自写入操作的先前存储上下文
按Enter键或点击以查看完整尺寸图片
graph TD A[用户查询] --> B[上下文检索引擎] B --> C[工具结果] B --> D[记忆查找] B --> E[知识库搜索] C --> F[上下文组装] D --> F E --> F F --> G[智能体处理] G --> H[响应生成]
智能检索策略:
- 语义搜索:使用向量嵌入查找上下文相关的信息
- 时效性加权:优先考虑最近的交互和更新
- 任务特定过滤:仅检索与当前目标相关的上下文
- 渐进式加载:从核心上下文开始,按需加载额外细节
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
- 压缩上下文:智能摘要
上下文压缩解决了一个现实问题:检索到的信息通常包含冗余、无关细节或过度冗长。有效的压缩在减少token使用的同时保留关键信息。
按Enter键或点击以查看完整尺寸图片
压缩技术:
graph LR A[原始上下文<br/>1000 tokens] --> B[LLM摘要器] B --> C[压缩后上下文<br/>200 tokens] A1[对话历史] --> B A2[文档摘录] --> B A3[工具结果] --> B C --> D[关键事实] C --> E[重要决策] C --> F[行动项]
压缩技术:
- 分层摘要:创建多层摘要(详细 → 中等 → 高层)
- 实体提取:聚焦关键实体、关系和事实
- 意图保留:确保压缩后的上下文保持原始意图和含义
- 模板化压缩:使用结构化格式标准化压缩输出
压缩示例:
// 原始上下文(500 tokens) "用户正在开发一个基于React的视频编辑器应用。他们提到时间轴组件中的拖放操作无法正常工作。该时间轴使用PIXI.js进行渲染,并通过RxJS可观察对象进行复杂的状态管理。他们尝试了多种解决方案,包括更新拖拽处理器、检查事件传播和调试状态更新。该应用还使用GSAP进行动画,并与Chromatic集成进行视觉回归测试..." // 压缩后上下文(100 tokens) "项目:基于React的视频编辑器,使用PIXI.js时间轴。问题:拖放功能失效。技术栈:RxJS状态管理,GSAP动画。已尝试:事件处理器更新、状态调试。测试:Chromatic集成。"
``````plaintext
// 压缩后上下文(100 tokens) "项目:基于React的视频编辑器,使用PIXI.js时间轴。问题:拖放功能失效。技术栈:RxJS状态管理,GSAP动画。已尝试:事件处理器更新、状态调试。测试:Chromatic集成。"
- 隔离上下文:专用环境管理
上下文隔离涉及战略性地分离不同类型的上下文,以防止干扰并支持专用处理。这对于具有多重关注点的复杂应用至关重要。
隔离策略:
- 多智能体架构:不同智能体处理问题的不同方面
- 沙箱环境:用于代码、实验或敏感操作的隔离执行上下文
- 状态分区:为不同功能域分离状态对象
按Enter键或点击以查看完整尺寸图片
隔离策略
graph TD A[主上下文] --> B[拆分上下文] B --> C[智能体1<br/>UI/UX专注] B --> D[智能体2<br/>后端逻辑] B --> E[智能体3<br/>测试策略] B --> F[沙箱环境<br/>代码执行] G[共享状态] --> C G --> D G --> E C --> H[协调响应] D --> H E --> H
六种上下文类型
有效的上下文工程需要理解智能体所需的六种上下文类型:
- 指令上下文
- 角色定义:智能体应采用何种角色?
- 目标:需要达成哪些具体目标?
- 要求:必须遵循哪些约束、格式或标准?
- 示例上下文
- 行为示例:智能体应如何思考问题?
- 响应示例:优质输出应是什么样子?
- 反模式:应避免哪些错误?
- 知识上下文
- 外部知识:领域特定信息、文档、最佳实践
- 任务特定知识:API、模式、工作流、技术规范
- 记忆上下文
- 短期记忆:当前会话状态、近期交互
- 长期记忆:用户偏好、历史模式、习得行为
- 工具上下文
- 工具描述:每个工具的功能及使用时机
- 参数:所需输入、可选设置、预期输出
- 结果:如何解释和处理工具输出
- 防护栏上下文
- 输入验证:确保输入干净、安全
- 操作约束:将工具和操作限制在安全、批准的范围内
- 输出验证:确保响应符合安全和质量标准
上下文策略:
- 写入上下文:存储用户编辑偏好、项目设置、常用特效
- 读取上下文:检索当前时间轴状态、可用资源、用户编辑历史
- 压缩上下文:将长时间编辑会话摘要为关键决策和变更
- 隔离上下文:分离渲染操作与UI交互,隔离撤销/重做状态
最佳实践与模式
上下文生命周期管理
上下文生命周期管理
stateDiagram-v2 [*] --> Initialize Initialize --> Active: 加载上下文 Active --> Update: 新信息 Update --> Active: 上下文已更新 Active --> Compress: 达到Token限制 Compress --> Active: 上下文已压缩 Active --> Archive: 会话结束 Archive --> [*]: 上下文已存储
性能优化
懒加载:仅在需要时加载上下文,而非预先加载。
上下文缓存:缓存频繁访问的上下文以减少检索开销。
增量更新:增量更新上下文,而非重写全部内容。
上下文修剪:定期移除过时或无关的上下文。
质量保证
上下文验证:确保检索到的上下文相关且准确。
反馈循环:从智能体表现中学习,改进上下文选择。
A/B测试:测试不同的上下文策略以优化性能。
工具与技术
开源上下文工程栈
记忆管理:
- Zep AI:面向AI智能体的高级记忆管理
- Redis:快速的内存数据结构存储
- PostgreSQL with pgvector:向量相似性搜索
知识库:
- Milvus:开源向量数据库
- ChromaDB:AI原生向量数据库
- Weaviate:集成ML模型的向量搜索引擎
智能体编排:
- CrewAI:多智能体系统框架
- LangGraph:基于图的智能体工作流管理
- AutoGen:多智能体对话框架
可观测性与追踪:
- LangSmith:LLM应用的调试和测试
- Weights & Biases:实验跟踪和监控
上下文工程模式
上下文金字塔:从通用(底层)到具体(顶层)构建上下文
- 底层:系统指令和核心知识
- 中层:任务特定上下文和示例
- 顶层:即时用户查询和会话状态
记忆层次结构:模拟人类记忆系统
- 感觉记忆:即时输入处理
- 工作记忆:当前任务上下文
- 长期记忆:持久知识和经验
上下文路由器:智能地将不同类型的查询路由到适当的上下文集
- 技术查询 → 文档 + 代码示例
- 个人查询 → 用户偏好 + 历史
- 创意查询 → 示例 + 风格指南
衡量上下文工程的成功
关键指标
相关性评分:检索到的上下文与任务的相关程度如何?
- 通过人工评估或自动相似性评分衡量
- 跟踪智能体响应中的上下文使用率
效率指标:上下文使用效率如何?
- 每次成功任务完成的token使用量
- 上下文检索延迟
- 缓存命中率
质量指标:上下文如何提升智能体性能?
- 有/无特定上下文类型的任务完成率对比
- 用户满意度评分
- 错误率和恢复时间
持续改进
上下文分析:追踪哪些类型的上下文带来更好结果。
用户反馈整合:从用户纠正和偏好中学习。
性能监控:监控不同上下文配置下的智能体表现。
上下文工程的未来
随着AI智能体日益复杂,上下文工程将朝着以下方向发展:
自适应上下文系统:智能体学习针对不同用户和任务的最优上下文策略。
多模态上下文:整合文本、图像、音频和视频上下文,实现更丰富的理解。
分布式上下文:在多个智能体和系统间共享和同步上下文。
预测性上下文加载:基于当前轨迹预测所需上下文。
结论
上下文工程代表了我们构建AI应用方式的根本性转变。我们不应将上下文视为简单的输入/输出问题,而应架构复杂的系统,战略性地管理信息流,优化性能和成本,并随时间适应用户需求。
四大支柱——写入、读取、压缩和隔离——为系统性思考上下文管理提供了框架。结合六种上下文类型和现代工具,开发者可以构建不仅智能,而且真正具备上下文感知能力的智能体。
在构建下一个AI应用时,请记住:优秀智能体与卓越智能体之间的区别,往往不在于模型本身,而在于它如何高效地管理和利用上下文。掌握上下文工程,你就能掌握构建真正理解并适应用户需求的AI智能体的艺术。
如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)