本文深入探讨了智能体执行任务所需的上下文工程,将上下文工程归纳为当下热门智能体采用的几种常见策略。文章详细介绍了写入、筛选、压缩和隔离四大策略模块,包括临时草稿纸、长期记忆、向量嵌入、知识图谱、上下文摘要化、多智能体架构等具体应用示例。通过理解并运用这些设计模式,开发者可以有效地提升智能体的性能,构建更高效的AI系统。
智能体(Agents)需要上下文才能执行任务。上下文工程(Context Engineering)是一门在智能体执行轨迹(Trajectory)的每一步中,用恰到好处的信息填满上下文窗口的艺术与科学。
上下文工程(Context Engineering)
正如安德烈·卡帕西(Andrej Karpathy)所言,大语言模型(LLM)就像是一种全新的操作系统。大语言模型类似于 CPU,而它的上下文窗口(Context Window)则充当内存(RAM),扮演着模型的工作记忆(Working Memory)角色。
就像内存一样,大语言模型上下文窗口在处理各类上下文信息来源时的容量是极其有限的。正如操作系统负责精细调度和筛选哪些数据可以放入 CPU 的内存中一样,“上下文工程”扮演着完全相同的角色。卡帕西对此作了精辟的总结:
[上下文工程是]“……一门在下一步执行前,用恰到好处的信息填满上下文窗口的精妙艺术与科学。”
在构建大语言模型(LLM)应用时,我们需要管理哪些类型的上下文?“上下文工程”是一个统领性的概念,它贯穿并应用于以下几种不同类型的上下文:
指令(Instructions):提示词(Prompts)、记忆(Memories)、少样本示例(Few-shot examples)、工具描述(Tool descriptions)等
知识(Knowledge):事实(Facts)、长期记忆(Memories)等
工具(Tools):工具调用返回的反馈结果(Feedback from tool calls)
智能体的上下文工程(Context Engineering for Agents)
随着大语言模型(LLM)在逻辑推理与工具调用(Tool Calling)能力上的提升,今年人们对智能体(Agents)的关注度呈现出爆发式增长。智能体通过将 LLM 的推理调用与工具调用进行交错交织(Interleave),来执行那些通常需要长时运行(Long-running)的复杂任务。
然而,长时运行的任务以及从工具调用中不断累积的反馈信息,意味着智能体(Agents)往往需要消耗海量的 Token。这会导致一系列严峻问题:不仅可能超出上下文窗口的容量限制、引发成本与延迟的剧烈暴涨,还会导致智能体的执行性能显著下滑。
德鲁·布鲁尼格(Drew Breunig)精辟地概述了过长的上下文可能破坏模型性能的几种具体方式,包括:
上下文毒化(Context Poisoning):当模型的幻觉(错误信息)被掺杂并写入上下文中时;
上下文干预 / 干扰(Context Distraction):当冗长杂乱的上下文盖过了模型预训练知识的约束时;
上下文混淆(Context Confusion):当多余无用的上下文干扰并误导了模型的决策响应时;
上下文冲突(Context Clash):当上下文内部的不同信息碎片相互矛盾或抵触时。
意识到这一点后,Cognition 公司特别强调了上下文工程的重要性:
“上下文工程”……实际上是构建 AI 智能体(Agents)的工程师们最核心(#1)的工作。
Anthropic 同样明确指出了这一点:
智能体通常需要参与跨越数百轮的对话,这就需要极为精细的上下文管理策略。
那么,如今人们是如何应对这一挑战的呢?这些方法归纳为4 大策略模块——写入(Write)、筛选(Select)、压缩(Compress)与隔离(Isolate),并在下文中逐一给出具体的应用示例。
写入上下文(Write Context)
“写入上下文”指的是将信息持久化保存到上下文窗口之外,以协助智能体(Agent)完成任务。
临时草稿纸(Scratchpads)
当人类解决复杂任务时,我们通常会做笔记并记住关键信息,以便用于后续的相关任务。如今智能体也正在具备这种能力!通过“草稿纸(Scratchpad)”做笔记,就是一种在智能体执行任务过程中持久化保留信息的方法。其核心思想是将信息存放在上下文窗口外部,以便智能体在需要时可以调取使用。Anthropic 在其多智能体研究员(Multi-agent Researcher)架构中就给出了一个非常清晰的示例:
首席研究员(LeadResearcher)首先会深思熟虑提出研究方法,并将规划方案保存到“记忆(Memory)”中以持久化保留上下文。因为一旦上下文窗口超过 200,000 个 Token,系统就会进行截断,而保持规划方案的不丢失至关重要。
草稿纸机制可以通过几种不同的方式来实现:
它既可以是一个简单的文件写入工具(Tool Call);
也可以是运行时状态对象(Runtime State Object)中的一个属性字段,在整个会话期间保持持久化。
无论采用哪种实现方式,草稿纸都能让智能体保存有价值的信息,从而帮助其顺利完成任务。
长期记忆(Memories)
草稿纸侧重于帮助智能体在单个会话(Session)内解决当前任务,但有时智能体还需要具备跨越多个会话记忆信息的能力。
Reflexion 框架引入了在智能体每轮交互后进行“反思(Reflection)”的概念,并复用这些自我生成的记忆。
生成式智能体(Generative Agents)则能够定期将过去收集到的智能体反馈进行归纳合成,从而生成更高阶的长期记忆。
这些概念已经融入到了ChatGPT、Cursor 和 Windsurf等热门产品中,它们都具备基于“用户与智能体交互”来自动生成长期记忆的机制。
筛选上下文(Select Context)
“筛选上下文”指的是将特定信息精准拉取(Pull)并注入到上下文窗口中,以协助智能体(Agent)完成当前任务。
临时草稿纸(Scratchpads)
从草稿纸中筛选上下文的机制,取决于该草稿纸的具体实现方式:
如果它是一个工具(Tool),智能体只需发起一次工具调用即可读取其中的内容;
如果它是智能体运行时状态(Runtime State)的一部分,开发者则可以灵活选择在每一步中将状态的哪些部分暴露给智能体。这为后续轮次中向大语言模型(LLM)精准暴露草稿纸上下文提供了细粒度的控制能力。
长期记忆(Memories)
如果智能体具备保存记忆的能力,它同样需要具备筛选与当前执行任务强相关记忆的能力。这在以下几种场景中尤为有用:
智能体可以筛选少样本示例(情景记忆/Episodic Memories),以获取预期行为的参考样例;
筛选指令指南(程序性记忆/Procedural Memories),来引导自身的执行行为;
筛选事实数
选取相关记忆面临的一大挑战,是如何确保被筛选出的记忆确实与当前任务强相关。一些热门智能体采用了一种相对简化的方案,即预先指定一组固定的文件,并将其始终拉入上下文窗口中。例如,许多代码智能体(Code Agents)会使用特定文件来保存操作指令(“程序性”记忆),有时也会用来保存示例(“情景”记忆)。比如Claude Code使用的是 CLAUDE.md 文件,而Cursor与Windsurf使用的则是规则配置文件(Rules Files)。
然而,如果智能体需要存储海量的事实数据和/或关联关系(例如“语义”记忆),记忆的精选与检索就会变得异常困难。ChatGPT就是一个非常典型的热门产品,它存储了海量特定于用户的记忆,并需要从中进行检索与筛选。
向量嵌入(Embeddings)和/或用于记忆索引的知识图谱(Knowledge Graphs)常被用来辅助进行精选。尽管如此,记忆的精准筛选依然充满挑战。在 AI 工程师世界大会(AI Engineer World’s Fair)上,西蒙·威利森(Simon Willison)分享了一个记忆筛选翻车的案例:ChatGPT 自动从长期记忆中读取了他的地理位置,并在没有明确要求的情况下,将这一位置信息突兀地注入到了他请求生成的图片中。这种意料之外或非预期的记忆检索,会让某些用户产生一种“上下文窗口好像不再属于自己”的挫败感!
工具(Tools)
智能体会频繁使用工具,但如果一次性向其提供过多的工具,智能体就会陷入认知过载(Overloaded)。这往往是因为不同工具的描述(Descriptions)之间存在重叠,导致模型在判断该调用哪一个工具时产生混乱。一种行之有效的解决方案是将RAG(检索增强生成)引入到工具描述中,即根据语义相似度,为当前任务动态检索并注入最相关的工具。近期的一些学术论文表明,这种方法能将工具选取的准确率提升3 倍之多。
知识(Knowledge)
RAG 本身是一个内涵极其丰富的课题,也是上下文工程中最核心的挑战之一。代码智能体(Code Agents)正是 RAG 技术在超大规模生产环境中落地应用的绝佳示范。来自 Windsurf 团队的瓦伦(Varun)精辟地概括了其中的诸多挑战:
“对代码进行索引/ne/ne/ne上下文检索……[我们正在做索引与向量检索……通过]AST(抽象语法树)解析代码,并沿着具备明确语义边界的节点进行分块(Chunking)……但随着代码库规模的膨胀,单纯基于向量嵌入的搜索会逐渐失去作为检索启发式工具的可靠性……我们必须依赖多种技术的组合拳,例如 Grep/文件精确搜索、基于知识图谱的检索,以及……一个重新排序(Re-ranking)步骤,在该步骤中[上下文]会按照相关度高低进行精准排序。”
压缩上下文(Compressing Context)
“压缩上下文”指的是仅保留执行任务所必需的 Token,以此来削减和精简信息。
上下文摘要化(Context Summarization)
智能体(Agent)的交互过程可能跨越数百个轮次,并产生消耗大量 Token 的工具调用。摘要化(Summarization)是应对这些挑战的一种常见策略。如果您使用过Claude Code,就一定亲眼目睹过这种机制的运行:当您的使用量超过上下文窗口的 95% 时,Claude Code 就会执行“自动压缩(Auto-compact)”,它会对“用户-智能体”交互的整个执行轨迹(Trajectory)进行总结归纳。这种针对智能体执行轨迹的压缩方式可以采用多种策略,例如递归摘要(Recursive Summarization)或分层摘要(Hierarchical Summarization)。
在智能体架构设计的不同节点中引入摘要化(Summarization)机制同样非常奏效。例如,它可以用于对特定的工具调用进行后处理(Post-processing)(例如那些会吞噬大量 Token 的搜索类工具)。再举一个例子,Cognition 公司提到在智能体与智能体之间的交接边界(Agent-agent boundaries)处使用摘要化技术,以便在知识传递(Knowledge hand-off)过程中精简和削减 Token 消耗。
不过,如果需要精准捕获特定的关键事件或决策依据,摘要化本身就会面临巨大挑战。Cognition 专门为此使用了一个微调模型(Fine-tuned Model),这凸显了在这一环节中可能需要投入的巨大工程量。
上下文裁剪(Context Trimming)
摘要化通常依靠大语言模型(LLM)来提炼最相关的上下文片段,而裁剪(Trimming)则侧重于对上下文进行过滤,或者正如德鲁·布鲁尼格(Drew Breunig)所指出的,对上下文进行“修剪(Pruning)”。
这可以通过一些硬编码的启发式规则(Hard-coded Heuristics)来实现,比如直接从消息列表中移除较早的历史消息。德鲁还提到了Provence——这是一个专门针对问答(Question-Answering)场景训练的上下文修剪模型。
隔离上下文(Isolating Context)
“隔离上下文”指的是通过将上下文拆分与遮蔽,来协助智能体(Agent)更好地完成任务。
多智能体架构(Multi-agent)
隔离上下文最热门的方式之一,就是将其拆分并分配给不同的子智能体(Sub-agents)。OpenAI 推出的 Swarm 框架,其核心动力正是为了实现“关注点分离(Separation of Concerns)”——即由一个智能体团队共同分工协作来处理不同的子任务。每个智能体都拥有特定且专一的工具集、系统指令(Instructions)以及独立的上下文窗口(Context Window)。
Anthropic 的多智能体研究员(Multi-agent Researcher)架构为此提供了强有力的例证:许多拥有独立隔离上下文的智能体组合,其表现显著优于单智能体(Single-agent)架构,这很大程度上是因为每个子智能体的上下文窗口都可以专门分配给更聚焦的微观子任务。正如其官方博客所言:
[子智能体在]各自独立的上下文窗口中并行运行,同时探索问题的不同维度。
当然,多智能体架构也面临诸多挑战,包括海量的 Token 消耗(例如 Anthropic 报告称其 Token 用量最高可达传统对话的 15 倍)、需要精细的提示词工程来规划子智能体的工作,以及子智能体之间的协调调度问题。
利用环境实现上下文隔离(Context Isolation with Environments)
HuggingFace 的深度研究员(Deep Researcher)展示了另一种极为有趣的上下文隔离机制。大多数智能体采用的是传统工具调用 API,这种方式会返回 JSON 对象(工具参数),然后再将其传递给外部工具(如搜索 API)以获取反馈结果(如搜索结果)。而 HuggingFace 采用的是CodeAgent(代码智能体),它直接输出包含预期工具调用的可执行代码。这些代码随后会在沙箱环境(Sandbox)中运行,系统仅将工具调用中经过精准筛选的上下文(例如关键返回值)传递回大语言模型(LLM)。
这使得上下文能够在执行环境中与大语言模型(LLM)实现物理隔离。Hugging Face 特别指出,这是一种隔离高 Token 消耗对象(Token-heavy objects)的绝佳方式:
[代码智能体能够]更好地处理状态管理……需要保存这张图片/音频/其他文件以备后用?完全没问题,只需在您的状态(State)中将其赋值为一个变量,稍后直接调用即可。
运行时状态(State)
非常值得一提的是,智能体的运行时状态对象(Runtime State Object)同样是实现上下文隔离的一种极佳手段。它能够达到与沙箱环境异曲同工的效果。开发者可以基于特定的 Schema(例如 Python 的 Pydantic 模型)来设计状态对象,使其包含多个可供上下文写入的字段。在智能体运行的每一轮次中,只需将该 Schema 中的某一个字段(例如 messages 消息列表)暴露给 LLM,而 Schema 中的其他字段则可以把信息隔离起来,以备后续进行更有针对性的选择性调用。
结语(Conclusion)
虽然智能体上下文工程(Context Engineering)的范式仍在不断演进,但我们已经可以将当下的主流方法总结归纳为4 大核心策略模块——写入(Write)、筛选(Select)、压缩(Compress)与隔离(Isolate):
写入上下文(Write):指将信息持久化保存到上下文窗口之外,以协助智能体完成任务。
筛选上下文(Select):指将特定信息精准拉取(Pull)并注入到上下文窗口中,以协助智能体完成任务。
压缩上下文(Compress):指通过提炼与精简,仅保留执行任务所必需的 Token。
隔离上下文(Isolate):指通过对上下文进行拆分、遮蔽与解耦,来协助智能体更好地完成任务。
在今天,深刻理解并熟练运用这些设计模式,已然成为了构建高效 AI 智能体(Agents)的核心技术支撑。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
适用人群
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。