概述
Prompt 工程(Prompt Engineering)是指通过设计和优化输入提示词,引导 AI 模型产生更准确、更有价值的输出的一系列技术方法。
在 LLM 时代,Prompt 是人类与 AI 沟通的唯一界面。同样的模型,优秀的 Prompt 和普通的 Prompt 效果差距可能达到 80% 以上。掌握 Prompt 工程,是每个人提升 AI 使用效率的必备技能。
为什么 Prompt 工程重要
模型能力取决于提问方式
LLM 的能力是通用的,但具体表现取决于如何使用。Prompt 就是决定因素:
| 问题类型 | 效果对比 |
|---|---|
| 模糊指令 | 输出泛泛,质量不稳定 |
| 清晰指令 | 输出精准,质量可预期 |
| 结构化 Prompt | 输出高质量,可复用 |
零成本高回报
| 优化方式 | 成本 | 效果提升 |
|---|---|---|
| Prompt 优化 | 零成本 | 30-100% |
| 模型微调 | 高(数据 +GPU) | 20-50% |
| 换用更大模型 | 高(API 费用) | 20-50% |
决定 AI 应用体验上限
在复杂 AI 应用中(Agent、RAG、多模态),Prompt 质量直接决定系统效果:
RAG 系统效果 = 检索质量 × Prompt 质量 × LLM 能力核心原则
清晰具体(Be Specific)
❌ 模糊指令:
“帮我写点东西”
✅ 清晰指令:
“帮我写一封求职邮件,应聘 Python 后端开发岗位,有 3 年经验,语气专业自信,控制在 300 字以内,包含:自我介绍、核心优势、求职动机、结尾呼吁”
技巧:
- 明确具体任务类型
- 说明目标受众
- 设定字数 / 格式限制
- 提供必要背景
提供上下文(Provide Context)
AI 不具备你的背景知识,需要你主动提供:
| 上下文类型 | 示例 |
|---|---|
| 用户背景 | ”用户是一位 35 岁的产品经理” |
| 场景描述 | ”用于公司内部技术分享” |
| 约束条件 | ”必须在 24 小时内完成” |
| 参考资料 | ”参考以下文档内容:…” |
指定输出格式(Specify Format)
明确告诉 AI 期望的输出形式:
✅ 明确格式要求:请按以下格式输出:1. 问题总结(不超过 50 字)2. 原因分析(3-5 条)3. 解决方案(按优先级排序)4. 预期效果
✅ 提供模板:输出格式:## 标题[内容]
## 要点- [要点 1]- [要点 2]分解复杂任务(Break Down)
不要试图一步到位,分解任务效果更好:
❌ 一步到位:"帮我分析这家公司并制定商业计划"
✅ 分步进行:1. "帮我总结这家公司的主要业务和产品"2. "分析该行业的市场规模和竞争格局"3. "评估该公司的竞争优势和劣势"4. "基于以上分析,制定一份商业计划"善用示例(Use Examples)
Few-Shot 提示让 AI 理解你的期望:
输入:今天很开心情绪标签:积极,强度:高
输入:考试考砸了情绪标签:消极,强度:高
输入:收到礼物情绪标签:[AI 填空]常用技巧
角色扮演(Role Assignment)
✅ 基础角色:你是一位资深 Linux 系统管理员。
✅ 进阶角色:你是一位在 Google 工作 10 年的资深 SRE(站点可靠性工程师),擅长:- 大规模分布式系统的设计与运维- Kubernetes 集群管理- 故障排查和性能优化- Shell 脚本和 Python 自动化回答时注重实用性,提供具体可操作的建议。角色设定要素:
- 专业领域
- 工作经验年限
- 擅长方向
- 性格特点
- 回答风格
思维链引导(Chain of Thought)
对于复杂推理任务,引导 AI 展示推理过程:
请按以下步骤分析这个问题:
Step 1: 理解问题- 明确核心需求- 识别关键约束
Step 2: 分析现状- 列出当前条件- 识别已知和未知
Step 3: 设计方案- 提出至少 2 种方案- 对比优劣
Step 4: 推荐方案- 说明推荐理由- 预估实施难度
Step 5: 风险评估- 识别潜在风险- 提出应对措施系统提示与用户提示分离
| 类型 | 说明 | 特点 |
|---|---|---|
| 系统提示 | 设定 AI 的角色、行为规范、知识边界 | 持久生效 |
| 用户提示 | 具体的任务指令 | 每次交互不同 |
系统提示:你是一位严谨的技术顾问,遵循以下原则:1. 事实必须有据可查2. 不确定时要明确说明3. 适当引用权威资料4. 指出可能的局限性
用户提示:帮我分析这个 Python 代码的性能问题:[paste code]约束条件(Constraints)
明确设定边界:
请生成代码,要求:- 使用 Python 3.9+- 包含完整的类型注解- 遵循 PEP 8 规范- 包含单元测试- 禁止使用第三方库(仅用标准库)- 代码行数不超过 200 行温度控制(Temperature)
| 温度值 | 特点 | 适用场景 |
|---|---|---|
| 0.0-0.2 | 极度确定性,一致性极高 | 代码生成、精确问答 |
| 0.3-0.5 | 确定性较强 | 技术文档、总结 |
| 0.6-0.7 | 平衡创造性与确定性 | 通用对话 |
| 0.8-1.0 | 创意性强,多样性高 | 创意写作、头脑风暴 |
你是一位创意作家,请以温度 0.9 创作一首关于春天的诗。你是一位严谨的工程师,请以温度 0.3 解释这个技术概念。分隔符与结构化
使用分隔符明确不同部分:
请分析以下代码:{paste code here}
要求:1. [具体要求 1]2. [具体要求 2]
输出格式:## 性能分析[内容]## 优化建议[内容]进阶技术
Few-Shot Learning(少样本学习)
通过示例让 AI 学习模式:
格式转换示例:
示例 1:输入:{"name": "张三", "age": 25}输出:姓名:张三,年龄:25 岁
示例 2:输入:{"city": "北京", "population": 21000000}输出:城市:北京,人口:2100 万
现在请转换:输入:{"country": "中国", "GDP": 179632700000000}输出:分类任务示例:
示例:文本:"这个产品太差了,完全是浪费钱"情感:消极
文本:"还行吧,一般般"情感:中性
文本:"太棒了!超出预期!"情感:积极
请分类:文本:"价格有点贵,但质量不错"情感:CoT(思维链)
让 AI 展示推理过程:
问题:小明有 10 个苹果,送给小红 3 个,又买了 5 个,现在有多少个苹果?
让我思考:1. 小明开始有 10 个苹果2. 送给小红 3 个,10 - 3 = 7 个3. 又买了 5 个,7 + 5 = 12 个答:现在有 12 个苹果。ToT(思维树)
在关键决策点探索多个分支:
问题:如何提高产品的用户留存率?
分支 1:产品优化- 优化用户体验- 增加新功能- 改进性能
分支 2:运营策略- 会员体系- 推送通知- 活动运营
分支 3:用户洞察- 用户调研- 数据分析- 竞品分析
请详细展开每个分支...ReAct(推理 + 行动)
交替进行推理和行动:
用户:帮我查一下比特币现在的价格
思考:我需要调用价格查询工具来获取实时数据行动:call_price_api("bitcoin")观察:当前价格 $67,432思考:用户可能还想知道价格变化趋势行动:call_price_api("bitcoin", include_history=true)观察:过去 24 小时上涨 3.2%最终回答:...Self-Consistency(自洽性)
多次采样,取多数答案:
问题:某公司有 100 名员工,男员工占 60%,女员工占 40%。如果再招聘 20 名员工,男女各 10 人,现在男员工占比是多少?
解法 1:100 人中男 60%,加 10 男后 (100+20) 人中男 70 人70/120 = 58.3%
解法 2:同解法 158.3%
解法 3:同解法 158.3%
结论:58.3%(三次求解一致)Prompt Chaining(提示链)
多步串联,上一步输出作为下一步输入:
Step 1 Prompt:请总结以下文章的核心观点(不超过 100 字):{文章内容}
Step 2 Prompt(使用 Step 1 的结果):基于以下总结,写一篇 500 字的文章:{Step 1 的结果}
Step 3 Prompt:基于以上文章,起草一份演讲稿,要求:- 时长约 5 分钟- 语言通俗易懂- 包含一个生动的故事指定输出长度
| 指令方式 | 说明 |
|---|---|
| 字数限制 | ”控制在 300 字以内” |
| 段落数量 | ”分成 3-5 个段落” |
| 要点数量 | ”列出 5 个核心要点” |
| 格式约束 | ”用一句话概括” |
常见错误与改进
| ❌ 错误做法 | ✅ 改进方法 |
|---|---|
| Prompt 过长,信息密度低 | 精简 prompt,突出关键信息 |
| 假设 AI 知道未提供的信息 | 提供完整上下文 |
| 模糊的评估标准 | 明确输出要求和评判标准 |
| 一次性要求太多内容 | 分步请求,逐步完善 |
| 不提供格式模板 | 给出输出格式示例 |
| 不说明受众是谁 | 明确目标读者 |
| 不设定边界和限制 | 说明约束条件 |
| 不给示例 | 提供 Few-Shot 示例 |
工程化实践
Prompt 版本管理
你是一位代码审查专家。审查以下代码并提出改进建议。代码:{code}
# prompts/review_code_v2.txt你是一位专注于安全漏洞的代码审查专家。请重点检查:1. SQL 注入风险2. XSS 漏洞3. 认证授权问题4. 数据加密
代码:{code}Prompt 测试框架
import json
test_cases = [ { "input": {"code": "SELECT * FROM users"}, "expected": "指出 SQL 注入风险", "temperature": 0.3 }, { "input": {"code": "password = '123456'"}, "expected": "指出密码强度问题", "temperature": 0.3 }]
def evaluate_prompt(prompt, test_cases): results = [] for case in test_cases: response = call_llm(prompt, case["input"], case["temperature"]) score = evaluate(response, case["expected"]) results.append(score) return sum(results) / len(results)Prompt 优化迭代
版本 1:简单 Prompt↓测试发现:输出格式不统一↓版本 2:添加格式要求↓测试发现:遗漏某些场景↓版本 3:添加示例(Few-Shot)↓测试发现:推理不够深入↓版本 4:添加思维链引导↓测试通过!常见场景模板
模板 1:代码审查
【角色】你是一位代码审查专家,OWASP 认证,10 年安全开发经验。
【任务】审查以下{语言}代码的安全问题。
【代码】```{语言}{代码}【要求】
- 识别所有安全漏洞
- 每个漏洞说明:类型、位置、风险等级、利用方式
- 提供修复代码
- 输出格式:
| 漏洞类型 | 代码位置 | 风险 | 修复建议 |
|---|
### 模板 2:技术文档撰写【角色】 你是一位技术文档工程师,擅长撰写清晰、结构化、有示例的文档。
【任务】 为以下功能撰写使用文档。
功能:{功能描述} 目标读者:{读者群体} 技术背景:{技术栈}
【要求】
- 结构:概述→快速开始→核心功能→API 参考→FAQ
- 包含至少 3 个使用示例
- 包含代码片段(可运行)
- 字数:1500-2000 字
### 模板 3:学习总结【角色】 你是一位知识梳理专家,擅长将复杂知识整理成易懂的体系。
【任务】 总结以下学习内容,提炼核心概念。
内容: {学习内容}
【要求】
- 提炼 5-8 个核心概念
- 每个概念包含:定义、举例、关联
- 找出概念之间的关系
- 提供学习路径建议
### 模板 4:会议纪要
【角色】你是一位专业的会议记录助手。
【任务】将以下会议内容整理成规范的会议纪要。
内容:{会议内容}
【要求】- 会议基本信息(时间、主题、参会人)- 讨论要点(按主题分组)- 决策事项(标注决策人)- 行动项:[负责人]+[截止日期]+[任务]
## 总结
Prompt 工程是每个人使用 AI 的必备技能。它的本质是 ** 学会更好地提问 **。掌握核心原则和常用技巧,能让你的 AI 效率提升数倍。记住:** 越清晰、越具体、越有结构的指令,AI 越能给出你想要的结果。**
## 关于我
| 项目 | 内容 ||------|------|| ** 编辑 ** | echowang || ** 来源 ** | echospace || ** 邮箱 ** | echohaoran@gmail.com || ** 简介 ** | AI 爱好者,专注于大语言模型应用与智能体开发,分享技术与实践心得 || ** 社交 ** | 欢迎交流讨论,共同成长 |
---Auth_Verified: 2026.03.21
