摘要:全球性软件及咨询公司 Thoughtworks 的 CTO,Ken Mugrage 在《麻省理工科技评论》上发了一篇文章《从氛围编程到上下文工程:2025 年软件开发》。
全球性软件及咨询公司 Thoughtworks 的 CTO,Ken Mugrage 在《麻省理工科技评论》上发了一篇文章《从氛围编程到上下文工程:2025 年软件开发》。
文章中,Ken Mugrage 阐述了 2025 年软件工程迎来了一个决定性的转折点,一个曾经让无数开发者沉醉的编码方式,正在被一种更严谨、更强大的方法论所取代。
2025 年 2 月,著名计算机科学家 Andrej Karpathy 提出了一个极具诱惑力的概念:氛围编码(vibe coding)。
他这样描述这种全新的工作流:“你完全沉浸在氛围中,拥抱指数级增长,忘记代码的存在。大型语言模型(LLMs)变得越来越好,这让一切成为可能。”
卡帕西的实践听起来像是科幻小说:他用语音与 AI 对话,几乎不碰键盘。无论是调整界面边距这种微不足道的小事,还是生成大段的功能代码,他都选择全部接受,甚至不再费心阅读代码差异。
遇到错误,直接将错误信息复制粘贴回去,问题往往就解决了。
代码库的增长速度超出了他个人能够理解的范畴,他放弃了对代码的全局掌控,只是享受着“看到东西,说到东西,运行东西,复制粘贴东西”的快感,而且“大部分时间都有效”。
对于一次性的周末项目,这或许是一种有趣且高效的探索。
氛围编码的核心,是对 AI 的极致信任和最低限度的人工干预,它代表了人机协作最理想化的一面:开发者用意念指挥,AI 负责具体执行。
但这种浪漫的氛围很快就遇到了现实的冷酷。
Ken Mugrage 指出了这种方法的脆弱性。
随着用户需求变得复杂,提示(prompt)越来越臃肿,模型的可靠性开始急剧下降。
一个依赖氛围构建起来的系统,就像一座建立在流沙上的城堡,外表华丽,内部却缺乏坚实的结构。
当第一个真正棘手的错误出现时,那个连代码差异都懒得看的开发者,将如何在一个自己都不理解的系统中定位和修复问题?
氛围编码的局限性暴露了早期 AI 辅助开发的一个根本性缺陷:仅仅依赖感觉和临场发挥,无法构建复杂、可靠且可维护的软件系统。
具体表现为:
代码质量崩塌:缺乏审查的 AI 代码可能隐藏着难以发现的错误、安全漏洞或性能瓶颈。技术债务激增:快速接受所有 AI 生成的代码,而不进行充分理解和重构,会为项目埋下巨大的长期维护隐患。开发者技能退化:过度依赖 AI,开发者自身的编码、调试和系统性解决问题的能力会不可避免地下降。系统失控:开发者逐渐失去对整个代码库的宏观理解,无法进行有效的系统设计和架构决策。调试噩梦:当系统出现复杂问题时,由于开发者对代码的底层逻辑缺乏深入理解,定位和解决问题变得异常困难。这些问题的集中爆发,标志着软件开发社区开始深刻反思 vibe coding 的弊端。
人们意识到,简单地将工作外包给 AI 并非银弹,一种更可靠、更系统化的 AI 辅助开发方法亟待出现。AI需要的不是一个模糊的氛围,而是一个精确、丰富且动态的上下文。
这为 context engineering 的登场铺平了道路。
2025年中期,行业的风向开始转变。
context engineering不再仅仅关注如何写好一个提示,而是系统性地管理和维护AI在推理期间所需的所有信息集合。
上下文,是大型语言模型在进行决策时所能感知到的整个世界,包括代码库的结构、团队的设计规范、用户的历史偏好、数据库的模式,乃至整个项目的生命周期。
工程化的核心,在于优化这些信息的效用,以对抗模型固有的约束(如有限的注意力窗口和知识的滞后性),从而稳定、一致地达成预期目标。 软件开发,终究还是一门工程学科,它需要从凭感觉的艺术创作,回归到讲科学的系统构建。
文章指出,2025 年整个技术行业看到了一个实时实验的展开,在这个实验中,AI 的软件工程能力被置于与人类技术人员的对比测试中。
虽然 2025 年初 AI 看起来很强大,但从 vibe coding 到被称为 context engineering 的转变表明,虽然人类开发者的工作正在演变,但他们对于软件开发仍然绝对关键。
Context engineering 的定义是:在推理过程中系统设计和优化提供给大型语言模型的信息,以可靠地产生期望输出的技术。
它涉及结构化、选择和排序上下文元素——如提示、检索数据、记忆、指令和环境信号——使模型的内部层能够在最佳状态下运行。
与只关注提示措辞的提示工程(prompt engineering)不同,context engineering 考虑整个上下文配置:如何组织和传递相关知识、指令和先验上下文以实现最有效的结果。
这意味着,context engineering 是一种比提示工程更宏大、更系统的方法。它关注的不是单次交互的咒语,而是整个交互过程中的信息流管理。
根据 Thoughtworks 的观察,工程师们实践 context engineering 的技术主要分为三个领域:
上下文设置(Context Setup)
这部分关注如何为 AI 提供一个完美的初始状态。通过精心策划初始上下文,为 AI 的高质量输出打下坚实基础。
实践方式包括:使用最精简的系统提示,避免冗长和模糊;提供规范的、高质量的小样本示例,让 AI 明白你期望的输出格式与风格;使用能够高效利用令牌(token)的工具,最大化有限上下文窗口的价值。
长期任务的上下文管理(Context Management for Long-Horizon Tasks)
这部分关注如何应对复杂、长期的任务,特别是大型语言模型有限的上下文窗口带来的挑战。
关键技术包括:对长对话或大量信息进行定期摘要,提炼关键信息;使用结构化的方式记录外部记忆,确保重要信息不会丢失;将复杂任务分解,用专门的子智能体处理不同部分,隔离并简化每个子智能体需要管理的上下文。
动态信息检索(Dynamic Information Retrieval)
这部分强调按需、即时(Just-in-Time, JIT)地获取上下文信息,而不是一次性将所有可能相关的信息都塞给 AI。
核心在于,智能体能够自主判断在当前步骤中需要哪些外部数据,并仅在需要时去加载它们。这极大地提高了上下文的利用效率和精确度。
Context engineering 的兴起,标志着软件开发社区对 AI 辅助开发进入了更成熟的理解阶段。
Ken Mugrage 指出:“提供必要的上下文或知识准备至关重要。它确保输出更加一致和可靠,最终将导致需要更少工作的更好软件——减少重写并可能提高生产力。”
与 vibe coding 的随意和不可预测相比,context engineering 提供了一种更可控、更可靠的方法。它让开发者重新掌握了主导权,确保 AI 始终是作为强大的辅助工具,而不是一个难以捉摸的主导者。
Context engineering 不是一个空洞的概念,它的实践建立在一系列新兴的技术工具和行业标准之上。这些基石的出现,让系统化的上下文管理从理论走向了现实。
AGENTS.md:给 AI 智能体一本说明书
AGENTS.md 是一种为在项目中工作的 AI 编码智能体提供指令的通用格式。
你可以把它理解成一本专门写给 AI 智能体看的 README 文件。
它使用简单的 Markdown 格式,没有强制性的字段或复杂结构,完全依赖大型语言模型强大的自然语言理解能力来解释人类编写的指导。
典型的 AGENTS.md 文件会包含这些内容:项目编码环境中特定工具的使用技巧、详细的测试指令、代码提交的最佳实践等。
虽然 AI 工具支持各种上下文工程方法,但 AGENTS.md 的价值在于它创建了一个简单、通用的行业约定,为所有项目提供了一个标准化的起点。
根据其官网信息,这种简单的开放格式已被超过2万个开源项目使用。
Context7:让 AI 永远使用最新的文档
AI 编码助手面临的一个核心痛点是,其赖以训练的数据总会过时。这导致它们生成的代码可能基于一年前的库版本,甚至会幻觉出一些根本不存在的 API。
Context7 就是为了解决这个问题而生的。
它是一个模型上下文协议(Model Context Protocol, MCP)服务器,专注于为大型语言模型和 AI 代码编辑器提供最新的代码文档。
Context7 会自动爬取各种开源库和框架的官方文档,获取最新的文档和代码示例,然后通过 MCP 协议将这些信息整合到 AI 的上下文中。
这样,当你向 AI 请求代码时,它生成的示例就是基于你项目中正在使用的、最新版本的库,从而避免了过时和错误的代码。
Context7 的 GitHub 仓库描述道:“没有 Context7 的情况下,大型语言模型依赖于您使用的库的过时或通用信息。您会得到:过时的代码示例,基于一年前的训练数据;甚至不存在的虚构 API;旧软件包版本的通用答案。”
Context7 代表了 context engineering 的一个重要实践方向:通过确保 AI 能够访问最新、最准确的信息,从源头上提高其输出的可靠性。
Mem0:为 AI 智能体装上长期记忆
Mem0 (mem-zero) 是一个为 AI 智能体设计的通用记忆层。
它通过一个智能记忆层来增强 AI 助手和智能体,让它们能够实现个性化的、跨会话的交互。
Mem0 可以无缝地保留用户偏好、会话历史和智能体状态。它能够记住用户,适应个人需求,并随着时间的推移持续学习。
这对于客户支持聊天机器人、个人 AI 助手和自主系统等需要长期交互的应用场景至关重要。
Mem0 在技术上表现出色。根据其研究数据,它在 LOCOMO 基准测试上比 OpenAI Memory 的准确度提高了26%,响应速度比全上下文响应快91%,同时令牌使用量减少了90%。
Mem0 体现了 context engineering 的另一个关键维度:上下文不仅包括当前交互的信息,还应包括历史交互、用户偏好等多维度的长期记忆。
MCP 与 A2A:AI 生态的USB-C与互联网
随着 context engineering 的普及,行业需要标准化的协议来规范 AI 系统与外部世界的交互。其中最重要的两个协议是模型上下文协议(MCP)和智能体到智能体协议(A2A)。
MCP 是一个开源标准,用于连接 AI 应用程序与外部系统。
你可以把 MCP 想象成 AI 应用的 USB-C 端口。就像 USB-C 统一了电子设备的连接方式一样,MCP 为 AI 连接外部数据源(如本地文件、数据库)、工具(如搜索引擎、计算器)和工作流(如专业提示)提供了标准化的方式。
通过 MCP,AI 智能体可以访问你的谷歌日历,成为更个性化的助手;代码助手可以使用 Figma 设计稿直接生成整个网络应用;企业聊天机器人可以连接内部数据库,让用户通过聊天来分析数据。
MCP 极大地降低了开发者集成外部资源的复杂性,为构建功能强大的 AI 应用提供了坚实的基础。
A2A 协议是另一个开放标准,它专注于实现 AI 智能体之间的无缝通信和协作。
该协议最初由谷歌开发,后来捐赠给了 Linux 基金会。它为在一个由不同框架、不同供应商构建的智能体世界中,实现智能体的互操作性提供了通用语言。
如果说 MCP 是智能体与工具之间的通信协议,那么 A2A 就是智能体与智能体之间的通信协议。
A2A 允许智能体之间相互委派子任务、交换信息、协调行动,以解决单个智能体无法处理的复杂问题。重要的是,智能体在交互时无需共享其内部记忆、工具或专有逻辑,确保了安全性和知识产权的保护。
MCP 和 A2A 是互补的。MCP 像是为每个智能体配备了连接外部世界的标准接口,而 A2A 则构建了允许这些智能体相互通信的公共互联网。
Ken Mugrage 在文章中明确指出:“模型上下文协议(MCP)已成为连接大型语言模型或智能体 AI 到上下文来源的首选协议。相关地,agent2agent(A2A)协议在标准化智能体如何相互交互方面处于领先地位。”
这些工具和协议的出现与成熟,共同构成了 context engineering 的技术底座,推动着软件开发从随意的 vibe coding 迈向更加系统化、可靠和可扩展的 AI 辅助新时代。
从 vibe coding 到 context engineering 的转变,其影响远远超出了技术方法本身,它正在深刻地重塑整个软件行业的生态。
在 vibe coding 模式下,开发者的角色趋向于一个模糊的指导者。
但在 context engineering 模式下,开发者的角色变得更加清晰和关键,他们成为了上下文架构师或AI 交互设计师。
核心工作不再是逐行编写代码,而是设计和管理信息流,为 AI 精心构建和优化上下文,以引导其产出高质量、可靠的结果。
这要求开发者具备新的技能:除了传统的编码能力,还需要掌握信息设计、系统思维,甚至一些认知科学的知识,以理解如何更有效地与 AI 沟通。
Vibe coding 依赖的是单一、强大的 AI 编码工具。
Context engineering 则催生了一个由专业化、可互操作的工具组成的生态系统。
Context7 专注于提供最新文档,Mem0 专注于提供记忆,而 MCP 和 A2A 等开放标准则像胶水一样,将这些不同的工具和服务无缝地粘合在一起。
未来,软件开发环境将不再是一个个孤立的工具,而是一个由多个专业 AI 智能体和服务组成的、协同工作的网络平台。
Vibe coding 更多是一种个人英雄主义的实践。
Context engineering 则强调团队层面的协作和标准化。AGENTS.md 这样的工具,就是为了确保团队中的所有成员,以及与他们协作的 AI 智能体,都能遵循一致的规范和上下文。
这推动 AI 辅助开发从个人技能转变为一种可管理的、可扩展的组织能力。
同时,这也意味着 AI 的应用正在从一次性的周末项目走向企业级的、对可靠性和可维护性有严苛要求的生产系统。
Ken Mugrage 既承认 AI 技术的巨大潜力,也强调人类开发者的核心地位和系统化工程方法的重要性。
这场转变的核心,是从关注 AI 能做什么,转向关注人类如何引导 AI 做好什么。
最终的目标,是通过有效的上下文管理,让 AI 技术能够真正服务于业务价值,而不仅仅是提高编码的速度。
从 vibe coding 到 context engineering 的演进,为软件开发的未来指明了一个清晰的方向,但这趟旅程并非没有挑战。
技术层面,上下文窗口的限制依然是大型语言模型面临的物理瓶颈。如何在大规模、长周期的任务中高效地管理上下文,避免信息丢失或过载,仍然是一个需要持续攻克的难题。
同时,随着 AI 模型向多模态发展,如何有效管理和融合文本、图像、音频等多种形态的上下文信息,将成为新的技术前沿。
组织层面,推动这一转变需要相应的文化变革。团队需要从传统的开发流程,转向一种与 AI 深度协作的新模式。这要求组织对开发者进行再培训,帮助他们掌握上下文设计的技能,弥合技能差距。
此外,如何衡量 context engineering 实践带来的投资回报,向决策者证明其价值,也是一个现实的管理挑战。
这场变革还伴随着伦理与社会的考量。
从 vibe coding 的狂热探索,到 context engineering 的系统构建,这不仅仅是一种技术方法的更迭,更是软件开发行业在与 AI 共舞的过程中,一次深刻的自我反思与成熟。
一个人类智慧与人工智能协同进化、相互增强的阶段正在进行中。
参考资料:
来源:不秃头程序员
