掘金 人工智能 10小时前
AI编程专栏(七)-什么是上下文工程,与提示工程区别
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了上下文工程与提示工程的核心概念、关系及演变。提示工程侧重于优化指令措辞以引导AI输出,而上下文工程则是一种更系统化的方法,通过构建动态系统,为大语言模型提供正确格式的信息、数据和工具,以确保任务的可靠完成。文章阐述了两者并非替代关系,而是相互补充,上下文工程可视为提示工程的更大范畴。随着AI能力的提升,提供高质量的上下文正变得比单纯的措辞技巧更为关键,它要求对信息进行有组织、动态的管理,以应对“上下文腐烂”等挑战,并最终实现生产级别的AI应用。

✨ **上下文工程是提示工程的演进与扩展**:提示工程专注于设计和优化单个指令(提示词)以引导AI模型生成特定输出,而上下文工程则是一种更宏观、系统级的方法。它旨在构建一个动态系统,通过集成指令、数据、示例、工具和历史记录等要素,为大语言模型提供完成任务所需的完整和正确的信息,从而实现更稳定、高质量的输出。

🔧 **上下文工程强调系统性与动态性**:与提示工程的“一次性”优化不同,上下文工程关注的是构建一个能够动态收集、筛选和整合多源数据的架构。这包括为AI提供正确的指令、必要的数据、有效的工具以及相关的历史对话记录,并以LLM能够理解的格式进行输入。这种动态性意味着上下文工程需要持续维护和更新,以适应功能迭代和信息变化。

🧠 **高质量上下文是AI输出的关键**:文章指出,提供完整、高质量的上下文信息,比单纯的措辞技巧更能或更容易带来优质的AI输出。随着大模型能力的复杂化,仅依靠精妙的提示词已不足以满足需求,必须通过结构化的信息管理,确保AI能够获取完成任务所需的全部关键信息,避免“垃圾进,垃圾出”的情况。

🔄 **应对“上下文腐烂”需主动管理**:随着对话的深入,上下文可能因干扰、低质量信息积累而“腐烂”。上下文工程需要主动管理,包括上下文修剪与刷新、结构化上下文边界、渐进式上下文细化、定期检查与摘要,以及将长任务分解为阶段性处理。这些策略有助于清理噪音,保留关键信息,并确保AI始终在清晰、有效的信息环境中运行。

🚀 **生产级上下文工程涉及多方面考虑**:实现生产级别的上下文工程,不仅要关注信息本身,还需要系统性的设计,如问题分解与控制流、模型选择与路由、工具集成与外部操作、用户交互流程以及防护栏与安全措施。此外,持续的评估与监控也是不可或缺的,以确保AI系统的稳定运行和及时发现问题。

AI编程专栏(一)- 评估AI编程工具对编程语言支持情况

AI编程专栏(二)- Cursor 深度使用指南

Cursor 深度使用指南(二) - 新能力使用教程

AI编程专栏(三)- 实战无手写代码,Monorepo结构框架开发

AI编程专栏(四) - 提示词技术,如何写编程提示词

AI编程专栏(五)-提示词知识-通用提示结构或框架

AI编程专栏(六)-前端必用MCP推荐

在学习上下文工程时,我们先对比提示词工程。一是回顾一下之前讲过的提示词工程,二是系统性的弄清楚二者的关系。知道自己应该什么时候,什么场景使用什么工程技巧。

一、什么是上下文工程?

英文: Context Engineering

定义: 构建一个动态系统,以正确的格式提供正确的信息和工具,从而使大语言模型(LLM)能够可靠地完成指定任务。

这是提示工程的演变,是更广泛、更系统级的方法。

二、什么是提示工程

英文: Prompt Engineering

定义: 一门设计、优化和构建有效指令(提示词)以引导人工智能模型生成所需输出的技术和实践。

三、从定义看二者差异

“上下文工程” 的重点在于系统性,为了得到预期的输出,提供必要的信息和工具

更多的是关注设计一个架构,用于动态地收集、筛选和整合来自多源的数据,构建出完整的上下文。

提示工程的重点在于构建有效提示词,为了得到预期的输出,使用更加准确高效的提示词

更多的是关注如何进行最终的格式化和指令设计,以最优的方式与LLM沟通。

四、二者关系

二者并不存在谁替代谁的关系,本质上是从两个不同的方向优化AI的输出结果,从而达到获得稳定高质量的输出结果的目标。

