【agent专栏】一文搞懂Agent上下文工程:Prompt Engineering已经不够用了
2025年6月25日Andrej Karpathy在X上发了一条帖子获得了1.4万点赞和2600次转发。内容不长但直接改变了整个AI工程圈的讨论方向“Context engineering is the delicate art and science of filling the context window with just the right information for the next step.”上下文工程是一门精妙的艺术与科学——为下一步操作在上下文窗口中填充恰到好处的信息。两天后Django和Datasette的作者Simon Willison跟进表态Prompt Engineering这个词已经退化成了在聊天框里打字的代名词而真正在做Agent开发的人日常花大量时间处理的事情早就不是怎么措辞了。到2025年9月Anthropic发布了《Effective context engineering for AI agents》正式把这件事定义为一门工程学科。Gartner同年10月将其纳入术语表预测到2028年80%的AI工具会内置上下文工程能力。这不是一次简单的换马甲。它背后是整个行业从单轮对话玩具走向多步Agent生产系统过程中遇到的真实工程瓶颈。一、为什么Prompt Engineering不够用了先说结论Prompt Engineering解决的是怎么跟模型说话的问题而上下文工程解决的是模型在做每一步决策时能看到什么信息的问题。前者是后者的子集。从单轮到多步的范式断裂Prompt Engineering的黄金时代是ChatGPT刚出来那会儿。你给模型一段精心编写的指令附带几个few-shot示例模型一次性返回结果。任务有明确的开始和结束所有信息在一次调用内完成闭环。但Agent不是这么工作的。一个Agent可能需要在一次任务中连续调用10次LLM推理每次都调用不同的工具、读取不同的文档、处理不同的中间结果。当第7步出了问题你去改第1步的prompt大概率解决不了问题——因为失败的原因根本不在prompt的措辞里而在于第6步注入的工具返回结果太多把关键信息挤出了注意力范围。Redis的工程博客一针见血地描述了这个陷阱你的客服Agent检查了退款状态回复用户说已退款并附上了确认号。但这笔退款20分钟前被退回了——因为Agent查的那个门店数据只做过夜同步。你修改prompt“回答前务必确认最新交易状态”。下一张工单同样的错误。因为问题从来不在prompt里在于Agent拿到的数据本身就是过时的。这就是Prompt Engineering的天花板——它能影响模型怎么理解指令但管不了模型拿到了什么数据。三个Prompt Engineering解决不了的问题1. 工具膨胀Tool Sprawl给Agent 5个工具它能选对。给Agent 30个工具它经常选错。因为工具描述本身就占上下文空间工具越多模型做选择时的决策面越宽出错概率越高。这不是prompt措辞能解决的——你需要一套工具筛选机制在每一步只把当前任务相关的工具注入上下文。2. 记忆缺失Missing MemoryAgent在第3步获得了一个关键信息到第15步需要用到时已经忘了——不是真的忘了而是那信息在上下文窗口里被后续的对话和工具输出挤到了中间位置恰好落在了模型注意力最弱的区域。这就是学术界已经验证的Lost in the Middle效应。3. 检索失灵Broken Retrieval你接了RAG但检索回来的文档里有3篇互相矛盾的内容模型无法判断该信谁。Prompt里写以最新文档为准也没用因为模型根本分不清哪个更新。这是检索管线的问题不是prompt的问题。二、上下文工程到底在做什么Karpathy在同一条帖子里给了更完整的定义之所以是科学因为做好这件事涉及任务描述、few-shot示例、RAG、相关数据可能是多模态的、工具、状态和历史记录、上下文压缩。太少或格式不对模型无法达到最优表现太多或太无关成本上升、表现反而下降。之所以是艺术因为需要对大模型的心理和行为模式有直觉性的把握。Anthropic在2025年9月的文章里把它进一步形式化为在LLM推理期间策划和维护最优token集合的一组策略。LangChain在2025年7月的《Context Engineering for Agents》中给出了目前业界最广泛引用的操作框架——四个核心动作1. Write写入把信息持久化到上下文窗口之外笔记、记忆存储、状态文件。目的是让信息不必一直占用上下文空间。典型场景Agent完成一步推理后把关键结论写入一个scratchpad文件而不是把完整推理过程留在对话历史里。2. Select筛选每一步只把相关的记忆、工具输出或文档拉进上下文而不是把所有可用的东西都塞进去。典型场景Agent有30个工具但每一步只注入5-8个与当前子任务相关的工具描述。3. Compress压缩对已在上下文中的信息进行摘要和裁剪防止累积成噪声。典型场景工具返回了3000 token的JSON但Agent只需要其中150 token的关键字段——在注入下一步之前就把原始响应压缩掉。4. Isolate隔离把上下文拆分到子Agent或沙箱步骤中让一个任务的噪声不污染另一个任务的推理。典型场景Anthropic自己的多Agent研究系统每个子Agent有独立的上下文窗口。他们发现这种方式比把所有信息塞进单个窗口表现更好——代价是token消耗最多增加到15倍。这是一个主动的cost-reliability trade-off。DevinCognition公司的自主编码Agent的工程团队对此有一个直白的总结上下文工程实际上是构建AI Agent的工程师的第一要务。三、上下文窗口的三个杀手做上下文工程本质上是在跟三个现象作斗争Context Rot上下文腐烂随着上下文窗口被填充模型精度下降——即使总token数远低于技术上限。Chroma Research在2026年对18个前沿模型包括GPT-4.1、Claude 4 Opus/Sonnet、Gemini 2.5 Pro/Flash做了受控测试发现每一个模型的准确率都随着输入长度增长而下降且退化在达到标称上限之前就已经开始。更关键的是位置效应当关键信息位于20个文档的中间位置时准确率比放在开头或结尾时下降超过30个百分点。这比早期Lost in the Middle研究的结论更为严峻。Context Pollution上下文污染上下文中存在过多不相关、冗余或互相矛盾的信息分散模型注意力降低推理准确性。这不是信息太多的问题而是信噪比太低的问题。Context Confusion上下文混淆模型无法区分指令、数据和结构标记或者遇到逻辑上互相矛盾的指令时出现的失效模式。比如系统prompt说不要引用外部数据但RAG模块注入了一段需要引用的文档——模型会陷入两难。更大的上下文窗口也救不了你一个直觉性的反驳是既然上下文是瓶颈买更大的窗口不就行了2026年Claude和Gemini都已经开放100万token的上下文窗口相比2023年GPT-4的8K上限提升了约100倍。Chroma Research的回答是不行。窗口大了但模型的注意力分配机制并没有本质改变。塞进去的信息越多有效利用率越低。这就好比给你一本1000页的书和一根荧光笔你的有效注意力仍然只能覆盖其中一小部分。四、上下文工程 vs 记忆工程两个层次一个系统2026年下半年行业讨论开始区分两个密切相关但范畴不同的概念上下文工程Context Engineering和记忆工程Memory Engineering。上下文工程关注的是单次推理调用这一步该包含什么信息、怎么压缩、放在哪个位置、丢弃什么。所有信息都是临时的——调用结束窗口清空。记忆工程关注的是跨次交互什么信息值得持久化、存在哪里、怎么检索、如何保持时效性。当Agent需要回忆上一次对话的内容、或应用几天前学到的用户偏好时它依赖的是记忆工程而非上下文工程。两者的交汇点在检索Retrieval记忆系统产出候选信息上下文组装决定这些候选是否进入、进入多少、放在哪里。在实践中最常见的两个失败模式是失败模式1检索没有上下文预算。记忆搜索返回了一堆相关条目全部注入prompt。记忆系统的召回率看着很高但上下文窗口被挤满了检索内容留给指令、工具输出和推理过程的空间越来越少。系统性能下降但排查时你会误以为是检索出了问题——其实检索没做错是上下文组装缺少预算机制。失败模式2检索信息放置不当。高相关性的记忆被检索到了但被追加到了上下文的末尾或中间某个不显眼的位置模型在推理时实际上没看到它。检索成功了放置失败了。一个务实的设计原则是先分配token预算再在预算内做检索。而不是先检索、再想办法塞进窗口。五、落地实践一个典型的上下文组装流程说了这么多概念来看一个Agent在每一步推理前实际执行的上下文组装伪代码defassemble_context_for_step(agent_state,current_step):# 1. 固定区域系统指令和工具描述system_promptagent_state.system_prompt# ~500 tokenstoolsselect_tools(current_step,max_tools8)# 动态筛选~400 tokens# 2. 预算分配total_budget128000# 模型上下文上限reservedlen(system_prompt)len(tools)4000# 预留输出空间availabletotal_budget-reserved# ~123100 tokens 可分配# 3. 按优先级填充# 高优先级当前任务相关的记忆从记忆系统检索memoriesretrieve_with_budget(memory_store,current_step.query,max_tokensint(available*0.3)# 最多30%给记忆)# 中优先级最近对话历史压缩后的historycompress_history(agent_state.conversation,max_tokensint(available*0.3)# 最多30%给历史)# 剩余空间RAG检索结果docsretrieve_docs(knowledge_base,current_step.query,max_tokensavailable-len(memories)-len(history))# 4. 结构化放置利用首尾注意力优势contextcompose(topsystem_prompthard_constraints,# 顶部硬约束middlehistorymemories,# 中间背景信息bottomdocscurrent_step.query# 底部检索结果当前任务)returncontext这段代码体现的核心原则预算先行先确定各部分能用多少token再检索填充动态筛选工具不是把所有工具都挂上而是按步骤选压缩历史对话历史不是原样保留而是滚动压缩位置策略硬约束放顶部检索结果和当前任务放底部靠近生成点中间放背景信息六、数据说了什么让数字说话。以下是2025-2026年几个关键调查的核心数据LangChain 2026年Agent工程现状调查1340名从业者2025年11-12月57.3%的组织已有Agent在生产环境运行万人以上企业达67%32%的团队将质量而非成本列为Agent上生产的最大障碍企业开放题回答中上下文管理被频繁点名为根本原因89%的组织有某种Agent可观测性工具但只有52.4%在做离线评估DataHub 2026年上下文管理状态报告250名IT和数据负责人82%认为单独的Prompt Engineering不够用77%认为单独的RAG在生产中不够用83%同意没有上下文平台就没有Agent能产出生产价值88%已将上下文管理架构写入AI战略Anthropic多Agent研究系统隔离上下文的子Agent方案比单一窗口方案效果更好代价是token消耗最多增加到标准单聊调用的15倍Anthropic主动选择了这个trade-offChroma Research上下文腐烂研究18个前沿模型所有模型的准确率都随输入长度增长而下降退化在达到标称上下文上限之前就已开始关键信息放在中间位置时准确率比首尾下降超30个百分点这些数据的结论是一致的Agent在生产环境中的失败大多不是模型能力不足而是上下文管理不到位。七、这个领域会往哪里走上下文工程目前还处于快速演化阶段。几个值得关注的方向1. 上下文管理成为基础设施层。LangChain、LlamaIndex、Pinecone等都在向这个方向转。2026年Q1企业检索优化的预算占比从19%上升到28.9%首次超过了评估evaluation的预算占比。这意味着行业开始认为给模型喂对信息比测模型准不准更重要。2. Harness Engineering的概念正在兴起。OpenAI Codex团队的Ryan Lopopolo提出了harness engineeringHarness工程的说法——核心论点是Agent本身不是难点围绕Agent的工程框架才是。这个概念和上下文工程有大量重叠但目前还没有定论谁会最终成为主流术语。3. 记忆工程与上下文工程的融合。Mem0、Redis等实时上下文引擎正在模糊两者的边界。未来的趋势可能是统一的context platform——既管持久化记忆也管运行时上下文组装。4. 标准化。目前上下文工程还没有像MCPModel Context Protocol那样的统一协议。各家框架的实现差异很大。随着企业级部署规模增长标准化的压力会越来越大。写在最后回到最初的问题Prompt Engineering是不是死了严格来说没有。对于单轮、有界的任务写好prompt仍然是最直接有效的手段。但在Agent场景下prompt只是模型做决策时看到的一大堆信息中的一小部分。你可以把prompt打磨得完美无缺但如果模型拿到的工具列表是错误的、检索到的文档是过时的、对话历史是冗长的——结果照样不行。上下文工程不是Prompt Engineering的替代品而是它的超集。它把你从怎么措辞这个单一维度拉到了模型在每一步看到了什么、怎么看到的、为什么这么安排的系统层面。如果你正在构建Agent系统下次遇到质量问题时别急着改prompt。先看看模型的上下文窗口里到底装了什么。参考资料Andrej Karpathy关于Context Engineering的帖子2025.06.25Anthropic: Effective context engineering for AI agents2025.09LangChain: Context Engineering for Agents2025.07LangChain: State of Agent Engineering Report2026.06Redis: Context engineering vs prompt engineering2026.06Machine Learning Mastery: Context vs Memory Engineering in Agentic AI Systems2026.06Chroma Research: Context Rot StudyNeuralWired: Karpathy Was Right - Context Engineering Wins in 20262026.07.30Gartner: Context Engineering - Why It’s Replacing Prompt Engineering2025.10VentureBeat: Context architecture is replacing RAG2026.05.19

