Skip to content

十四、Prompt Engineering

← 上一章:十三、资源导航 | 返回总览 | 下一章:十五、端到端实战项目 →]

Prompt Engineering(提示词工程)是与大模型交互的核心技能——同一个模型,不同的提示词可以产出天差地别的结果。掌握提示词技巧,比切换更贵的模型更有效。

核心原则

原则说明示例
明确具体模型不会读心,越具体越好"写一封 200 字的邮件" > "写个邮件"
给示例Few-shot 比纯指令更稳定给 1-2 个输入输出样例
分步引导复杂任务拆成步骤"第一步...第二步...第三步..."
指定角色角色设定影响输出风格"你是一位资深 Python 架构师"
指定格式明确输出格式"用 JSON 格式返回,字段包含 name, age, role"

常用提示词框架

1. CRISPE 框架

要素含义示例
Capacity角色能力你是一位数据分析专家
Role具体角色负责分析电商用户行为数据
Insight背景信息数据来自某电商平台的 2026 年 Q1 交易记录
Statement具体任务找出复购率下降的 3 个可能原因
Personality输出风格用简洁的要点列表,附数据支撑
Experiment输出格式每个原因包含:现象→数据证据→建议

2. RISEN 框架

要素含义示例
Role角色你是一位 DevOps 工程师
Instructions指令编写一个 Docker Compose 配置
Steps步骤1. 定义服务 2. 配置网络 3. 设置卷挂载
Expectations期望支持 MySQL + Redis + Node.js 三服务
Narrowing约束不使用 latest 标签,所有服务限制内存 512M

3. 少样本(Few-Shot)

不解释规则,直接给示例让模型模仿:

将以下产品评论分类为"正面"或"负面":

评论:这个手机拍照效果超好!→ 正面
评论:电池续航太差了 → 负面
评论:屏幕很清晰但系统有点卡 → 负面
评论:物流快,包装好 → 正面

评论:这款耳机音质不错但降噪一般 →

高级技巧

思维链(Chain of Thought)

让模型"一步一步思考",显著提升推理准确率:

请一步一步分析以下问题:
某公司 2026 年 Q1 营收 500 万,Q2 环比增长 20%,
Q3 环比下降 10%,Q3 营收是多少?

进阶:可以用 "Let's think step by step" 触发 CoT,也可以在示例中展示推理过程。

自我反思(Self-Reflection)

让模型检查自己的输出:

请写一个 Python 函数计算斐波那契数列。

写完后,请:
1. 检查边界条件是否处理正确
2. 检查是否有性能问题
3. 如有问题,修正后重新输出

结构化输出

明确要求 JSON/Markdown 表格等格式,便于程序解析:

请分析以下技术的优缺点,用 JSON 格式输出:

{
  "technology": "RAG",
  "pros": ["...", "..."],
  "cons": ["...", "..."],
  "best_for": "..."
}

系统提示词(System Prompt)

设定模型的全局行为,比用户消息更持久:

你是一个代码助手,遵循以下规则:
1. 永远使用 Python 类型注解
2. 函数必须有 docstring
3. 优先使用标准库,减少第三方依赖
4. 错误处理使用自定义异常类

常见陷阱

陷阱问题解决方案
指令模糊"帮我优化一下" → 输出不可控明确优化目标:"将查询时间从 5s 降到 1s 以内"
负面指令失效"不要用 JSON" → 模型可能仍用用正面指令替代:"使用 YAML 格式"
上下文过长塞入太多信息,模型忽略关键部分只提供必要上下文,用分步代替一次性
过度约束10 条规则互相矛盾规则不超过 5 条,按优先级排列
忽略温度创意任务用 temperature=0事实性任务 temperature=0,创意任务 0.7-1.0

Prompt Engineering 与其他章节的关系

章节关联
Skill(5)SKILL.md 本质就是结构化的 System Prompt
RAG(9)检索结果拼接到 prompt 中,拼接策略直接影响 RAG 效果
Agent(8)Agent 的指令遵循能力取决于 prompt 质量
CLI(4)Claude Code 等 CLI 工具的对话即 prompt 交互
Vibe Coding(12)Vibe Coding 的核心技能就是写好 prompt

延伸学习

基于 CC BY-NC-SA 4.0 发布