打开APP
提示词工程、RAG之后,LangChain:上下文工程开始火了!
机器之心
2025-06-25 14:36:04

编辑:陈萍

AI 时代,你可能听说过提示词工程、RAG、记忆等术语。但是很少有人提及上下文工程(context engineering)。

其实,这一术语并不新鲜,近两年很多智能体构建者一直在关注这个事情。至于重要性,下面这张图很好地概括了上下文工程与提示词工程、RAG 等的关系。

在传统的提示工程中,开发者通常侧重于精心设计提示语,以期得到更好的答案。然而,随着应用的复杂度不断增加,逐渐显现出单纯依赖提示已无法满足现代智能体的需求。如今,提供完整且结构化的上下文信息比任何巧妙的提示词更为重要。

上下文工程就是为此诞生的。

上下文工程是构建动态系统,以正确的格式提供合适的信息和工具,从而使得 LLM 能够合理地完成任务。

大多数时候,当一个智能体没有很好地执行任务时,根本原因是没有向模型传达适当的上下文、指令和工具。LLM 应用正在从单一的提示演变为更复杂、动态的智能系统。

因此,上下文工程正在成为 AI 工程师可以发展的最重要技能。

什么是上下文工程?

上下文工程是指构建动态系统,以合适的格式提供准确的信息和工具,使 LLM 能够合理完成任务。

上下文工程是一个系统。复杂的智能体可能需要从多个来源获取上下文。这些上下文可能来自应用开发者、用户、先前的交互记录、工具调用结果或其他外部数据。将这些内容整合起来需要一个复杂的系统。

上下文工程是动态的。许多上下文信息是动态生成的。因此,构建最终提示的逻辑也必须是动态的,而不仅仅是一个静态模板。

必须提供准确的信息。智能体系统表现不佳的常见原因往往是缺乏正确的上下文。LLM 无法「读心」—— 因而你必须为它们提供准确的信息。输入的是垃圾,输出的也只会是垃圾。

需要提供合适的工具。并不是在所有情况下,LLM 仅凭输入就能够解决任务。在这些情况下,如果你希望赋能 LLM 来完成任务,你需要确保它拥有合适的工具。这些工具可以是用来查找更多信息、采取行动,或者介于两者之间的任何东西。为 LLM 提供合适的工具和提供正确的信息一样重要。

格式很重要。就像与人类沟通一样,如何与 LLM 沟通也很重要。在确保 LLM 能够使用这些工具时,工具的输入参数非常重要。

为什么上下文工程很重要

当智能体系统出错时,通常是因为 LLM 出错。从第一性原理思考,LLM 出错有两个原因:

底层模型本身出错,模型的能力不够;

底层模型没有传递适当的上下文以生成正确的输出。

随着技术的不断优化,更多情况下(尤其是当模型变得更强大时)模型的错误是由第二个原因造成的。传递给模型的上下文可能由于以下几种原因导致性能下降:

缺少上下文,模型做出正确决策所需的上下文没有被传递。模型不是心灵感应的,如果没有给它正确的上下文,它就无法知道该信息的存在。

上下文格式不当。就像与人类沟通一样,沟通方式非常重要!当你将数据传递给模型时,数据的格式绝对会影响模型的响应。

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

为什么要从提示工程到上下文工程转变?早期,开发者专注于巧妙地给出提示以引导模型给出更好的答案。但随着应用变得更加复杂,现在越来越明显的是,提供完整且结构化的上下文比任何巧妙的措辞更为重要。

我们可以将提示工程视为上下文工程的一个子集。即使你拥有所有的上下文,如何在提示中组装它仍然至关重要。区别在于,你不仅仅是在设计一个与单一输入数据有效的提示,而是要处理一组动态数据并将其正确格式化。

上下文的一个关键部分通常是关于 LLM 应该如何表现的核心指令。这通常也是提示工程的一个重要部分。

好的上下文工程应该包括:

工具使用:当一个智能体访问外部信息时,需要拥有能够访问这些信息的工具。当工具返回信息时,需要以 LLM 最容易理解的方式对其进行格式化。

短期记忆:如果对话持续一段时间,可以创建对话摘要,并在未来使用该摘要。

长期记忆:如果用户在之前的对话中表达了偏好,需要获取这些信息。

提示工程:在提示中清楚地列举智能体应该如何操作的说明。

检索:动态地获取信息,并在调用 LLM 之前将其插入到提示中。

免责声明:本文由顶端号作者上传发布,仅代表作者观点,顶端新闻仅提供信息发布平台。如文章内容涉及侵权或其他问题,请30日内与本平台联系,反映情况属实我们将第一时间删除。
热评
暂无评论,去APP抢占沙发吧