我们过去认为,构建更好的 AI 系统关键在于编写完美的提示词。你可能听说过“提示词工程”(Prompt Engineering)。但随着大型语言模型和 AI 智能体技术的发展,我们正逐渐从提示词工程转向一种被称为“上下文工程”(Context Engineering)的新范式。让我们先定义这个术语:上下文工程是指有意地组织和优化传递给大型语言模型或智能体的信息,以产生更准确、更具相关性的输出。

让我们联系一下你和我的运作方式。你是否曾在多任务处理时感到不知所措,导致完成的工作量不如预期?最近的研究表明,你和我一次只能处理和保持大约三到五条信息,持续时间约为 20 秒。这就是我们的工作记忆,而多任务处理时经历的认知过载也就此得到了解释。为了减轻这种负担,我们倾向于将信息分块(Chunking),创建更小的子任务。这实际上与 AI 模型处理大量信息的方式非常相似。

在本视频中,我们将分解什么是上下文工程、良好的上下文是什么样的、为什么它很重要,以及一个实际案例。提示词工程主要关注的是提问:“我该如何措辞指令,才能从大型语言模型中获得想要的结果?”相比之下,上下文工程则关注提供给模型的整个信息环境。因此,提示词工程实际上是上下文工程的一个组成部分。

这一区分在构建 AI 智能体时变得尤为重要,因为智能体不仅仅回答一个问题。它们会跨多个步骤进行推理,使用工具,检索信息,并更新记忆以做出决策。就像我们的工作记忆一样,AI 模型的上下文也是有限的。

你可能会问:现在的模型不是支持巨大的上下文窗口吗?我的意思是,既然有超过 200 万个 token 的支持,我们真的需要刻意关注提供什么样的上下文以及多少量吗?事实上,更多的上下文并不意味着更好的性能。随着上下文的增加,性能甚至可能下降。研究人员有时将这种现象称为“上下文腐烂”(Context Rot)。过多的无关信息、结构不良或缺失的数据会导致推理能力变差和幻觉产生。

想象一下,如果我给你一页纸上的单一指令来处理一项随机任务(比如为新同事办理入职手续),你可能会很快且轻松地搞定。现在考虑一下,如果我给你 4000 页的 Slack 消息、电子邮件和随机笔记呢?你会很难弄清楚什么对当前任务真正重要,以及如何着手进行。这就是上下文工程重要的原因:目标不是给模型更多的信息,而是以正确的格式提供正确的信息。

上下文是模型在推理时看到的一切。以大语言模型为例,上下文包括系统提示词、用户的查询、从外部源(如向量数据库或文档存储)检索的任何文档或信息,以及大语言模型与用户之间过去交互和响应的历史。此外还包括其他系统(如工具输出、API 或其他智能体)的输出。

提供这么多信息给一个智能体确实不少。让我们思考一下良好的上下文是什么样的?它有以下几个关键特征:首先是相关性,包含的每一条信息都应有助于模型完成任务。其次是结构性,信息应组织清晰,通常带有标签或格式,帮助模型区分不同类型的信息。

第三是时机性,特别是在智能体系统中,上下文应在需要时才引入。第四是压缩性,与其将原始数据倾倒到提示词中,我们通常会对最有用细节进行总结或过滤。这一系列变革性步骤有助于生成可用的上下文,这被称为“上下文处理”(Context Processing)。

下一步是“上下文管理”,即在整个交互过程和随时间推移,维持包含在模型上下文中的信息的持续过程。关键理念包括决定保留什么和丢弃什么,以便维持相关信息并移除或最小化不必要过时的信息。

在对话系统中,保持跨多次交互的连续性意味着跟踪相关的用户输入、系统指令和之前的响应,以便模型能够做出一致且具备上下文意识的回应。我们还必须对信息进行优先级排序并非所有信息都同等重要,因此上下文管理会根据相关性、时效性或任务重要性为某些数据分配优先级。

下一步是处理信息生命周期,这意味着当新信息可用时更新上下文,使旧数据失效,并确保上下文反映最准确、最新的状态的知识。在信息随时间变化的动态环境中这一点尤为重要。最后,保持一致性和连贯性至关重要,以确保检索到的信息被正确整合,且整体上下文继续合乎逻辑。

让我们看一个上下文工程在实际中应用的真实案例。想象一下,你正在为医疗保健提供商构建一个人工智能助手,帮助患者预约就诊。在后台,这是一个需要多种数据源、约束条件和工具输出来生成决策的系统。如果没有这些要素,一个简单的提示词可能是:“为这位患者预约就诊。”这是我们的用户提示词。但这留下了很多出错的空间。

例如,模型不知道诊所的规定,也不知道医生的可用性,甚至不了解患者的病史。现在让我们加入上下文工程层。系统不再仅提供提示词,而是提供诊所的预约政策(如预约类型和持续时间)、医生的实时可用性、患者的偏好(例如仅限上午),以及如果与就诊相关则提供其病史,甚至包括通过预约 API 获取的可用时间段等工具输出。

当模型生成响应时,它不是在猜测,而是在完整的结构化上下文中进行推理。因此,它不会说“这里有一些可用时间段”,而是会说:“您需要进行复诊,某某医生在周三上午 10 点有空,这符合您对早晨预约的偏好。需要我为您预订吗?”好多了,对吧?

无论你是构建 AI 智能体、尝试工作流实验,还是仅仅想了解该领域的发展方向,上下文工程正成为一项最重要的技能。如果你喜欢这个视频,请点赞并订阅,并在评论区告诉我你想看下一个关于 AI 的什么话题。感谢观看!