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 提供高质量的上下文技巧

  • 精准:模糊需求会导致模糊的答案,因此越具体清晰结果越好。

  • 提供相关代码:提供请求相关的特定文件、文件夹或代码片段。

  • 添加设计文档:粘贴或附加相关设计文档的部分内容,提供更全面的信息。

  • 添加示例:展示您希望最终输出的内容示例结构。

  • 外部知识:提供领域知识(公司特定信息、API 规范),检索信息并与上下文联系起来。

  • 巧妙维护对话历史记录(和下面的短期记忆类似):总结历史对话,为后面对话提供上下文,通常不需要完整的历史记录。

  • 说明限制:清楚地列出要求,例如要使用的库、要遵循的模式或要避免的事情。

  • 工具使用:确保访问外部信息时,拥有相应的工具(context7或MCP)。工具返回的信息应以 LLM 能解读的方式进行格式化。

  • 短期记忆:如果对话持续了一段时间,则创建对话摘要并在将来使用(比如Cursor的自动摘要,它用小模型进行摘要总结)。

  • 长期记忆:如果用户在之前的对话中表达了偏好,则能够获取该信息并存储为长期记忆(MCP工具或Cursor近期推出的generate Memories)

  • 提示工程:在提示中清楚地使用提示工程技巧,保证合理的提示词使用。

8.2 上下文污染劣化

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

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

  • 上下文修剪和刷新:通过定期汇总,启动新上下文,然后将前一个汇总输入进来。丢弃噪音的同时保留了基本状态。对上下文进行垃圾回收。

  • 结构化上下文边界:使用清晰的标记来区分不同的工作阶段。("先前尝试" 和 "当前工作上下文")

  • 渐进式上下文细化:取得重大进展后,从头开始重建上下文。提取关键决策、成功方法和当前状态,然后重新开始。

  • 检查和摘要:定期让模型总结已完成的任务和当前状态。在开始新的会话时,可以使用这些摘要作为新上下文的种子。

  • 上下文窗口:对于非常长的任务,将其分解成几个阶段,每个阶段都可以从头开始,只保留前一阶段必要的内容。

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

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

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

  • 问题分解和控制流:健壮的系统通常会有结构性的问题分解流程和任务控制流程,提供将问题分解为多个子任务或多步骤工作流。

  • 模型选择和路由:针对不同的任务使用不同的 AI 模型。轻量级模型用于简单任务或初步答案,而重量级模型用于最终解决方案。针对编码任务使用代码专用模型,而针对对话任务使用通用模型。

  • 工具集成和外部操作:可以执行操作(调用 API、数据库查询、打开网页、运行代码),您的软件需要管理这些功能。这包括为 AI 提供可用工具列表和使用说明,以及实际执行这些工具调用并捕获结果。

  • 用户交互和用户体验流程:LLM 应用程序可能让用户参与其中。编码助手可能会建议更改,然后要求用户确认应用。这些用户体验决策也会影响上下文。

  • 防护栏和安全:在生产中必须考虑误用和错误。这可能包括内容过滤器(用于防止有害或敏感的输出)、工具的身份验证和权限检查(例如,防止 AI 删除数据库,因为它包含在指令中)以及输出验证。某些设置会使用第二个模型或规则来仔细检查第一个模型的输出。

  • 评估和监控:需要持续监控 AI 的运行情况。记录每个请求和响应,可以帮助分析故障和异常值。

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

  • RAG 检索增强生产
  • Agent 各类Agent工具系统
  • 工作流(n8n、扣子、Dify)
  • AI编程IDE的Chat能力,Agent能力

十一、参考资料

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

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

github.com/coleam00/co...

github.com/humanlayer/...

相关推荐
go546315846513 分钟前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法
Blossom.11815 分钟前
基于深度学习的图像分类:使用Capsule Networks实现高效分类
人工智能·python·深度学习·神经网络·机器学习·分类·数据挖掘
想变成树袋熊1 小时前
【自用】NLP算法面经(6)
人工智能·算法·自然语言处理
格林威1 小时前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现沙滩小人检测识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
checkcheckck2 小时前
spring ai 适配 流式回答、mcp、milvus向量数据库、rag、聊天会话记忆
人工智能
yeshan2 小时前
使用 Claude Code 的自定义 Sub Agent 完善博文写作体验
ai编程·claude·掘金·日新计划
Microvision维视智造2 小时前
从“人工眼”到‘智能眼’:EZ-Vision视觉系统如何重构生产线视觉检测精度?
图像处理·人工智能·重构·视觉检测
巫婆理发2222 小时前
神经网络(多层感知机)(第二课第二周)
人工智能·深度学习·神经网络
lxmyzzs2 小时前
【打怪升级 - 03】YOLO11/YOLO12/YOLOv10/YOLOv8 完全指南:从理论到代码实战,新手入门必看教程
人工智能·神经网络·yolo·目标检测·计算机视觉
SEO_juper2 小时前
企业级 AI 工具选型报告:9 个技术平台的 ROI 对比与部署策略
人工智能·搜索引擎·百度·llm·工具·geo·数字营销