相关新闻

现代C++网络库设计:从Socket封装到事件驱动架构实践

现代C++网络库设计:从Socket封装到事件驱动架构实践

1. 项目概述:为什么我们需要再造一个轮子? 做C开发有些年头了,尤其是在涉及跨平台网络通信的项目里,你是不是也经历过这样的场景?在Windows上用Winsock写得好好的,一移植到Linux, #ifdef _WIN3…

2026/10/11 19:52:31 阅读更多 →
Rust向量索引turbovec:解决RAG内存困境的本地化方案

Rust向量索引turbovec:解决RAG内存困境的本地化方案

1. 项目缘起:当RAG遇上“内存怪兽”的工程困境最近在折腾一个内部的知识库问答项目,核心架构就是现在大热的RAG。说实话,这套路数大家都熟:文档切片、向量化、存进向量数据库,然后用户提问时召回最相关的片段&#xff…

2026/10/11 19:53:24 阅读更多 →
一键解锁B站4K大会员视频:永久离线收藏的终极指南

一键解锁B站4K大会员视频:永久离线收藏的终极指南

一键解锁B站4K大会员视频:永久离线收藏的终极指南 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾经因为网络不稳…

2026/10/11 20:41:05 阅读更多 →

最新新闻

多智能体协作框架实战:从单模型到AI团队,解决复杂任务

