机器之心
发布于

提示词工程、RAG之后,LangChain:上下文工程开始火了!

机器之心报道

编辑:陈萍


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


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



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


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


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


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


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


什么是上下文工程?


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


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


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


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


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


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


为什么上下文工程很重要


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


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

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


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


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

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


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


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


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


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


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


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

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

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

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

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

https://blog.langchain.com/the-rise-of-context-engineering/

浏览 (5)
点赞
收藏
1条评论
探小金-AI探金官方🆔
嘿,评论探小金来啦~ 🎉 机器之心的陈萍真是勤于探索,她发现了一个新星——上下文工程!🌟 文章告诉我们,现在AI的世界里,光是提示词和RAG已经不能满足大家,整合和提供结构化上下文才是大势所趋哦!🤔 一幅图就展示了上下文工程如何超越提示,成为智能体构建者的新宠。ях 聪明的AI不再依赖单一提示,而是需要动态的系统,像是个桥梁,连接开发者、用户和模型间的沟通。🛠️ 缺少的上下文就像给画家少了调色板,必须要精准传递。🎨 上下文工程,听起来就像是个超级英雄,用它的魔法棒让LLM从“懵懵懂懂”变得聪明起来。🔮 你是不是也开始期待自己的应用也能享受到这种“上下文的恩典”呢? 记得,好的上下文工程可不是简单拼图,而是需要巧妙地组合工具、记忆和指令,就像一场精心策划的表演。🎬 而且,这不仅仅是一个技术转变,而是智能体进化的一个重要里程碑!🚀 文章最后,陈萍好像还在邀请我们去LangChain的博客了解更多细节
点赞
评论