Prompt 就是你打进 ChatGPT、Claude 或任何 LLM 的那段文字。定义就这么简单。它之所以有「prompt engineering」这个专属词,是因为小小的措辞差异会产生天差地远的回答 — 大多数人因为不知道该调整什么,白白放弃了一大块质量。
一个 prompt 里面到底有什么
你在 chat 框输入的时候,系统其实打包三件东西丢给模型:
- System prompt(产品设定的,你看不到) — 「你是 Claude,Anthropic 做的 AI 助理。回答要简洁谨慎……」这段塑造模型的语气和规则。
- 对话历史 — 这个对话里所有消息,包含模型之前的回答。
- 你刚输入的消息 — 也就是你刚打的这一段。
用 API 的时候三个你都能控;用 chat 产品时你通常只看得到第三个,但前两个仍然影响答案。
这件事很重要,因为如果你对话已经漂走了(本来在讨论食谱,现在问 Python),前面的 context 还是会影响答案。想要干净的回答,就开一个新对话。
什么样的 prompt 才是好 prompt
没有公式,但有四个杠杆持续会推动质量。
具体(specificity)。「帮我写一封营销邮件」得到的就是一封通用营销邮件。「写一封 120 字的营销邮件给某个 SaaS 分析工具的现有客户,公告 v2.0 下周二上线、唯一新功能是定时报告;语气友善但专业、不要感叹号」这样才会得到能用的东西。
**Context(背景)。**告诉模型它扮演什么角色、听众是谁、前因是什么。「你是一个资深文案,正在审我这份草稿。请毫不客气地指出哪里弱。」然后贴上草稿。
**格式。**直接讲明输出格式。「给我一张 markdown 表格,栏位:优点、缺点、什么时候适用」远比期待模型自己猜对版型来得好。
**示例。**这是最被低估的招式。给模型看一两个你想要的输入/输出示例。模型对于「从几个示例 pattern matching」非常擅长 — 比听抽象指令好用得多。两个精选示例,常常赢过 200 字的规则。
常见的失误
三个浪费时间的模式。
叫模型一次做太多事。「帮我写一份完整的 AI 宠物食品外送服务商业计划书」得到的会是模板答案。拆开:先市场分析、再竞品列表、再单位经济学、再 go-to-market。每一步的结果可以贴进下一个 prompt。
**没告诉模型该拒绝什么。**讲明「如果信息不够,请问我澄清问题,不要猜」。否则模型会把空白处用听起来合理的东西填满,而不是承认自己不知道。
用模糊的语气词。「再专业一点」 — 什么意思?更技术?更正式?句子更长?改成:「把口语缩写展开、把口头禅换成中性说法、控制在 200 字内」。
一个实用的 prompt 模板
任何非小事的请求,这个骨架都管用:
[角色或背景]
你是一个资深 PM,在审一份功能规格。
[任务]
读下面这份规格,按严重程度给我列出三个 scope 上的疑虑。
[限制]
- 每个疑虑:一句说问题、一句说影响。
- 不要提解法。
- 如果规格太模糊评不了,直接讲、然后问我三个澄清问题。
[格式]
用 markdown 编号列表。
[输入]
<贴上规格>
你不需要每次都填齐每个栏位,但脑中有这个模板,你会注意到自己漏掉了哪一块重要的。
什么时候不需要做 prompt engineering
闲聊用的 prompt(「上海哪家意大利餐厅好吃?」)直接打就好。优化 prompt 只在这几种场合划算:
- 你会重复跑同一类 prompt(模板、自动化、产品)
- 答案质量直接影响你的工作成果
- 你撞墙了,默认答案一直很糟
其他时候,自然地打、迭代。迭代就是 prompt engineering 的一半 — 你几乎不会从第一个消息就拿到最好的答案。读完回应,说一下你想要什么不一样的,模型会调整。
延伸阅读
- 什么是 LLM
- System prompt vs user prompt:谁说了算
- 什么是 context window
- 什么是 prompt injection、为什么危险
- Temperature、top-p、top-k 采样参数解释