← 返回列表
# 提示词工程 (Prompt Engineering) 已死:未来属于“模型路由”与“流程编排”
**发布日期:** 2026年4月 | **作者:** 明见万川 AI 实验室 | **分类:** Agent, AI 架构
> **摘要**:
> 2023年,我们像炼金术士一样,在 Prompt 里小心翼翼地加入“深呼吸”、“一步步思考”等魔法咒语,试图让 GPT-4 变得更聪明。
> 2025年,这种手动微调 Prompt 的做法正在变得不可持续。随着 **DSPy** 的出现和 **Agentic Workflows** 的普及,AI 开发的重心已经从“如何跟模型聊天”转移到了“如何设计系统架构”。
> 本文将论证:**提示词工程作为一门手艺(Craft)正在消亡,但作为一门工程(Engineering)正在重生。**
---
## 一、 为什么手动写 Prompt 是一条死胡同?
如果你维护过一个复杂的 RAG 系统,你一定经历过这种崩溃:
1. 你精心调教了一个 Prompt,让 GPT-4 完美回答了 A 类问题。
2. 为了修复 B 类问题的 Bug,你修改了 Prompt 的一句话。
3. 结果,A 类问题的回答突然崩了(Regression)。
4. 即使是同样的 Prompt,换成 Claude 3 或 Llama 3 后,效果完全不同。
这种**“脆弱性”**和**“不可迁移性”**,注定了手动 Prompt Engineering 无法支撑大规模的企业级应用。我们需要将 Prompt 视为**模型权重**的一部分,让算法去自动优化它,而不是人类。
---
## 二、 救世主 DSPy:从“写作文”到“写代码”
斯坦福大学推出的 **DSPy (Declarative Self-improving Language Programs)** 框架,彻底改变了这一现状。
### 2.1 核心理念
DSPy 的核心思想是:**你只需要定义“输入”和“输出”的签名(Signature),中间的 Prompt 长什么样,让 DSPy 里的“优化器(Optimizer)”通过少样本学习(Few-Shot)自己去编译出来。**
这就像 PyTorch:你定义神经网络层,PyTorch 帮你通过反向传播更新权重。在 DSPy 里,Prompt 就是权重。
### 2.2 代码实战:用 DSPy 重构 RAG
看看这段 Python 代码,你会发现**完全没有 Prompt 字符串**:
```python
import dspy
# 1. 定义签名 (Signature):告诉 DSPy 你想要什么
class GenerateAnswer(dspy.Signature):
"""根据上下文回答问题,答案要简练。"""
context = dspy.InputField(desc="可能会包含相关事实的文档片段")
question = dspy.InputField()
answer = dspy.OutputField(desc="针对问题的回答,少于50字")
# 2. 定义模块 (Module):类似于 PyTorch 的 nn.Module
class RAG(dspy.Module):
def __init__(self, num_passages=3):
super().__init__()
self.retrieve = dspy.Retrieve(k=num_passages)
self.generate_answer = dspy.ChainOfThought(GenerateAnswer) # 自动应用思维链
def forward(self, question):
context = self.retrieve(question).passages
prediction = self.generate_answer(context=context, question=question)
return dspy.Prediction(context=context, answer=prediction.answer)
# 3. 编译 (Compile):这一步是魔法发生的地方
# Teleprompter 会自动尝试不同的 Prompt 组合,利用训练集数据,
# 选出效果最好的那个 Prompt(可能包含你意想不到的 Few-Shot 示例)
from dspy.teleprompt import BootstrapFewShot
teleprompter = BootstrapFewShot(metric=dspy.evaluate.answer_exact_match)
compiled_rag = teleprompter.compile(RAG(), trainset=my_dataset)
```
**结果**:当模型升级(例如从 GPT-3.5 换到 GPT-4)时,你不需要重写 Prompt,只需要重新运行 `compile()`。
---
## 三、 Agentic Workflows:吴恩达眼中的未来
除了 Prompt 的自动化,另一个趋势是 **Agentic Workflows(智能体工作流)**。
吴恩达(Andrew Ng)曾指出:**“GPT-3.5 + 良好的 Agent 工作流,效果往往优于 GPT-4 直接回答。”**
### 3.1 四种核心设计模式 (Design Patterns)
1. **反思 (Reflection)**:
让模型先生成草稿,然后自己批评自己:“这段代码有 Bug 吗?”,最后根据批评修改草稿。
* *效果*:代码生成准确率大幅提升。
2. **工具使用 (Tool Use)**:
模型不只是回答,还能调用 Google Search、Python 解释器、数据库查询。
3. **规划 (Planning)**:
模型将复杂任务(“写一个贪吃蛇游戏”)拆解为子任务(“写UI”、“写逻辑”、“写控制”),并按顺序执行。
4. **多智能体协作 (Multi-agent Collaboration)**:
扮演“产品经理”的 Agent 写需求,扮演“程序员”的 Agent 写代码,扮演“测试”的 Agent 找 Bug。
### 3.2 编排工具:LangGraph
要实现这种复杂的循环和状态管理,传统的 LangChain 线性链条已经不够用了。我们需要 **LangGraph** 这样的图编排工具。
```python
from langgraph.graph import StateGraph, END
# 定义状态
class AgentState(TypedDict):
messages: Annotated[Sequence[BaseMessage], operator.add]
# 定义节点
def planner_node(state):
# ... 生成计划 ...
return {"messages": [plan]}
def executor_node(state):
# ... 执行代码 ...
return {"messages": [result]}
# 定义图
workflow = StateGraph(AgentState)
workflow.add_node("planner", planner_node)
workflow.add_node("executor", executor_node)
# 定义边 (循环逻辑)
workflow.set_entry_point("planner")
workflow.add_edge("planner", "executor")
workflow.add_conditional_edges(
"executor",
should_continue, # 判断函数:如果执行出错,回退给 planner;如果成功,结束
{
"continue": "planner",
"end": END
}
)
app = workflow.compile()
```
---
## 四、 模型路由 (Model Routing):经济学与智能的平衡
在 Agent 工作流中,不同的步骤需要不同的“智商”。
* **Router (路由器)**:使用极其便宜的模型(如 Claude 3 Haiku 或 微调过的 Llama-3-8B)来判断意图。
* **Planner (规划者)**:使用最高智商的模型(如 GPT-4o 或 Claude 3.5 Sonnet)来进行任务拆解。
* **Worker (搬砖者)**:使用中等模型(如 GPT-3.5 Turbo)来执行具体的代码补全或文本扩写。
通过**模型路由**,我们可以在保持系统整体智商上限的同时,将成本降低 60% 以上。
---
## 五、 MJMatrix 的技术雷达
在 MJMatrix 的技术演进路线中,我们已经明确了方向:
1. **De-emphasize Manual Prompting**:不再招聘专门的“提示词工程师”,转而培训全栈工程师使用 DSPy。
2. **Embrace Graphs**:所有的复杂业务逻辑,都从线性的 Chain 迁移到有环的 Graph (LangGraph) 上。
3. **Data-Driven**:建立自动化的评估集(Evaluation Set),让 Prompt 的优化变成一个基于指标(Metric-based)的自动化过程。
**Prompt Engineering 没有死,它只是变成了 System Engineering。** 以前我们在通过自然语言对模型进行“微操”,现在我们在通过代码对系统进行“编排”。这才是 AI 工程化的必经之路。
