跳到主要内容

Prompt 基础

本节定位

很多人第一次学 Prompt,会把它理解成:

  • 会不会写漂亮话
  • 会不会用一些神奇措辞

但真正更重要的问题其实是:

你有没有把任务说明清楚。

Prompt 工程的基础,不是修辞,而是任务表达。

学习目标

  • 理解 Prompt 真正控制的是什么
  • 理解为什么模糊 Prompt 会让模型输出飘
  • 学会从任务目标、输出格式、约束条件三层去写更稳的 Prompt
  • 建立 Prompt 调试的最基本直觉

一、Prompt 到底是什么?

1.1 不只是“输入一段文字”

从最表面看,Prompt 当然是你输入给模型的一段文本。
但从工程视角看,它更像:

你写给模型的任务说明书。

你真正通过 Prompt 在告诉模型的是:

  • 这次任务是什么
  • 要输出成什么形式
  • 需要遵守哪些边界

1.2 一个很直观的类比

Prompt 很像你给新同事下任务:

  • 目标写清楚没有?
  • 交付格式写清楚没有?
  • 有没有说明哪些事不能做?

如果这些都含糊,结果就很容易跑偏。
模型也是一样。


二、为什么“模糊 Prompt”特别危险?

2.1 一个典型坏例子

帮我处理一下这段内容。

这句话的问题不是礼貌不礼貌,而是:

  • 到底要总结?
  • 还是改写?
  • 还是分类?
  • 输出要多长?

2.2 一个稍微清楚一点的版本

请把下面内容总结成 3 条中文要点,每条不超过 20 个字。

一下子就明确了:

  • 做什么:总结
  • 输出形式:3 条要点
  • 输出长度:每条不超过 20 个字

这就是 Prompt 最基础的价值:

把模糊任务变成明确任务。


三、写 Prompt 时最基础的三层结构

3.1 第一层:任务目标

先回答:

  • 模型到底要做什么?

例如:

  • 总结
  • 分类
  • 抽取
  • 改写

3.2 第二层:输出格式

再回答:

  • 输出应该长什么样?

例如:

  • 一句话
  • 三条 bullet
  • JSON
  • 表格

3.3 第三层:约束条件

最后回答:

  • 哪些边界不能碰?

例如:

  • 不要编造
  • 不要输出解释
  • 只能根据给定资料回答

这三层就是 Prompt 工程最基础也最重要的骨架。


四、一个最小 Prompt 规格示例

prompt_spec = {
"task": "summary",
"output_format": "3 个中文要点",
"constraints": ["每条不超过 20 个字", "不要补充原文之外的信息"]
}

print(prompt_spec)

4.2 这个例子在教什么?

它在提醒你:

很多看起来不错的 Prompt,其实背后都有一份更清楚的任务规格。

也就是说,Prompt 不是纯靠灵感写出来的,而更像“把任务规格翻译成模型能理解的语言”。


五、一个真正能看出差别的例子

5.1 模糊版

请分析下面这段文本。

5.2 清晰版

请阅读下面文本,并完成情感分类。
只输出 positive 或 negative,不要输出其他解释。

5.3 为什么后者更稳?

因为它同时明确了:

  • 任务目标:情感分类
  • 输出集合:positive / negative
  • 输出约束:不要额外解释

所以 Prompt 真正的基础,不是“说得花”,而是:

说得准。


六、Prompt 基础为什么会影响后面所有章节?

因为后面你会继续遇到:

  • 结构化输出
  • Function Calling
  • Agent
  • RAG

这些能力虽然更复杂,但都离不开同一个前提:

  • 任务边界要清楚
  • 输出形式要清楚
  • 行为约束要清楚

所以 Prompt 基础不是一个孤立章节,而是后面很多系统能力的地基。


七、最常见的初学者误区

7.1 以为 Prompt 只是措辞优化

其实更重要的是任务结构。

7.2 只说任务,不说输出格式

这会让模型输出更不稳定,也让后处理更痛苦。

7.3 不写约束

模型一旦有发挥空间,就容易在不该发挥的地方发挥。


八、一个很实用的写 Prompt 习惯

每次写 Prompt 前,先在脑子里问自己:

  1. 我到底让模型做什么?
  2. 我想让它输出成什么样?
  3. 我最怕它在哪些地方做偏?

把这三个问题答清楚,Prompt 通常就已经比大多数“拍脑袋写”的版本稳很多了。


九、小结

这一节最重要的不是记住“Prompt”这个词,而是理解:

Prompt 的本质,是把任务目标、输出形式和边界条件表达清楚。

这就是后面所有 Prompt 工程能力的第一层基础。


练习

  1. 把“帮我处理一下这段内容”改写成一个更清楚的 Prompt。
  2. 想一个你自己的任务,并分别写出任务目标、输出格式和约束条件。
  3. 用自己的话解释:为什么说 Prompt 更像“任务说明书”?
  4. 为什么一个 Prompt 只写目标、不写输出格式,通常会让系统更不稳?