或可以将“提示工程”看作“上下文工程”的子集,“上下文工程”为AI提供完成任务所需的所有信息和工具,而 “提示工程”(措辞技巧)只是其中的一部分。

即使拥有了所有的上下文信息,仍需要组织、编排提示词来优化最终呈现,因此提示词工程仍然至关重要。

五、业界呼声转变

为什么现在业界呼声开始从“提示工程”转向“上下文工程”,表现出一种后者替代前者的趋势?

一部分原因是有些人并不是真正理解其意,只是在网上看到了一些说法介绍,未曾深入,便开始高谈阔论。

另一部分是一个新的认知逐渐形成:向AI提供完整高质量的上下文,远比措辞技巧更能/更容易带来优质的结果

早期LLM应用,开发者更多是通过提示工程(措辞技巧)来诱导输出更优质的结果。但随着大模型功能越来越复杂,需要更多的上下文信息,才能完成最终符合预期的输出。

六、提示词工程有哪些重点?

重点内容主要在一些提示词技巧上面,可以直接看下面的思维导图,罗列了重点技术实现。

详细参考我的另一篇文章,提示词工程。下图是一个总结性内容。

七、上下文工程有哪些重点?

如果说提示工程是一个神奇的句子,那么上下文工程就是为 AI 编写完整的剧本。或者你也可以理解为,提示工程是一个个巧妙的函数,组件,上下文工程是完整的工程项目。

一旦你制作了一个好的提示,提示工程即可结束,是一种稳定态。上下文工程是以有组织的方式引入内存、知识、工具和数据,会随着功能动态变化,是一种动态。很可能会随着功能迭代产生裂化,需要持续维护更新。

目前上下文工程不同于提示工程,有非常多论文相关支持。而且提示工程有明显性的技巧理论,比如说少量样本提示,角色设定,链式思考,自我反思等。上下文工程更多体现在系统性的工具,知识和数据的组织能力。

7.1 上下文是一个系统

它是一个系统,而不是一次性的提示。上下文工程,动态地为AI提供所需的一切——指令、数据、示例、工具和历史记录。所有这些都在运行时打包到模型的输入上下文中。

在上下文工程设计中,LLM 最终得到的提示可能包含几个部分:开发人员编写的角色指令、最新的用户查询、动态获取的相关数据,以及一些所需输出格式的示例。

7.2 系统是动态的

上下文可以动态地出现(外部数据,工具,交互,多模态),因此,构建最终提示的逻辑也必须是动态的,而不仅是一个静态提示。

7.3 提供正确的信息

系统不能很好的执行,一个常见原因是没有正确的上下文。LLM不会读心术,你需要给他们正确的信息。否则 “垃圾进,垃圾出”。

7.4 提供正确的工具

LLM 并不总是能够根据输入来解决任务,在某些情况下,想授权 LLM 执行操作,需要确保它具有正确的工具(比如Excel转JSON,需要有Python相关工具),为 LLM 提供正确的工具与为其提供正确的信息一样重要。

7.5 正确格式输入/输出

简短但描述性强的信息,比庞大的 JSON 数据更有用。为了确保 LLM 能够使用你的工具,工具的输入参数至关重要。

八、常规上下文工程技巧

为了获得优质结果,需要提供清晰的上下文和必要的信息,输出质量直接取决于输入质量。

是不是上下文提供的越详细越好?很明显不是,上下文太少(或类型错误)会导致模型缺乏所需的关键信息;无关上下文太多则会浪费 token 甚至降低性能,找到最佳平衡点并非易事。

8.1 提供高质量的上下文技巧

8.2 上下文污染劣化

随着我们构建丰富的上下文,一个新问题诞生:上下文实际上会随着时间的推移而自我毒化。

这种现象被 Workaccount2 在 Hacker News 上称为“上下文腐烂”,描述了随着对话时间的延长,干扰、死胡同和低质量信息的积累,上下文质量会下降。

优秀的上下文工程需要有意识的信息管理——不仅要决定包含哪些内容,还要决定何时排除、汇总或刷新。

九、生产级别的上下文工程

生产级系统通常会从更大的方向结构来做系统性决策。此类更适合Agent的开发系统,而非单纯的编程coding阶段。

十、最能体现上下文工程的产品

十一、参考资料

addyo.substack.com/p/context-e…

blog.langchain.com/the-rise-of…

github.com/coleam00/co…

github.com/humanlayer/…

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

上下文工程 提示工程 大语言模型 AI编程 LLM
相关文章