2023 年,你得像写论文一样精雕细琢每一句 Prompt。2026 年,随便说一句话 AI 就能懂。不是魔法,是范式变了。
回看两年前的文章,那时候写 Prompt 恨不得把"身份、步骤、示例、输出格式"全塞进去,少一个环节结果就跑偏。最近用 DeepSeek V3 和 Claude 4.6,发现一句话扔过去,模型自动补全了你的意图、约束和格式要求,输出比当年精心设计的 Prompt 还好。
这不是模型变强了这么简单。是 AI 交互的底层范式,从 Prompt Engineering 迁移到了 Context Engineering。
一、三年,三个范式
如果你把 2022 年底 ChatGPT 发布至今的 AI 工程化进程铺开来看,大致可以切成三个阶段:
| 时间段 | 范式 | 关键词 | 核心逻辑 |
|---|---|---|---|
| 2022-2023 | Prompt Engineering | 提示词、身份、分步骤、示例 | 用精确的指令约束不可靠的模型 |
| 2024-2025 | Context Engineering | 上下文、RAG、代码库感知 | 补全背景信息,让模型在限定范围内回答 |
| 2025-2026 | Harness Engineering | MCP、Skills、Loop、规则围栏 | 给千里马装上马鞍和缰绳,确定性交付 |
1.1 Prompt Engineering 时代(2022-2023)
GPT-3.5 时期的模型,预训练数据虽然大,但推理能力和指令遵循能力都很弱。你让它写一段代码,它可能给你一段散文。你让它用 JSON 格式输出,它偏要加一段"这是您要的 JSON"的前言。
那时候的解法是:把 Prompt 写得像一份产品需求文档。身份界定("你是一个资深前端工程师")、任务分解("第一步做什么,第二步做什么")、输出约束("只输出 JSON,不要任何解释")、示例引导("比如输入 A 时输出 B")------每一项都不可或缺。少写一句,输出就翻车。
但问题也很明显:同样的 Prompt,换一个模型、换一个版本,甚至换一个时机,结果可能完全不同。本质上,Prompt Engineering 是在用工程手段弥补模型能力的不足,天花板很低。
1.2 Context Engineering 时代(2024-2025)
GPT-4、Claude 3.5、DeepSeek V3 这一代模型出来之后,局面变了。模型本身的推理和指令遵循能力大幅提升,不再需要你在 Prompt 里手把手教它每一步怎么做。
但新的问题也来了:模型虽然聪明,但它不知道你的具体情况。 不知道你的代码库是什么风格,不知道你的业务规则是什么,不知道你的用户画像是什么。它就像一个智商极高的陌生人,能力很强,但对你一无所知。
Context Engineering 的核心思路就是:在提问之前,先把该给的背景信息给足。 不是写更长的 Prompt,而是构建一个结构化的上下文系统。
举个最简单的例子------你让 AI 帮你研发一款夏季奶茶新品:
javascript
import 'dotenv/config';
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: process.env.DEEPSEEK_API_BASE_URL,
});
// 上下文的结构化设计
const context = {
// 背景:你是谁,做这件事的目的是什么
background: "大学附近的奶茶店老板,客户多是17-22岁学生,客单价15-20元",
// 约束:硬性条件
constraints: "夏季要清爽,成本控制在8元内",
// 输出要求:格式和交付标准
outputRequirements: "要颜值高(适合拍照发朋友圈),请输出JSON格式,包含饮料名、配料、成本、定价"
};
const systemPrompt = `
你是一个专业的饮品研发专家,请根据以下上下文信息完成任务。
【背景】 ${context.background}
【约束】 ${context.constraints}
【要求】 ${context.outputRequirements}
`;
async function generateNewTea() {
try {
const completion = await client.chat.completions.create({
model: process.env.DEEPSEEK_MODEL,
messages: [
{ role: "system", content: systemPrompt },
{ role: "user", content: "请开始你的研发设计" }
],
temperature: 0.7
});
const aiResponse = completion.choices[0].message.content;
console.log("\n AI 研发成果:");
console.log(aiResponse);
// 结构化输出校验
const jsonData = JSON.parse(aiResponse);
console.log("成功解析为JSON对象:", jsonData);
} catch (err) {
console.error(err.message);
}
}
generateNewTea();
这段代码本质上做了三件事:背景 (你是谁、做什么)、约束 (硬性条件边界)、输出规范(格式和交付标准)。三个维度构成一个结构化的 context 对象,注入到 system prompt 中。模型在这个框架内自由发挥,既不会跑偏,又能保持创造力。
注意 temperature: 0.7 和 JSON 解析的错误处理------上下文工程不只是在 prompt 里加东西,还包括代码层面的容错和校验。工程化意味着整个过程是可预期、可复现、可纠错的。
!结构化上下文的三层模型图:背景层、约束层、输出规范层
1.3 Harness Engineering 时代(2025-2026)
Claude Code、Codex、Cursor 等工具进入成熟期后,AI 工程化进入了第三个阶段。LLM 本身已经像一匹千里马------Claude 4.6、Gemini 3 的能力毋庸置疑。但千里马需要马鞍和缰绳,需要在指定的环境和场景中跑得又快又好。
Harness Engineering 的核心是给 LLM 装上"围栏":规则系统、安全边界、Loop 循环控制、Skills 能力模块、MCP 协议集成。类似传统软件工程中确定性交付的那一套方法论,终于被搬到了 AI 领域。
2025-2026 年,LLM 工程化终于成熟了。企业全面拥抱 AI 数字化,FDE(前端+AI 工程化)成为大量需要的岗位。
二、为什么现在的 Prompt 不用那么复杂了
回到最初的问题:为什么 2026 年写 Prompt 不用像 2023 年那样精雕细琢了?四个原因:
第一,LLM 更强了。 Claude 4.6、Gemini 3、DeepSeek V3 这一代模型,推理能力和指令遵循能力远超 GPT-3.5。很多以前需要 Prompt 里显式指定的东西,模型自己就能推断出来。你不需要告诉它"请一步一步思考",它自己会推理。
第二,AI 已经理解了人类的需求模式。 过去三年,全球用户与 AI 进行了数以千亿计的交互,积累了海量的 Prompt 数据。OpenAI、Google、Anthropic 在训练新一代模型时,用户的 Prompt 不是直接拿去生成回答的------模型会先自动优化你的提示词,补充你省略的约束和格式要求。AI 已经理解了人类常见的需求模式,就像经验丰富的同事,你说半句话他就知道你要什么。
第三,上下文技术成熟了。 Cursor 和 TRAE 这样的工具,不再依赖你写的 Prompt,而是直接把整个代码库作为上下文------技术架构、代码风格、功能模块、依赖关系------全部自动注入。你写一句"给这个函数加个错误处理",它知道你用的是 async/await 还是回调,知道你的项目用的是什么错误处理模式,生成出来的代码直接融入项目。
第四,上下文工程化了。 MCP 让 AI 可以访问外部数据源(数据库、API、文件系统),Skills 让 AI 拥有可复用的能力模块,Loop 让 AI 自动迭代直到输出满足质量标准。Prompt 不再是唯一的输入通道,而是整个上下文系统中的一个组件。
三、上下文工程到底是什么
Prompt Engineering 和 Context Engineering 经常被混为一谈,但它们的底层逻辑完全不同:
| 维度 | Prompt Engineering | Context Engineering |
|---|---|---|
| 核心动作 | 写一段精确的指令 | 搭建一个信息环境 |
| 关注点 | 怎么说(措辞、格式、示例) | 给什么(背景、约束、规则) |
| 典型手段 | 角色扮演、思维链、Few-shot | RAG、代码库索引、结构化配置 |
| 适用场景 | 单次对话、快速原型 | 持续协作、生产级应用 |
| 天花板 | 受限于单次 prompt 的信息量 | 可无限扩展上下文窗口 |
Context Engineering 的本质不是写一句提示词,而是为 AI 搭建一个包含"背景、约束、规则"的完整信息环境,目的是让 AI 准确、靠谱地完成任务。
RAG(检索增强生成)是上下文工程中最核心的应用场景。模型在回答之前,先去检索相关资料,把检索结果加到 prompt 里,让模型基于这些资料回答,而不是依赖预训练数据中可能过时或错误的信息。法律 AI 需要检索最新法规,医疗 AI 需要检索最新论文,客服 AI 需要检索订单和用户信息------这些都是上下文工程的典型落地。
但 RAG 只是上下文工程的一种实现方式。上下文工程还有一个更激进的形态:把整个代码库当上下文。Cursor 和 TRAE 的做法是,不依赖用户写 prompt,而是自动索引整个项目的技术架构、代码风格和功能模块。用户说一句"加个登录功能",AI 知道你的项目用的是什么框架、什么路由、什么认证方案,生成的代码直接融入现有架构。
四、上下文工程的完整数据流
把上下文工程拆开来看,一条完整的数据流是这样的:
markdown
用户 Prompt
↓
LLM 自动优化 Prompt(补充省略的约束和格式要求)
↓
上下文组装层:
- RAG 检索(外部知识库、文档)
- 代码库上下文(技术栈、代码风格、依赖关系)
- 结构化配置(背景、约束、输出规范)
- MCP 外部数据源(数据库、API)
↓
Transformer 生成
↓
Loop Engineering(自动迭代、质量检查)
↓
Harness Engineering(规则校验、安全围栏、Skills 调用)
↓
FDE 最终交付
每一步都有明确的工程化手段。Prompt 不再是"写一段话"这么简单,而是整个上下文系统中的一环。上下文越丰富,Prompt 越可以简洁------因为模型不需要你告诉它已经知道的东西。
五、实战:从一段 Prompt 到一个上下文系统
回到奶茶店那个例子。如果是在 Prompt Engineering 时代,你可能会写这样一段 Prompt:
json
你是一个饮品研发专家。我是大学附近的奶茶店老板,客户是17-22岁学生,客单价15-20元。
请帮我设计一款夏季新品,要清爽、成本控制在8元内、颜值高适合拍照。
请按以下格式输出:
{
"name": "饮料名",
"ingredients": ["配料1", "配料2"],
"cost": 成本,
"price": 定价
}
这段 Prompt 已经不错了,但问题在于:每次研发新品都要重新写一遍背景信息,而且背景信息写死在 Prompt 里,改一个参数就要改整个 Prompt。如果后续要加一条约束(比如"不使用含咖啡因的原料"),你得手动记住每次都要加。
上下文工程的思路是把这些信息结构化:
javascript
const context = {
background: "大学附近的奶茶店老板,客户多是17-22岁学生,客单价15-20元",
constraints: "夏季要清爽,成本控制在8元内",
outputRequirements: "要颜值高(适合拍照发朋友圈),请输出JSON格式,包含饮料名、配料、成本、定价"
};
function buildSystemPrompt(context) {
return `
你是一个专业的饮品研发专家,请根据以下上下文信息完成任务。
【背景】 ${context.background}
【约束】 ${context.constraints}
【要求】 ${context.outputRequirements}
`;
}
这样做的好处:
- 背景和 Prompt 分离。改背景信息不需要动 Prompt 模板,改 Prompt 模板不影响背景数据。
- 约束可动态扩展 。后续加一条
constraints,直接 push 进去,不用改模板。 - 可复用 。同一个
buildSystemPrompt函数,换一个 context 对象,就能适配不同场景。 - 可测试。context 是纯数据,可以单独校验;Prompt 模板是纯文本,可以单独管理版本。
这就是上下文工程化的核心思维:把信息从指令中剥离出来,让指令变成模板,让信息变成数据。
六、从上下文工程到 Harness 工程:AI 的最终形态
上下文工程解决了"让 AI 知道该知道的东西"的问题。但知道不等于做到------AI 的输出还需要经过校验、迭代和约束,才能达到生产级的确定性。
Harness Engineering 在上下文工程的基础上,增加了三层保障:
规则围栏。 定义 AI 绝对不能做的事。比如客服 AI 不能承诺退款金额、代码 AI 不能删除用户文件------这些是硬约束,写在规则层,凌驾于 Prompt 之上。
Loop 循环。 AI 生成的结果自动进入质量检查循环。不满足要求的自动重试,直到达标。比如代码生成后自动跑 lint 和测试,不通过就带着错误信息重新生成。
Skills 与 MCP。 Skills 是 AI 的可复用能力模块(比如"生成单元测试"、"分析代码复杂度"),MCP 是连接外部数据源的标准协议。两者结合,AI 的能力边界从"模型本身"扩展到"模型 + 工具 + 数据"。
这三层加上上下文工程,构成了当前 AI 工程化的完整图景:
vbnet
Harness Engineering(规则 + Loop + Skills/MCP)
↓
Context Engineering(RAG + 代码库 + 结构化配置)
↓
Transformer(LLM 核心推理)
↓
Loop Engineering(自动迭代 + 质量校验)
↓
Harness Engineering(规则校验 + 安全围栏)
↓
FDE 确定性交付
七、对开发者的启示
范式迁移从来不是突然发生的,它是一点一点渗透的。如果你还在用 2023 年的 Prompt Engineering 思路做 AI 开发,三个信号值得注意:
不要再花大量时间雕琢 Prompt 措辞了。 把精力放在梳理上下文结构上------你的业务背景是什么、硬性约束有哪些、输出标准是什么。把这些信息结构化,让 Prompt 模板保持简洁。
学会用上下文替代指令。 与其写"请用 async/await 风格",不如在上下文里告诉 AI 你的项目用的是 Node.js 20 + Express。AI 自己会推断出应该用 async/await。
关注 Harness 层的建设。 规则校验、Loop 循环、Skills 封装------这些才是 AI 应用从"玩具"到"产品"的关键一跃。上下文工程让 AI 知道该做什么,Harness 工程让 AI 确定性地做到。
| 阶段 | 核心问题 | 核心手段 |
|---|---|---|
| Prompt Engineering | 模型听不懂人话 | 精确指令、角色扮演、Few-shot |
| Context Engineering | 模型不知道背景 | RAG、代码库索引、结构化配置 |
| Harness Engineering | 模型输出不可控 | 规则围栏、Loop 循环、Skills/MCP |
用户 Prompt → LLM 自动优化 → 上下文技术 + MCP + Skills → Transformer 生成 → Loop Engineering + Harness Engineering → FDE(AI 工程落地)
这整条链路,就是 AI 工程化从 2023 到 2026 走过的路。现在的 AI 不再是一个需要你手把手教每句话的实习生,而是一个只要给足背景信息、装好规则围栏,就能独立完成复杂任务的工程系统。