大模型工程三板斧:Prompt Engineering、Context Engineering 与 Harness Engineering


目录


一、背景与问题定义

在大模型应用开发中,一个核心问题是:

❓ 如何让大模型稳定、准确、可控地完成复杂任务?

工程实践中逐渐抽象出三层能力:

层级 解决问题
Prompt Engineering 如何“问”模型
Context Engineering 给模型“什么信息”
Harness Engineering 如何“组织模型完成任务”

二、Prompt Engineering(提示词工程)

2.1 定义

Prompt Engineering 是通过设计输入提示(Prompt),来引导模型生成符合预期输出的技术。

2.2 核心目标

  • 控制输出格式(JSON / Markdown)
  • 控制推理方式(是否分步思考)
  • 控制角色与风格

2.3 常见技术

(1)指令设计(Instruction)

1
你是一个Java面试官,请结构化回答问题

(2)Few-shot 示例

1
2
Q: 什么是线程安全?
A: ...

(3)思维链(Chain-of-Thought)

1
请一步一步推理再给出答案

(4)输出约束

1
请用JSON格式输出

2.4 优缺点

✅ 优点

  • 成本低,见效快
  • 无需改模型或系统

❌ 缺点

  • 不稳定(对输入敏感)
  • 无法补充模型知识盲区

2.5 一句话总结

Prompt Engineering 本质是在控制模型“怎么思考、怎么表达”。


三、Context Engineering(上下文工程)

3.1 定义

Context Engineering 是通过构造和管理输入上下文,使模型在回答前“拥有正确的信息”。

3.2 核心问题

  • 给多少上下文?
  • 给哪些内容?
  • 如何组织上下文?

3.3 核心技术

(1)RAG(检索增强生成)

流程:

1
用户问题 → 向量检索 → 相关文档 → 拼接上下文 → LLM回答

(2)Chunking(分块策略)

  • 固定长度分块
  • 语义分块
  • 滑动窗口

(3)上下文压缩

  • 摘要压缩
  • 重排序(Re-ranking)
  • 去重

(4)Memory 机制

  • 短期记忆(对话历史)
  • 长期记忆(向量库 / 数据库)

3.4 优缺点

✅ 优点

  • 弥补模型知识不足
  • 提升回答准确率

❌ 缺点

  • 上下文窗口有限
  • 检索质量决定上限

3.5 一句话总结

Context Engineering 本质是在控制模型“知道什么再回答”。


四、Harness Engineering(编排工程)

4.1 定义

Harness Engineering 是将大模型、多工具、多步骤组织成完整系统的工程能力。

4.2 核心能力

(1)多步推理(Multi-step)

  • Plan → Act → Reflect

(2)工具调用(Tool Use)

  • 搜索引擎
  • 数据库查询
  • API调用

(3)Agent循环(ReAct)

1
Thought → Action → Observation → Thought → ...

(4)错误处理

  • 重试(Retry)
  • 降级(Fallback)
  • 超时控制

(5)输出校验

  • JSON Schema校验
  • 格式纠错

4.3 示例流程

1
2
3
4
5
6
7
8
9
用户问题

LLM规划任务

调用搜索工具

获取结果

总结输出

4.4 优缺点

✅ 优点

  • 可构建复杂系统(Agent / Copilot)
  • 提高稳定性和可控性

❌ 缺点

  • 系统复杂度高
  • 调试成本高

4.5 一句话总结

Harness Engineering 本质是在控制模型“如何一步步完成任务”。


五、三者关系与分层架构

5.1 分层结构

1
2
3
4
5
6
7
应用层(Agent / RAG / Copilot)

Harness Engineering(流程编排)

Context Engineering(信息供给)

Prompt Engineering(表达控制)

5.2 类比理解

层级 类比
Prompt 提问方式
Context 提供资料
Harness 做题流程

5.3 关键结论(面试高频)

Prompt Engineering 是局部优化
Context Engineering 是信息优化
Harness Engineering 是系统级优化


六、典型系统设计(结合RAG / Agent)

6.1 RAG系统

1
2
3
4
5
6
7
用户问题

向量检索(Context)

Prompt拼接

LLM生成

👉 重点在:

  • Context Engineering

6.2 Agent系统

1
2
3
4
5
6
7
8
9
用户问题

任务规划(Prompt)

工具调用(Harness)

多轮推理

最终输出

👉 重点在:

  • Harness Engineering

七、面试高频问题与回答模板

❓问题1:三者有什么区别?

✅ 标准回答:

Prompt Engineering 主要解决如何设计输入,让模型输出更符合预期;
Context Engineering 解决的是给模型提供哪些信息;
Harness Engineering 则是从系统角度,组织模型和工具完成复杂任务。

❓问题2:哪个最重要?

✅ 推荐回答:

在简单任务中 Prompt 就够了,但在实际工程中,
Context Engineering 和 Harness Engineering 更关键,因为它们决定了系统的上限和稳定性。

❓问题3:RAG属于哪一层?

✅ 回答:

RAG主要属于 Context Engineering,但在实际系统中也会涉及 Harness(检索流程)和 Prompt设计。

❓问题4:Agent属于哪一层?

✅ 回答:

Agent主要属于 Harness Engineering,因为它涉及任务拆解、工具调用和多轮推理。


八、总结

Prompt Engineering -> 怎么问
Context Engineering -> 怎么记
Harness Engineering -> 怎么管