多智能体协作框架实战:从单模型到AI团队,解决复杂任务

1. 从"一颗大脑"到"一支团队":这个项目到底在解决什么问题第一次看到"中国版OpenClaw"这个说法,我脑子里冒出来的第一个念头是:又是一个蹭概念的。但把项目拉下来跑了两天之后,我改主意了。它真正有…

2026/10/12 21:03:46 阅读更多 →
多智能体协作框架实战:从角色定义到任务编排的AI团队搭建指南

多智能体协作框架实战:从角色定义到任务编排的AI团队搭建指南

1. 从"一颗大脑"到"一支团队":多智能体协作框架的核心思路拆解第一次看到"不是一颗大脑,是一支AI团队"这个说法时,我的直觉是:终于有人把多智能体协作这件事讲明白了。过去两年,大家做大…

2026/10/12 21:03:46 阅读更多 →
OpenClaw系统提示词动态构造:分层拼装与预算裁剪实战

OpenClaw系统提示词动态构造:分层拼装与预算裁剪实战

1. 从一条系统提示词说起:为什么“动态构造”值得单独拿出来聊第一次接触 OpenClaw 这个项目的时候,我盯着它的系统提示词看了很久。不是因为写得有多华丽,而是因为它明显不是一份“写死的”提示词——同一套代码,在不同会话、不同…

2026/10/12 21:03:46 阅读更多 →
用Python处理中文CSV并让Excel正确显示:TaoToken场景下的编码排查与配置清单

用Python处理中文CSV并让Excel正确显示:TaoToken场景下的编码排查与配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:03:46 阅读更多 →
门店管理系统选型指南:从业务流程到落地避坑全解析

门店管理系统选型指南:从业务流程到落地避坑全解析

1. 选型前先想明白:你要解决的到底是什么问题做零售数字化选型,最怕的不是找不到系统,而是找到太多系统。随便搜一下就会发现每家都在讲库存、会员、报表、多门店,看起来什么都能做,真到了门店里一跑,才发现…

2026/10/12 21:03:46 阅读更多 →
位示图计算不再丢分:从公式推导到避坑清单全解析

位示图计算不再丢分:从公式推导到避坑清单全解析

备考26年软考系统架构设计师的同学,十有八九在操作系统这个板块遇到过位示图(也常写作位图)——题目看着特别简单,就一张小表、几个编号,算来算去不过加减乘除。可偏偏就是这种题,每次考完对答案总有人对不…

2026/10/12 21:02:45 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →