掘金 人工智能 前天 11:33
"上下文工程"的崛起:AI应用开发的新范式
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了AI编程领域的新兴趋势——上下文工程。文章指出,随着大语言模型应用的日益复杂,如何构建动态系统,以正确的格式提供正确的信息和工具,成为AI工程师的关键技能。作者通过LangChain官方博客,详细解读了上下文工程的定义、重要性以及与提示词工程的区别,并结合LangGraph和LangSmith等工具,阐述了如何进行有效的上下文工程,最终强调了沟通在AI应用开发中的重要性。

💡 上下文工程的核心在于构建动态系统,为大语言模型提供正确的信息和工具。这意味着要从应用程序开发者、用户、历史交互、工具调用等多个来源获取上下文,并以合适的格式呈现给模型,以确保其能够合理地完成任务。

🧩 上下文工程的重要性体现在解决智能体系统出错的问题上。模型出错往往并非因为模型本身,而是因为缺乏正确的上下文或上下文格式不佳。因此,通过提供模型所需的上下文,并以清晰、简洁的方式呈现信息,可以显著提高模型的性能。

🆚 上下文工程与提示词工程有所不同。提示词工程侧重于优化提示词的措辞,而上下文工程则更关注于向AI提供完整和结构化的上下文。上下文工程可以被视为提示词工程的子集,但它更强调动态数据的处理和格式化。

🛠️ 有效的上下文工程包括工具使用、短期和长期记忆、提示词工程和检索等多个方面。例如,确保智能体能够访问外部信息所需的工具,创建对话摘要以供将来使用,以及提供明确的指令,都是上下文工程的重要组成部分。

🚀 LangGraph和LangSmith是支持上下文工程的强大工具。LangGraph提供了对智能体流程的完全控制,而LangSmith则提供了对智能体调用的追踪能力,从而帮助开发者更好地理解和调试上下文工程的各个环节。

写在前面

作为一名AI编程工具的深度用户,我已经使用Cursor超过一年了,最近也在体验Claude Code、Gemini等各种AI编程助手。在这个过程中,我一直在探索所谓的"vibe coding"——那种与AI深度协作的编程体验,并开发了多个MCP(Model Context Protocol)项目来实现更好的AI协作。

昨晚,一位群友分享了这篇来自LangChain的文章。读完后我惊呼:文章中的很多观点竟然与我这一年多来的探索和认知高度一致!特别是关于"上下文工程"的概念,简直就是对我日常AI编程体验的完美理论总结。

我意识到,这不仅仅是一篇技术文章,更是对当下AI应用开发趋势的深刻洞察。相信很多和我一样在AI编程前线摸爬滚打的朋友,都会在这篇文章中找到共鸣。

所以我决定将其翻译出来,希望能帮助更多中文开发者理解这个正在重塑AI应用开发的新概念。


本文译自 LangChain 官方博客,原文发布于2025年6月23日

上下文工程是构建动态系统,以正确的格式提供正确的信息和工具,使大语言模型能够合理地完成任务。

大多数时候,当智能体表现不稳定时,根本原因是没有向模型传达合适的上下文、指令和工具。

随着大语言模型应用从单一提示词发展为更复杂的动态智能体系统,上下文工程正在成为AI工程师最重要的技能。

什么是上下文工程?

上下文工程是构建动态系统,以正确的格式提供正确的信息和工具,使大语言模型能够合理地完成任务。

这个定义借鉴了Tobi Lutke、Ankur Goyal和Walden Yan最近的观点。让我们来详细分解一下:

上下文工程是一个系统

复杂的智能体通常需要从多个来源获取上下文。上下文可以来自应用程序开发者、用户、历史交互、工具调用或其他外部数据。将这些整合在一起需要一个复杂的系统。

这个系统是动态的

这些上下文片段中的许多都可能动态输入。因此,构建最终提示词的逻辑也需要是动态的,而不仅仅是静态提示词。

你需要正确的信息

智能体系统表现不佳的一个常见原因是它们缺乏正确的上下文。大语言模型无法读心——你必须给它们正确的信息。垃圾输入,垃圾输出。

你需要正确的工具

大语言模型不一定总是能够仅仅基于输入来解决任务。在这些情况下,如果你想让大语言模型能够做到这一点,你需要确保它拥有正确的工具。这些工具可以用于查找更多信息、执行操作或介于两者之间的任何事情。给大语言模型正确的工具与给它正确的信息同样重要。

格式很重要

就像与人类沟通一样,如何与大语言模型沟通也很重要。一个简短但描述性的错误信息要比大量的JSON数据块更有效。这也适用于工具。当确保大语言模型能够使用工具时,工具的输入参数是什么非常重要。

它能否合理地完成任务?

这是你在思考上下文工程时应该问的一个很好的问题。它强调了大语言模型不是读心者——你需要为它们的成功创造条件。它还有助于区分失败模式。是因为你没有给它正确的信息或工具而失败吗?还是它拥有所有正确的信息,只是搞砸了?这些失败模式有着截然不同的修复方法。

为什么上下文工程很重要

当智能体系统出错时,很大程度上是因为大语言模型出错了。从第一性原理来思考,大语言模型可能因为两个原因出错:

    底层模型本身出错了,它不够好底层模型没有获得适当的上下文来产生良好的输出

通常情况下(特别是随着模型变得更好),模型错误更多是由第二个原因造成的。传递给模型的上下文可能因为几个原因而糟糕:

上下文工程与提示词工程有何不同?

为什么从"提示词"转向"上下文"?早期,开发者专注于巧妙地措辞提示词来诱导更好的答案。但随着应用程序变得更加复杂,越来越清楚的是,向AI提供完整和结构化的上下文远比任何神奇的措辞更重要。

我还认为提示词工程是上下文工程的一个子集。即使你拥有所有的上下文,你如何在提示词中组装它们仍然非常重要。区别在于,你不是为了与单一输入数据集很好地工作而设计你的提示词,而是接受一组动态数据并正确地格式化它。

我还要强调的是,上下文的一个关键部分通常是关于大语言模型应该如何行为的核心指令。这通常是提示词工程的关键部分。你会说为智能体应该如何行为提供清晰详细的指令是上下文工程还是提示词工程?我认为两者都有一点。

上下文工程的例子

好的上下文工程的一些基本例子包括:

LangGraph如何支持上下文工程

当我们构建LangGraph时,我们的目标是使其成为最可控的智能体框架。这也使它能够完美地支持上下文工程。

使用LangGraph,你可以控制一切。你决定运行什么步骤。你决定确切地什么进入你的大语言模型。你决定在哪里存储输出。你控制一切。

这使你能够进行所有你想要的上下文工程。智能体抽象的缺点之一(大多数其他智能体框架都强调这一点)是它们限制了上下文工程。可能存在你无法改变确切进入大语言模型的内容,或确切预先运行的步骤的地方。

旁注:Dex Horthy的"12因子智能体"是一篇非常好的读物。那里的许多观点都与上下文工程有关("拥有你的提示词"、"拥有你的上下文构建"等)。这篇博客的标题图片也取自Dex。我们真的很喜欢他在这个领域中传达重要内容的方式。

LangSmith如何帮助上下文工程

LangSmith是我们的大语言模型应用可观测性和评估解决方案。LangSmith的一个关键功能是追踪你的智能体调用的能力。尽管当我们构建LangSmith时"上下文工程"这个术语还不存在,但它恰当地描述了这种追踪所帮助的内容。

LangSmith让你看到智能体中发生的所有步骤。这让你看到运行了什么步骤来收集发送到大语言模型的数据。

LangSmith让你看到大语言模型的确切输入和输出。这让你看到确切进入大语言模型的内容——它拥有的数据以及格式化的方式。然后你可以调试该内容是否包含任务所需的所有相关信息。这包括大语言模型可以访问的工具——所以你可以调试它是否被给予了适当的工具来帮助手头的任务

沟通就是一切

几个月前,我写了一篇名为"沟通就是一切"的博客。主要观点是与大语言模型沟通很困难,没有得到足够的重视,并且往往是许多智能体错误的根本原因。这些观点中的许多都与上下文工程有关!

上下文工程不是一个新想法——智能体构建者在过去一两年中一直在这样做。这是一个新术语,恰当地描述了一项日益重要的技能。我们将在这个主题上写更多内容并分享更多内容。我们认为我们构建的许多工具(LangGraph、LangSmith)都完美地构建来支持上下文工程,所以我们很兴奋看到对此的重视起飞。


原文链接:blog.langchain.com/the-rise-of…

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

上下文工程 AI编程 LangChain 大语言模型 智能体
相关文章