📄 提示词工程 🟡 进阶 ⏱ 10 分钟

🧱 结构化 Prompt 设计原则

从散文到模板:Role/Context/Task/Constraints/Examples 骨架 + 迭代优化闭环。

1

Prompt 怎么构建:分层叠加 v0→v4

🧱 靠谱 prompt 是叠出来的

不是一次写成,而是分层叠加。从最小可用版开始,一层层加,每一层解决上一层暴露的问题。

🎯 v0 核心三要素

• 任务:要模型做什么(总结/改写/写代码/推理)
• 输入:给什么材料
• 输出:要什么格式

例:「把下面这段会议记录总结成 3 条待办。」

v0 最小可用任务+输入+输出
➜
v1 加角色语境5年PM视角
➜
v2 加约束长度/语气/禁用项
➜
v3 加示例few-shot 1-3对
➜
v4 加推理链复杂任务 step by step
📈 每层解决上一层的痛点:v1 贴领域→v2 限边界→v3 立格式→v4 提推理
2

结构化骨架(记住这个模板)

🧱 结构化 = 固定区块的模板

把 prompt 从一段散文改成有固定区块的模板。

好处:可维护、可复用、对不同模型鲁棒性更好。

「区块之间职责分离」是关键。

📦 六大区块

>Role(角色)
Context(背景)
Task(任务)
Constraints(约束)
Examples(示例)
Input(输入)

XML 标签或 Markdown 标题 # 都行,思路一样。

🎬 非结构化 vs 结构化
❌ 非结构化
「你帮我看看这段代码有什么问题,我是新手,最好讲清楚点,改好给我。」——模型不知道你要什么形状的输出
✅ 结构化
资深后端工程师擅长 code review + 审查代码指出bug和性能问题给出修改版 + 按问题→原因→修复三段讲/假设读者是应届生/修改代码单独给
差距在哪
不在文采,在「模型知道你期待什么形状的输出」
3

设计原则

👑
角色放最前

设定基调,影响后面所有生成。

🔨
任务用动词+宾语

直接「总结/对比/提取」,别写「我希望你能…」这种模糊句式。

📋
约束用清单体

模型比读段落更容易遵守清单。

🔀
输入输出隔离

用 包住用户可变部分,其余是模板常量。

📐
格式声明放约束末尾

且用「正向描述 + 示例」双保险(输出 JSON 如下:{…})。

🔁
关键指令首尾重复

模型有近因偏差,结尾的话权重更高——易翻车的指令(务必输出 JSON 不含 markdown)首尾各说一次。

模型偏好
Claude吃 XML 标签很顺,官方推荐分块
GPT 系列Markdown + 编号清单 OK,few-shot 友好
国产(DeepSeek/通义/混元)结构化 + few-shot 有效,但超长 prompt 边际收益下降快,控制长度
4

怎么优化:迭代方法论

📚 固定测试集10-20 个真实 case 回归
➜
🔬 单变量改动一次只改一处
➜
🔧 调优杠杆few-shot/正向约束/角色
➜
🐛 bad case 分析错在哪类输入就补哪类
🔄 闭环:固定集→单变量→杠杆→补case→再回归

常见调优杠杆(按性价比排序):

① 加/换 few-shot 示例(收益最大)
② 否定约束改正向指令(不要啰嗦 → 输出≤100字)
③ 加角色 + 受众
④ 拆分复杂任务(一个 prompt 别想干三件事)
⑤ 末尾重复关键指令(近因偏差)

💡 经验法则:80% 的场景 few-shot + 清晰约束就够,不需要上 CoT 或复杂框架。

5

项目实战:智能问数 Agent 的 Text2SQL

🏢 场景

企业微信里的查数据 Agent:业务人员用自然语言查数据库(岗位/面经信息),Agent 自动生成 SQL 返回结果。

从 v0 到 v4 分层构建,准确率一路从 <30% 提到 85%+。

🗄️ 核心:嵌入 Schema

提效最明显的一步是让 Agent 知道数据库长什么样——Prompt 里嵌入完整数据库 Schema(表名/字段名/类型/注释/样例值)。

