7.5.2 Prompt 基础

很多人第一次学 Prompt,会把它理解成:
- 会不会写漂亮话
- 会不会用一些神奇措辞
但真正更重要的问题其实是:
你有没有把任务说明清楚。
Prompt 工程的基础,不是修辞,而是任务表达。
学习目标
- 理解 Prompt 真正控制的是什么
- 理解为什么模糊 Prompt 会让模型输出飘
- 学会从任务目标、输出格式、约束条件三层去写更稳的 Prompt
- 建立 Prompt 调试的最基本直觉
新人先掌握 / 进阶再理解
如果你是新人,这一节先抓住一句话:Prompt 不是“咒语”,而是任务说明书。先把“做什么、输出成什么样、不能做什么”三件事写清楚,比背很多技巧更重要。
如果你已经有经验,可以进一步关注:Prompt 是否能被程序稳定解析,是否能约束模型不要越界,是否能和结构化输出、Function Calling、RAG、Agent 的执行链路接起来。
先建立一张地图
如果你已经学过大模型概览和预训练主线,这一节最自然的续接就是:
- 前面你已经知道模型能力从哪里来
- 这一节开始回答:不改模型参数时,我们怎样更稳定地调动这些能力
所以 Prompt 基础不是“小技巧”,而是在回答:
- 如何通过更清楚的任务表达,把已有模型能力更稳地释放出来
Prompt 基础这节最适合新人的理解顺序不是“先学几个技巧”,而是先看清:
所以这节真正想解决的是:
- 任务到底有没有说清楚
- 模型到底知不知道要交付成什么样
- 哪些边界必须提前写死
一、Prompt 到底是什么?
不只是“输入一段文字”
从最表面看,Prompt 当然是你输入给模型的一段文本。 但从工程视角看,它更像:
你写给模型的任务说明书。
你真正通过 Prompt 在告诉模型的是:
- 这次任务是什么
- 要输出成什么形式
- 需要遵守哪些边界
一个很直观的类比
Prompt 很像你给新同事下任务:
- 目标写清楚没有?
- 交付格式写清楚没有?
- 有没有说明哪些事不能做?
如果这些都含糊,结果就很容易跑偏。 模型也是一样。
一个更适合新人的总类比
你也可以把 Prompt 理解成:
- 给一个很能干、但不会读心术的实习生下任务
这个实习生本身能力不错, 但如果你只说:
- “你帮我弄一下”
那结果大概率会飘。 问题不在于他不聪明, 而在于:
- 你没把目标、格式和边界交代清楚
第一次学 Prompt,最该先抓住什么?
最该先抓住的不是几个流行套路,而是这句:
Prompt 的本质,是把任务规格翻译成模型能执行的说明。
一旦这句稳住了,后面你再看:
- few-shot
- 角色设定
- 结构化输出
就会更自然地先问:它到底是在补任务目标、输出格式,还是行为边界。
二、为什么“模糊 Prompt”特别危险?
一个典型坏例子
帮我处理一下这段内容。
这句话的问题不是礼貌不礼貌,而是:
- 到底要总结?
- 还是改写?
- 还是分类?
- 输出要多长?
一个稍微清楚一点的版本
请把下面内容总结成 3 条中文要点,每条不超过 20 个字。
一下子就明确了:
- 做什么:总结
- 输出形式:3 条要点
- 输出长度:每条不超过 20 个字
这就是 Prompt 最基础的价值:
把模糊任务变成明确任务。
再看一个“坏 Prompt -> 好 Prompt”的最小对比表
| 版本 | Prompt | 问题或优点 |
|---|---|---|
| 坏版本 | 帮我处理一下这段内容。 | 任务、格式、边界都不清楚 |
| 好一点 | 请总结这段内容。 | 知道要总结,但格式还不清楚 |
| 更稳版本 | 请把下面内容总结成 3 条中文要点,每条不超过 20 个字,不要补充原文之外的信息。 | 任务、格式、约束都清楚 |
这个表特别适合新人,因为它会让你看见:
- Prompt 变稳,不是靠神秘词汇
- 而是靠规格越来越清楚
三、写 Prompt 时最基础的三层结构
第一层:任务目标
先回答:
- 模型到底要做什么?
例如:
- 总结
- 分类
- 抽取
- 改写
第二层:输出格式
再回答:
- 输出应该长什么样?
例如:
- 一句话
- 三条 bullet
- JSON
- 表格
第三层:约束条件
最后回答:
- 哪些边界不能碰?
例如:
- 不要编造
- 不要输出解释
- 只能根据给定资料回答
这三层就是 Prompt 工程最基础也最重要的骨架。
为什么这三层结构特别值得先记?
因为很多看起来“写得不错”的 Prompt,最后不稳定,往往就卡在:
- 任务目标含糊
- 输出格式没写清
- 约束条件漏掉了
所以新人第 1 站最稳的做法不是堆技巧,而是把这三层先写完整。
第一次写 Prompt 时,最稳的默认顺序
更稳的顺序通常是:
- 先写“要做什么”
- 再写“输出长什么样”
- 再写“不能做什么”
- 最后才去调整语气、风格和角色
这样会比一开始就写:
- 你是一位资深专家...
这类角色设定更稳,因为最基础的任务规格先站住了。

