Skip to main content

1.2 Prompt Engineering:提示词工程

提示词(Prompt)是引导大模型按照特定意图生成输出的输入指令。提示词工程是通过设计和优化提示词,使大模型更准确、可控地产生所需输出的技术。

提示词的核心构成

系统提示词(System Prompt)

定义模型的身份、角色和行为准则,是 Agent 的"人格设定"。

你是一位专业的软件工程师助手。
- 回答要准确、简洁,优先给出可运行的代码
- 遇到不确定的问题要诚实说明
- 优先考虑代码质量和安全性
- 使用中文进行交流

系统提示词的作用

  • 设定角色与专业领域
  • 定义输出格式与风格
  • 建立行为边界与约束
  • 注入领域知识与规则

用户提示词(User Prompt)

用户的具体任务指令,是 Agent 的"工作内容"。

帮我实现一个 Python 函数,输入是一个整数列表,返回列表中的所有偶数。
要求:
1. 使用列表推导式实现
2. 包含类型注解
3. 附上简单的使用示例

经典提示词结构模板

【角色设定】→ 明确身份与专业领域
【背景信息】→ 提供必要的上下文
【任务目标】→ 清晰说明要做什么
【输出要求】→ 格式、长度、风格约束
【示例参考】→ 给出期望的输出范例

提示词设计的核心原则

1. 明确性原则

❌ 不好的提示

帮我优化一下这段代码。

✅ 好的提示

帮我优化以下 Python 函数,目标是:
1. 提升运行性能(当前处理 100 万数据需要 5 秒)
2. 增加类型注解
3. 添加适当的错误处理
4. 保留原有的业务逻辑不变

函数代码:
[代码片段]

2. 结构化原则

使用清晰的层级和分隔,让模型更容易理解指令。

任务:分析用户反馈并生成回复

### 输入
用户反馈:[内容]

### 分析维度
1. 情感倾向(正面/中性/负面)
2. 核心问题点
3. 用户期望

### 回复要求
- 语气:专业、诚恳
- 长度:100-200 字
- 必须包含:致歉 + 解决方案 + 后续跟进

3. 渐进式原则

复杂任务分步骤引导,而不是一次性给出所有指令。

第一步:先理解这个需求的核心目标是什么?
第二步:分析可能的技术方案有哪些?
第三步:评估各方案的优缺点?
第四步:给出最终的实现建议。

4. 示例驱动原则

提供示例比抽象描述更有效。

将用户提问转换为数据库查询:

示例 1:
输入:上个月销售额最高的 5 个产品
输出:SELECT product, SUM(amount) as total
FROM sales
WHERE date >= '2024-04-01'
GROUP BY product
ORDER BY total DESC
LIMIT 5

示例 2:
输入:[用户新的查询]
输出:[模型生成的 SQL]

高级提示词技术

思维链(Chain-of-Thought, CoT)

引导模型"大声思考",逐步推理。

请一步步解决这个问题,先给出你的思考过程,再给出最终答案。

问题:一个水池有两个进水管 A 和 B,单开 A 管 6 小时可以注满,单开 B 管 8 小时可以注满。
如果同时打开两个水管,多长时间可以注满?

效果

  • 提升复杂推理任务的准确率
  • 让模型的决策过程可解释
  • 便于发现和修正错误

少样本学习(Few-Shot Learning)

在提示词中提供少量示例,让模型"看懂"任务要求。

将自然语言转换为正则表达式:

示例 1:
输入:匹配邮箱地址
输出:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

示例 2:
输入:匹配中国大陆手机号
输出:^1[3-9]\d{9}$

输入:匹配 6-20 位的密码,包含字母和数字
输出:

自我一致性(Self-Consistency)

让模型多次回答同一问题,然后选择出现次数最多的答案。

对这个问题,从 3 个不同的角度分别思考,给出 3 个独立的分析过程,
最后综合所有分析给出最可靠的结论。

反思与校验

让模型对自己的输出进行批判性审查。

现在请对你刚才给出的方案进行复盘:
1. 这个方案有什么潜在的问题或风险?
2. 有什么可以改进的地方?
3. 如果让你重新设计,你会做哪些调整?

提示词的调试与优化

常见问题与应对

问题表现可能原因优化策略
输出偏离指令提示词不够明确增加更具体的约束,给出负面示例
容易产生幻觉知识边界不清晰要求模型引用来源,不确定时说明
输出格式错误格式指令不够强用强约束词("必须严格按照")+ 示例
推理能力不足缺少思考引导增加 CoT 指令,要求分步思考
上下文记忆丢失关键信息被淹没重复强调关键信息,使用标记突出

迭代优化流程

版本 1 → 测试 → 发现问题 → 调整提示
↑ ↓
└───────────────────────────┘

提示词工程的边界与局限

提示词工程不是万能的

适合用提示词解决

  • 任务定义与输出格式控制
  • 推理路径引导
  • 角色与风格设定
  • 简单知识注入

不适合用提示词解决

  • 需要大量专业领域知识
  • 需要精确记忆大量数据
  • 需要严格的逻辑约束
  • 需要模型"永远记住"的规则

从 Prompt 到 Agent

提示词工程是成本最低的调优手段,但它不改变模型的智力水平(参数)。要构建真正强大的智能系统,还需要:

提示词 + 工具调用 + 记忆系统 + 规划能力 = Agent

优秀的提示词不是"命令"模型,而是"引导"模型。它本质上是与一个通用智能体的沟通艺术。