模型不再凭空捏造字段名。

版本核心改进准确率
v0最小可用(任务+输入+输出)< 30%
v1嵌入 Schema + 角色~ 50%
v2SQL 生成约束(必须 WHERE/地点过滤/LIMIT)~ 60%
v3Few-shot + 分 Agent~ 75%
v4错误恢复 + 空结果处理85%+
🐛
最大坑:语法对但语义错

90% 的查询错误不是 LLM 不行,是 Prompt 没写清字段归属,或上下文压缩压掉了关键约束。

🗄️
嵌 Schema + 样例值收益最大

让模型看过数据库长什么样,比任何约束都有效。

👥
分 Agent + 定制 Few-shot 第二大

岗位查询和面经查询各维护专属示例,Prompt 更精简聚焦。

➕
正面约束 > 负面约束

「必须包含 ×」比「不要遗漏 ×」有效 3 倍以上。

🛟
空结果恢复链被低估

空结果自动放宽条件重查,让空结果率从 15%+ 降到 7.5%。

一句话总结

结构化 Prompt 是把散文改成固定区块模板(Role/Context/Task/Constraints/Examples/Input),职责分离、可维护可复用。构建靠分层叠加 v0→v4,优化靠「固定测试集 + 单变量改动 + 调优杠杆 + bad case」闭环。80% 场景 few-shot + 清晰约束就够。Text2SQL 实战:嵌入 Schema 收益最大,分 Agent + 定制 Few-shot 次之,正面约束 > 负面约束。

🎤 面试问答 · 口语化回答
结构化 Prompt 是 AI 工程面试热点,这几问常被深挖:
面试官结构化 Prompt 的原则有哪些?
你

核心是把 prompt 从一段散文改成有固定区块的模板,关键是区块之间职责分离。骨架一般是 Role、Context、Task、Constraints、Examples、Input 六大块。设计上几个要点:角色放最前设定基调、任务用动词加宾语别写模糊句式、约束用清单体模型更容易遵守、输入输出隔离用 input 块包住用户可变部分、格式声明放约束末尾而且是正向描述加示例双保险、关键指令开头结尾各说一次因为模型有近因偏差。

💡 加分点:能背出六区块骨架 + 几条原则,说明你真的用结构化模板写过,不是泛泛而谈。
面试官Prompt 怎么迭代优化?
你

我的方法论是把它当可控实验而不是玄学。首先固定一个测试集,挑 10 到 20 个真实 case 做回归,不然改完 A 好了 B 坏了你发现不了;然后单变量改动,一次只改一处,换角色、加约束、改 few-shot 分开做,否则不知道哪条生效;接着用几个高性价比杠杆,按收益排是加 few-shot 最大、把否定约束改成正向指令、加角色和受众、拆分复杂任务、末尾重复关键指令;最后做 bad case 分析,看模型错在哪类输入上,补那种示例比泛泛改写有效。

💡 加分点:强调「固定测试集 + 单变量」这个实验纪律,是证明你专业的关键,比会背技巧加分得多。
面试官有没有实际项目的 Prompt 调优经验?
你

我在智能问数 Agent 上做过,就是把自然语言转 SQL 查企业微信数据库的场景。最大的坑是语法正确但语义错误,90% 的查询错误不是 LLM 能力不行,是 Prompt 没写清楚字段归属。我的调优杠杆按实际收益排:嵌入数据库 Schema 加样例值收益最大,让模型看过数据库长什么样比任何约束都有效;分 Agent 加定制 Few-shot 第二,每个 Agent 的 Prompt 更精简聚焦;正面约束替代负面约束,「必须包含×」比「不要遗漏×」有效 3 倍以上;还有空结果恢复链,自动放宽条件重查,让空结果率从 15% 多降到 7.5%。

💡 加分点:有具体项目 + 具体数字(空结果率 15%→7.5%)+ 具体案例,说明是真做过,可信度拉满。
📝 读完打卡 · 写下你的收获 读完了?来打卡吧
用一句话写下你从这篇学到的最大收获,检验自己是否真的懂了 👇
⏱ 00:00 🔥0分