Prompt Engineering vs Context Engineering
很多人学到 Prompt Engineering 之后,会自然追问一句:那 Context Engineering 又是什么,它和 Prompt 到底差在哪里?
这篇笔记就是专门用来回答这个问题的。
1. 先看一句最简定义
Prompt Engineering:优化“怎么问”Context Engineering:优化“给模型什么信息去回答”
这两个方向紧密相关,但关注层级不一样。
2. 一个直观类比
假设你在给一个新同事分配工作。
2.1 Prompt Engineering 像什么
像你写任务单时,尽量把话说清楚:
- 任务目标是什么
- 需要几个步骤
- 输出格式是什么
- 语气和风格如何
也就是“这件事你要怎么说”。
2.2 Context Engineering 像什么
像你在任务开始前,把这位同事完成工作所需的资料都准备好:
- 需求背景
- 历史讨论记录
- 相关文档
- 当前进度
- 工具权限
- 参考案例
也就是“这件事你要给他哪些材料和环境”。
3. 二者分别解决什么问题
3.1 Prompt Engineering 解决的问题
- 指令不清楚
- 风格不稳定
- 输出格式不统一
- 任务边界模糊
- 模型不知道该按什么方式回答
3.2 Context Engineering 解决的问题
- 模型缺少必要信息
- 历史对话太长太乱
- 外部知识没有正确注入
- 工具结果没有被有效利用
- 长任务缺少状态延续
- 上下文里噪音太多
4. 典型关注点对比
| 维度 | Prompt Engineering | Context Engineering |
|---|---|---|
| 核心问题 | 怎么写 prompt | 怎么组织模型输入环境 |
| 关注对象 | 指令、示例、格式 | 历史、知识、工具、状态、记忆 |
| 典型技术 | Few-shot、CoT、Role Prompting | RAG、摘要、裁剪、记忆、状态管理 |
| 主要目标 | 让模型按预期回答 | 让模型拿到足够且相关的信息 |
| 常见失败原因 | 指令模糊、格式不清 | 信息缺失、噪音过多、顺序混乱 |
| 典型场景 | 单轮任务、输出控制 | 长任务、多轮对话、Agent 系统 |