上下文工程Context Engineering是什么?和提示词工程有什么区别?

244 阅读3分钟

1、什么是上下文工程?

这几天在AI圈,一个新词频频刷屏: Context Engineering(上下文工程),就连大神 Karpathy 都为它站台!

图片

这个概念,其实是 Al Agent 发展到一定阶段的产物。

在大语言模型(LLM)早期,应用核心是“对话交互”:

用户写好 prompt→模型生成回答,也就是我们熟悉的Prompt Engineering(提示词工程)。

但随着 Al Agent 的兴起,AI 不再只是回答问题,而是能真正动手做事:

接收一个完整任务

自主思考、规划步骤、动态决策、调用工具

完成任务!

这个过程中,LLM 作为 Agent 的“大脑”,不再只依赖静态 prompt,而是需要动态掌握环境状态、工具信息、历史数据、任务目标等各种上下文信息。

图片

如果模型拿不到关键的信息,就可能“决策失误”,导致任务失败。

所以: 在合适的时机、用合适的格式,为LLM 准备好完成任务所需的所有相关信息,就成了 Agent 成败的关键。

这就是: Context Engineering!

2、上下文包含哪些信息?

一个 Al Agent 的上下文可能包括以下内容:

指令/系统提示词: 告诉 LLM 需要扮演什么角色、遵循哪些规则、输出什么格式,或者提供一些示例作为参考

用户提示词: 用户发出的具体问题或任务

短时记忆: 当前对话的历史信息(包括用户的提问和LLM 的回答)

图片

长时记忆: 跨不同对话积累的知识,如用户偏好、项目总结、任务经验等

外部信息(RAG) : 通过检索获得的实时信息,如文档、数据库或互联网内容

可用工具: LLM 可以调用的所有工具和函数

结构化输出: 对 LLM 输出格式的约定(如 JSON)

这些信息可能存储在不同的介质中,通过不同策略不同方式动态获取。

3、和提示词工程的区别

主要区别在于: Context Engineering 是一个系统工程不是简单设计一个提示词模板。

Prompt Engineering 的重点,是写好一个 prompt 模板,引导模型生成理想回答。

图片

而 Context Engineering,则需要在调用模型前,由Agent 系统动态构建出完成任务所需的全部上下文信息。

这个过程不仅包括:

确定什么时候准备上下文信息?

确定以什么格式给?

还涉及一系列复杂的工程决策,比如:

哪些信息该放进短时记忆 vs 长时记忆?

如何从记忆中取出与当前任务相关的信息,检索策略是什么?

如何裁剪/压缩内容,避免超出模型的 context window?

工具调用信息应该用什么样的数据结构展现给模型?

有些信息可能不在内部,需要从外部知识库或 API实时获取。

图片

4、如何实现上下文工程?

目前业界还没有统一标准,不同的 AlAgent 框架都有自己的上下文管理机制。

LangChain 这两天发布的一篇文章,总结了LangGraph 中支持的四种上下文管理和构建策略,或可作为参考:

Write Context(写入上下文)

把任务中产生的重要信息写入长时记忆、草稿板或状态对象中,存储在上下文窗口之外,供后续调用。

Select Context(选择上下文)

从草稿板、状态对象、长时记忆库或知识库中动态检索出当前任务相关的信息,填充进上下文窗口。

图片

Compress Context(压缩上下文)

对累积的上下文进行总结或修剪,只保留与当前任务相关的 token,避免超过上下文窗口限制。

lsolate Context(隔离上下文)

将复杂任务所需的上下文分区存储在状态对象、沙箱环境或多个子智能体中,避免信息干扰、保持结构清晰。

AI大模型学习