可以把这张图当成一个小职场故事来看:模糊请求会让模型猜;清楚的任务简报会告诉模型目标、交付格式和边界。所以好 Prompt 更像任务卡,而不是神秘咒语。
四、一个最小 Prompt 规格示例
prompt_spec = {
"task": "summary",
"output_format": "3 个中文要点",
"constraints": ["每条不超过 20 个字", "不要补充原文之外的信息"]
}
print(prompt_spec)
预期输出:
{'task': 'summary', 'output_format': '3 个中文要点', 'constraints': ['每条不超过 20 个字', '不要补充原文之外的信息']}
这个例子在教什么?
它在提醒你:
很多看起来不错的 Prompt,其实背后都有一份更清楚的任务规格。
也就是说,Prompt 不是纯靠灵感写出来的,而更像“把任务规格翻译成模型能理解的语言”。
再看一个最小“Prompt 检查表”示例
prompt_checklist = {
"task_defined": True,
"output_format_defined": True,
"constraints_defined": False,
}
def next_fix(checklist):
if not checklist["task_defined"]:
return "先把任务目标写清楚。"
if not checklist["output_format_defined"]:
return "先把输出格式写清楚。"
if not checklist["constraints_defined"]:
return "先补上边界和限制条件。"
return "基础 Prompt 规格已经比较完整。"
print(next_fix(prompt_checklist))
预期输出:
先补上边界和限制条件。
这个示例很适合初学者,因为它把 Prompt 从“写一句话”变成了:
- 一份可检查的任务规格

这张图把 Prompt 拆成三层:任务目标、输出格式、约束边界。新人先别急着加角色设定或高级技巧,先确认这三层有没有写清楚;很多不稳定输出,其实只是任务规格缺了一层。
五、一个真正能看出差别的例子
模糊版
请分析下面这段文本。
清晰版
请阅读下面文本,并完成情感分类。
只输出 positive 或 negative,不要输出其他解释。
为什么后者更稳?
因为它同时明确了:
- 任务目标:情感分类
- 输出集合:positive / negative
- 输出约束:不要额外解释
所以 Prompt 真正的基础,不是“说得花”,而是:
说得准。
六、Prompt 基础为什么会影响后面所有章节?
因为后面你会继续遇到:
- 结构化输出
- Function Calling
- Agent
- RAG
这些能力虽然更复杂,但都离不开同一个前提:
- 任务边界要清楚
- 输出形式要清楚
- 行为约束要清楚
所以 Prompt 基础不是一个孤立章节,而是后面很多系统能力的地基。
后面会反复遇到的术语
| 术语 | 新人友好的解释 | 为什么和 Prompt 基础有关 |
|---|---|---|
| Prompt | 发给模型的指令、上下文、示例和约束 | 它就是模型的任务简报,表达不清楚,行为就容易不清楚 |
| 结构化输出 | 按 JSON、表格、固定字段等稳定格式输出 | 产品通常需要可解析的数据,而不只是好看的自然语言段落 |
| Function Calling | 让模型选择工具或函数,并填写参数的机制 | 模型必须理解任务边界和需要填写的参数 |
| RAG | Retrieval-Augmented Generation,先检索外部资料,再基于资料回答 | Prompt 会告诉模型如何使用检索材料,以及不要编造无来源内容 |
| Agent | 模型会规划、调用工具、观察结果并继续执行的系统 | 每一步都需要清楚的目标、允许动作和停止规则 |
七、最常见的初学者误区
以为 Prompt 只是措辞优化
其实更重要的是任务结构。
只说任务,不说输出格式
这会让模型输出更不稳定,也让后处理更痛苦。
不写约束
模型一旦有发挥空间,就容易在不该发挥的地方发挥。
如果把它做成项目或笔记,最值得展示什么
最值得展示的通常不是:
- “我会写 Prompt”
而是:
- 一个坏 Prompt
- 一个改良版 Prompt
- 你具体补了哪层规格
- 输出为什么因此变稳
这样别人会更容易感觉到:
- 你理解的是任务表达
- 不只是背了几个 Prompt 技巧名词
八、第一次写 Prompt 时最稳的顺序
可以直接按这个顺序来:
- 先写任务目标
- 再写输出格式
- 再写限制条件
- 最后才去改措辞和风格
这样会比一开始就堆角色设定和技巧稳定很多。
九、核心提醒
- Prompt 的核心不是修辞,而是任务表达
- 基础 Prompt 先把“做什么、怎么交付、不能做什么”讲清楚
- 后面所有高级 Prompt、结构化输出、Agent,其实都建立在这层基础上
十、一个很实用的写 Prompt 习惯
每次写 Prompt 前,先在脑子里问自己:
- 我到底让模型做什么?
- 我想让它输出成什么样?
- 我最怕它在哪些地方做偏?
把这三个问题答清楚,Prompt 通常就已经比大多数“拍脑袋写”的版本稳很多了。
这一节的学习闭环
学完这一节后,可以用下面这张表检查自己:
| 层次 | 你应该能做到什么 |
|---|---|
| 直觉 | 能解释为什么 Prompt 更像任务说明书,而不是神奇咒语 |
| 写法 | 能把一个模糊请求拆成任务目标、输出格式和约束条件 |
| 调试 | 能判断一次输出不稳定,是目标不清、格式不清,还是边界没写清 |
| 后续连接 | 能说明 Prompt 为什么会影响结构化输出、Function Calling、RAG 和 Agent |
小结
这一节最重要的不是记住“Prompt”这个词,而是理解:
Prompt 的本质,是把任务目标、输出形式和边界条件表达清楚。
这就是后面所有 Prompt 工程能力的第一层基础。
练习
- 把“帮我处理一下这段内容”改写成一个更清楚的 Prompt。
- 想一个你自己的任务,并分别写出任务目标、输出格式和约束条件。
- 用自己的话解释:为什么说 Prompt 更像“任务说明书”?
- 为什么一个 Prompt 只写目标、不写输出格式,通常会让系统更不稳?