掘金 人工智能 6小时前
什么是 Context Engineering
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了“Context Engineering”这一新兴的编程理念,并将其与“Vibe Coding”进行对比。Context Engineering被定义为构建动态系统,为大型语言模型(LLM)提供正确的信息和工具,以高效完成任务。它强调的是一个系统化的方法,而非仅依赖单条提示词(Prompt Engineering)。文章详细阐述了Context Engineering的构成要素,包括系统消息、对话历史、外部数据、工具调用结果等,并指出其是Prompt Engineering的超集。最终,文章认为Context Engineering因其系统化、可扩展性和生产力优势,将成为主流的工程能力,而Vibe Coding则更多地停留在探索阶段。

🚀 **Context Engineering 是 LLM 应用的系统化设计方法**:它超越了传统的Prompt Engineering,旨在构建动态系统,为LLM提供完成任务所需的全部上下文信息,包括系统消息、对话历史、外部数据、工具调用结果等,从而引导LLM产生更优质的输出。

💡 **Context Engineering 是 Prompt Engineering 的超集**:Prompt Engineering关注单次交互的指令设计,而Context Engineering则是一个完整的系统设计,将提示词、记忆、RAG流程、工具调用结果、结构化输出和行为约束等多种组件进行有机组合和管理。

🛠️ **Context Engineering 关注动态和多源上下文**:与静态的Prompt不同,Context Engineering的上下文信息是动态生成的,可能来自开发者、用户、历史交互、工具调用或其他外部数据,需要为LLM提供正确、有用的信息和合适的工具。

📈 **Context Engineering 是面向生产和团队协作的主流工程能力**:相比于“Vibe Coding”的氛围感和随性,Context Engineering的系统化设计使其更适合生产环境、团队协作和企业级应用,能够实现可复用和可扩展的系统架构。

🗄️ **管理上下文窗口是 Context Engineering 的核心挑战**:由于LLM的输入有token上限,Context Engineering需要精心策划和优化LLM的短期“工作记忆”,决定哪些信息最重要,并有效地压缩或截断不关键的内容。

大家好, 这里是 CodeAgent


最近看到一句话

Context Engineering is the New Vibe Coding


当然,你不禁想知道,"Vibe Coding" 是什么?

想象一下:

在一个周末下午, 阳光明媚, 你打开 IDE,放着抒情的音乐,没有特别强的目标,只是突然想写一个小游戏,想看看它 "长什么样"

这种享受编程过程中的氛围与感觉,而不仅是关注功能的实现或者效率,就可以称作是 "Vibe Coding".

它通常指一种 "沉浸式" 的编程状态, 注重创作过程的 "感觉".


当然,我在写这篇文章的时候,一边放着音乐, 也可以称作是 "Vibe Writing".

那么,什么是 Context Engineering 呢?

还记得刚用各种Agent时候,比如 Copilot, ChatGPT等等,我们精心设计提示词(prompt), 比如:

"你是某领域的专家,请使用 A 和 B 工具,参考 Z 的方式,完成 Y 任务"

目的是能够清晰表达请求,喂给模型明确的指令,以此引导模型产生理想输出. 它通常是一次性的, 关注的是 "在某个时间点应该对模型说什么".

对于这种偏向单条Prompt的方式,我们可以称之为 "Prompt Engineering".

随着 LLM 应用变得复杂, 走向生产环境,仅靠 "聪明的提问" (Prompt)已难以满足需求. 更多需要关注模型在生成回答时所感知的全部上下文信息,而不仅是单条 prompt, 也就是 "Context Engineering".

下面是 LangChain 给出的定义

Context engineering is building dynamic systems to provide the right information and tools in the right format such that the LLM can plausibly accomplish the task.

复杂的 Agent 通常需要从多个来源获取上下文, 这些上下文可能来自应用开发者、用户、之前的交互、工具调用,或其他外部数据.

许多上下文信息是动态生成的, 而不只是静态的一段 prompt

Agent 能够正常工作的很大原因,就是需要正确有用的信息,并且需要给 LLM 提供合适的工具.

和 LLM 沟通时,表达的方式也很关键, 简洁并且描述清晰的信息比冗杂的信息会更加有效

下图是来自X上的一个帖子:

可以看到, Context Engineering 和 Prompt Engineering 并不是割裂的两个定义.

相反, Context Engineering 是 Prompt Engineering 的超集.

它是一种系统设计方法:

完整上下文可能包含以下元素:

也就是, 模型看到的一切都是关键输入, 决定其响应质量与行为表现

上下文工程涉及将多种组件组合在一起, 包括基础提示词(prompt), memory, RAG流程的输出, 工具调用的结果, 有结构的输出格式,以及行为约束(guardrails)

相比 Prompt Engineering

提示词只是整个系统的一部分,并且需要知道如何组织和管理所有的辅助信息, 包括对格式的精心设计,以及对上下文窗口限制的管理


换句话说,和 LLM 沟通的角色逐渐从:

入门完成一个个单点功能 -> 设计可复用可扩展的系统性架构


顺便回到最开始的那句话, 为什么 "Context Engineering is the New Vibe Coding" ?

相比之下,很明显, Context Engineering 会成为主流的工程能力. Vibe coding不会消失,但会成为探索阶段的补充,也会一直存在.


好了,今天就到这里,下次来一起探索更多 Context Engineering 的内容

推荐阅读:

1: thenewstack.io/context-eng…

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

还有来自 Langhian 的视频,讲解了什么是 Context Engineering, 也推荐一看:

mp.weixin.qq.com/s/yv1uBQuW4…

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

Context Engineering LLM Prompt Engineering AI编程 系统设计
相关文章