上下文工程(Context Engineering)是提升Agent价值的关键!!大模型学习
本文深入探讨上下文工程这一提升Agent价值的关键技术,提出R&D框架(减少Reduce与委托Delegate)作为管理上下文窗口的核心策略。从初级精简MCP服务器、优化claw.md文件,到中级上下文预加载、子Agent使用,再到高级上下文捆绑与多Agent系统,系统化展示如何最大化Agent效能。文章强调专注的Agent才是高效的Agent,通过专业化Agent创造价值,为开发者提供实用的Ag
简介
本文深入探讨上下文工程这一提升Agent价值的关键技术,提出R&D框架(减少Reduce与委托Delegate)作为管理上下文窗口的核心策略。从初级精简MCP服务器、优化claw.md文件,到中级上下文预加载、子Agent使用,再到高级上下文捆绑与多Agent系统,系统化展示如何最大化Agent效能。文章强调专注的Agent才是高效的Agent,通过专业化Agent创造价值,为开发者提供实用的Agent开发方法论。
在Agent时代,高效的工程师和Agent都离不开专注。上下文工程(Context Engineering)是提升Agent价值的关键。它专注于管理Agent的上下文窗口,这是一个宝贵且精密的资源,例如Claude Code中的上下文窗口。管理上下文窗口主要有两种方式:减少(Reduce)和委托(Delegate),简称 R&D 框架。本篇文章将深入探讨不同层次的上下文工程技术,并利用 R&D 框架最大化Agent的效能,而非仅仅提升个人能力。
管理上下文窗口的核心策略是减少(Reduce)和委托(Delegate)。所有上下文工程技术都可归入这两类。我们从新手级别开始,逐步深入更技术性的方法。一个常见的初级错误是加载不必要的MCP服务器。例如,我的Claude Code Opus令牌有24.1K被MCP工具占用,这占据了整个上下文窗口的12%。很可能您正在浪费令牌,加载了不活跃使用的MCP服务器。
解决方案很简单:审慎地使用MCP服务器。在代码库中,我们曾有一个默认的 MCP.json 文件,它总是在Agent启动时加载,消耗了昂贵且有价值的Claude Opus令牌。这些消耗会迅速累积。建议删除默认的 MCP.json 文件,避免在代码库中使用它。
这样可以立即释放上下文窗口,节省约2万个令牌。如果确实需要,可以手动启动特定的MCP服务器,例如使用 claude-smcp config 命令加载特定的配置,如 firecrawl_mcp_server_4k,只占用约6K令牌。对于全局配置,可以使用 d-strict mcp config 进行覆盖。在工程实践中,许多地方可以为了快速迭代而浪费资源,但Agent的上下文窗口绝非其中之一。这一方法正是R&D框架中“减少”原则的体现。
上下文预加载(Context Priming)是一种比使用 claw.md 或类似自动加载内存文件更优越的技术,尽管对于初学者来说可能有些争议。claw.md 文件本身并无问题,问题在于其使用方式。一个庞大的 claw.md 文件(例如23,000个令牌,占据上下文窗口的10%)会持续消耗昂贵的Opus令牌。
虽然我的示例中 claw.md 文件被夸大,但许多工程师团队都存在 claw.md 文件过长的问题,因为他们不断向其中添加内容,使其成为一个巨大的“混乱团”。Claude Code工程师甚至内置了警告:“大型 claw.md 会影响性能。”claw.md 文件的优点和缺点在于它是“始终加载”到Agent上下文窗口的可重用内存文件。问题在于这种“始终在线”的上下文缺乏动态性和可控性。代码库的工程工作不断变化,而 claw.md 文件只会不断增长。解决方案是上下文预加载。
一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
我们将 claw.md 文件精简至仅包含所有Agent始终需要的、绝对通用的核心内容,例如一个仅有43行的简洁版本,只占用350个令牌(0.2%)。这样,Agent启动时的上下文窗口将大大优化,拥有92%的空闲空间。
上下文预加载(Context Priming)是指使用专用的可重用提示(即自定义斜杠命令)来为Agent的初始上下文窗口设置特定任务类型。在每个代码库中,我都会设置 claude commands prime。
例如,本代码库中有两个 prime 命令。预加载本质上是一个可重用提示,结构简洁,包含目的(Purpose)、运行步骤(Run Step)、读取步骤(Read Step)和报告步骤(Report Step)。通过预加载,Agent可以读取相关文件(如 README),理解代码库结构,并根据特定问题集获得相关信息。这比依赖静态、始终加载的内存文件更具控制力。我们可以针对代码库中的不同关注点进行预加载,例如 prime bug 用于修复bug,prime chore 用于日常任务,prime feature 用于新功能开发,或者 prime CC 用于更新Claude Code文件。
关键在于,claw.md 文件应仅包含您100%确定始终需要加载的绝对通用必需品。因此,保持内存文件精简,优先使用上下文预加载,这样可以为Agent构建多个焦点区域。如果经常回到某个特定焦点,就为团队构建一个相应的 prime 命令。这正是高级Agent技术的基础,例如本课程末尾将讨论的“专家目录”。
现在我们进入中级阶段,这不仅仅是使用子Agent,而是如何正确使用它们。当您使用Claude Code子Agent时,实际上是创建了一个部分派生的上下文窗口。
在一个新的Agent实例中,您会发现自定义Agent(例如三个可用的Agent)只消耗122个令牌,而主Agent的粗略令牌计数器显示为900。这之间的巨大差异在于,子Agent使用系统提示(System Prompts),而非用户提示(User Prompts)。当您向Claude Code发送提示时,您写的是用户提示。当您构建可重用的自定义斜杠命令时,您写的是用户提示,这些提示会直接传递给Agent。而系统提示则不会直接添加到主Agent的上下文窗口中,这是子Agent的优势之一。子Agent的另一个优势是能够将工作从主Agent的上下文窗口中委托出去。这是R&D框架中“委托”(Delegation)的关键点,通过将上下文保留在主Agent之外,实现大规模的令牌节省。
例如,我们可以运行 /load AI docs 命令,该命令会读取AI文档的 README 文件,并启动子Agent来完成工作。主Agent读取文件后,会启动多个子Agent来获取所有AI文档URL。例如,如果有10到11个URL,每个子Agent可能消耗3K令牌,这意味着总共节省了主Agent上下文窗口中约3万到3.3万个令牌。这正是子Agent委托的强大之处。
通常,网络抓取会消耗大量令牌,因此将其委托给子Agent是一个理想的用例。子Agent会执行抓取任务,消耗自己的上下文窗口,然后写入输出文件。例如,它们会更新AI文档。在整个过程中,主Agent的上下文窗口保持相对较小,例如仅9K令牌,因为大部分工作都被委托给了子Agent。我们使用了经典的Agent提示工作流格式(目的、变量、工作流和报告格式),这在系统提示和用户提示中都非常有用。
Claude Code子Agent也存在局限性,这也是它们处于中级水平的原因。现在,我们不仅需要跟踪一套上下文模型、提示和工具,还需要跟踪所有生成的子Agent的上下文。因此,将子Agent的工作隔离成一个简洁的提示,集中于一个特定的任务,变得至关重要。
记住,一个专注的Agent才是高效的Agent。子Agent的另一个难点在于信息流。在这些多Agent系统中,信息流至关重要。主Agent向子Agent发送提示,而子Agent的响应并非直接返回给用户,而是返回给主Agent。因此,当我们进入中级、高级和Agentic级别时,必须跟踪每个启动的Agent的核心四个要素。如果您连单个Agent都无法有效管理,导致大量上下文浪费,那么您可能还没有准备好使用子Agent。您可能需要花更多时间清理、管理和维护单个主Agent的上下文窗口。
但一旦准备就绪,子Agent是一个极佳的中级技术,因为您可以将整个上下文窗口委托给一个或多个子Agent。正如我们所见,通过子Agent,我们总共节省了大约4万个令牌,并且比单个主Agent更快地完成了所有工作。
从初级到中级再到高级,我们始终在执行R&D框架,即减少和委托。我们时刻关注并管理上下文窗口的状态,这是Agent成功的关键。
就像上下文预加载一样,我们可以通过上下文捆绑(Context Bundles)进一步推动主动上下文管理。借助Claude Code hooks,我们可以通过工具调用生成工作轨迹,这些轨迹可用于在下一次运行时重新预加载Agent。这意味着即使上下文窗口“爆炸”后,我们也可以将Agent串联起来。实际上,我们一直在使用上下文捆绑。在项目的 agents 目录中,有一个额外的 Agentic 层目录,用于存放Agent操作的输出,包括 background 和 context bundles。
在 bundles 目录中,一个简单的捆绑文件包含 /prime 和 read 命令。点击进入上下文捆绑,我们会发现一个快速计划(quick plan)。这是规划器内部完成的工作,它读取指定文件并为我们编写计划,包括工具输入和其他信息。这就是一个上下文捆绑:一个简单地记录了Claude Code实例工作内容的追加日志(append-only log)。这些日志根据日期、小时和会话ID是唯一的。
上下文捆绑(Context Bundles)的实际操作如下:启动一个YOLO危险模式实例,然后输入 prime 命令,例如 /prime Claude Code。您会看到系统生成一个上下文捆绑。这个捆绑会记录提示信息,并跟踪Agent执行的 read 和 search 命令。每个 read 命令都会被逐段追加。
这使我们能够对之前的Agent所做的工作有60%到70%的扎实理解。这很重要,因为它为后续Agent的执行提供了更完整的故事。通过这个日志,我们能够获得Agent上下文窗口的完整上下文捆绑。这是一个简单而强大的概念,可用于在Agent上下文窗口“爆炸”后,重新挂载(remount)实例,使其恢复到完全相同的状态。它还通过其中包含的提示操作,讲述了上下文的来龙去脉以及基于用户提示的上下文原因。有了这个捆绑,即使一个Agent的上下文窗口“爆炸”了,我们也可以在新启动的Claude Code实例中运行 /loadbundle 命令,并粘贴路径。
这个新Agent将获得前一个Agent的完整故事,去重任何 read 命令,并理解之前完成的工作。想象一下,如果工作量更大,有50多行读写操作,上下文捆绑可以提供更准确的重放,了解前一个Agent试图做的事情。在摘要信息中,它会简洁地说明前一个Agent执行了什么命令并加载了关键发现,例如9个文件。这个模式可以处理更复杂的读写和额外提示。通过会话ID跟踪,上下文捆绑保存了一个简洁的执行日志,多亏了Claude Code hooks,我们可以在后续Agent中引用它。
当然,上下文捆绑(Context Bundles)可以有条件地使用。很多时候,您可能不需要重新加载整个上下文捆绑,因为它可能不相关。但如果需要,我们可以获得Agent在上下文过载之前的所有重放,而无需包含所有写入操作和所有读取操作的详细信息。
精简版本非常重要:我们不记录每个操作。如果这样做,只会导致下一个Agent的上下文窗口溢出。因此,您必须有选择地使用它,但它能让我们恢复到前一个Agent大约70%的状态,从而快速地重新启动。这是您可以使用的另一个高级上下文工程技术。
核心目标始终是创建更好的Agent或更多的Agent。当您添加更多Agent时,您正在将R&D框架中的“委托”(Delegation)推向极致,即一个Agent只专注于一个目的。当出现问题时,您只需修复工作流中的那一部分。通过主Agent多Agent委托,我们进入了多Agent系统的领域。在TAC课程中,我们每节课都使用这种技术构建了多Agent管道的不同变体。
在第8课中,我们展示了多种多Agent工作流、系统和UI。在高层次上,有多种方式可以委托工作。但归根结底,如果您想即时创建主Agent,您有两种选择:命令行界面(CLI)和软件开发工具包(SDK)。在中高层次上,我们可以通过提示、包装CLI、MCP服务器和UI来启动主Agent。您可能已经看到许多Claude Code管理系统和Agent系统被构建成自己的UI,这正是主Agent委托的体现。那么,最轻量级、最快能带来价值的多Agent委托版本是什么?
它是一个简单的可重用自定义斜杠命令。在Claude目录的 commands 目录中,我们有一个 background.md 文件。这是一个简单的单提示,用于启动一个后台Claude Code实例。这是除了直接通过CLI之外,将工作委托给Agent的最简单、最快的方式。当您使用这种模式时,我们正在推动强大的循环外Agent解码(Outloop agent decoding),通过运行一个只有一个Agent的提示,它只做一件事,报告工作,然后完成。
让我具体展示一下。我将以YOLO模式运行Claude Opus,然后输入 /background。您会看到这会启动一个完整的后台Claude Code实例。这里有参数提示、模型报告文件。我希望启动一个计划的创建。没有理由让我在这里来回提示,我可以启动一个后台Agent,将这项工作委托到我的主Agent上下文窗口之外。这将启动一个新的快速计划。我们再次运行计划工作流,即Agentic提示。
这次我们正在使用相同的格式构建一个 Astral UV Claude Code Python SDK,包含三个文件:pydantic types、低级文件和CLI文件。它指定了创建位置,这就是计划。启动它,这将启动一个后台Agent。您可以看到我们的主Agent正在根据此提示的内容进行工作。我们可以看到一致的提示格式,它重用了高效的提示结构。所有这些都在工作流步骤中。
创建Agent的后台目录,我们有默认值。重要的是,我们正在创建一个报告文件。然后,我们有这个主Agent委托XML包装器,其中详细说明了Agent的大量信息。我们正在从Claude Code启动一个Claude Code实例。我们有计算协调计算,Agent协调Agent。这就是一切的发展方向:更好的Agent,然后是更多的Agent。一旦您掌握了单个上下文窗口,就可以对其进行扩展。但重要的是,这释放了主Claude Code实例。您可以看到我们有一个后台任务,后台Claude Code已启动。如果我们打开它,这就是我们的Agent将报告到的文件。
我们可以为这个Agent打开一个上下文捆绑。您可以看到完全相同的提示:background/quickplan。这个Agent正在开始工作,它正在创建这个计划。我们可以通过上下文捆绑看到这一点。这非常有用。添加日志,拥有这些轨迹,即Agent所做工作的历史记录,是一种重要的Agentic模式。我们正在基于迄今为止使用的所有上下文工程技术进行构建。这个Agent应该向它的报告文件报告。这是跟踪Agent在后台工作进展的好方法。您可以看到我们仍然有一个后台任务正在运行。我们应该会收到更新。我们的Agent已经完成。您可以看到它现在正在读取其后台文件。
然后很快它就会在这里写入,我们应该会看到随着后台委托的Agent实例为我们编写这个计划而实时更新。没有理由让我停留在循环中。我确切地知道它会做什么,这是输出。任务完成。它重命名了这个文件。我有一条指令,要求它在完成时重命名文件。它现在已经完成。这是一个非常快速的单提示Agent委托系统。
一切都归结于模式,归结于控制Agent的上下文窗口并将其扩展到极致。您能控制的计算能力越多,您能协调的计算能力越多,您能协调的智能越多,您能做的事情就越多。目前,工程师的能力极限是未知的。那些悲观的人,请忽略他们。不要相信我说的话,但请研究这个领域的乐观主义者。看看他们真正能做什么。看看我们在这里真正做的是什么。
我们有后台计算Agent调用Agent。我们有R&D框架,12种上下文工程技术。这些都是具体的东西。也许其中一些技术超出了您的理解,或者您不感兴趣,或者您认为它不适用于您。没关系。只需选择一个,选择几个,深入研究它们。将它们部署到您的Agent编码中,以改善您的上下文工程。管理您的上下文窗口是有效Agent编码的关键。请记住,这不一定是为了节省令牌,而是为了正确地使用它们。我们管理上下文窗口,这样我们就不会浪费时间和令牌来纠正Agent的错误。我们希望通过最少的尝试和大规模的执行,在一次性循环外Agent解码中取得巨大成功,这样我们就可以减少我们的存在感。在TAC中,我们使用专业化的Agent。我们通过构建代表我们交付的专业化ADW来委托和减少Agent的上下文窗口。我们构建了专业化的Agent管道。所以,这里的核心思想很简单:衡量和管理Agent编码中最关键的杠杆点之一——Agent的上下文窗口。
什么比提示更好?提示链。什么比提示链更好?Agent。什么比Agent更好?许多专注于、专业化的Agent,它们能为您、您的团队,最重要的是为您的客户和用户创造价值。不要错过这个趋势。您现在拥有赢得胜利并使用专注的单用途Agent交付所需的一切。所有这些技术都在应对一个事实:语言模型和生成式AI内部存在关键的扩展定律和算法,随着上下文窗口的增长,性能会下降。这意味着您可以放心地将工程时间、精力和资源投入到出色的上下文管理中。投入到出色的上下文工程中是安全的。有很多东西需要消化。这节课将一直为您服务。感谢您的信任。请记住,一个专注的Agent是一个高效的Agent。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
01.大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K(数据来源:BOSS直聘报告)
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
02.如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(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 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)