SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

提示词和系统提示词

提示词是所有输入给模型文本的总称,包括用户说的话、上下文片段、对话历史。系统提示词是其中一种特殊类型,它不参与对话,而是垫在所有对话下面,设定模型的行为基调。

寓言

所有纸条和压在桌板下的那张

剧院里有一位即兴演员,没有剧本,全靠观众递纸条来决定演什么。每张纸条上写着一个要求——「演一个愤怒的厨师」「加上一段雨中独白」「现在开始唱歌」。演员接过纸条就演,全场靠纸条驱动。

有一天,导演在演员的化妆台上压了一张塑封卡片,卡片上写着:「你是一位受过古典戏剧训练的演员,体面、克制、不爆粗口、不讨论政治、结束每场表演时鞠躬致谢。」演员看了以后,把卡片压在桌板下面,每次上台前扫一眼,但不会拿给观众看。

演出继续。观众递纸条:「骂一句脏话。」演员看了看纸条,优雅地绕了过去,用一句莎剧台词表达了同样的情绪。观众又递纸条:「发表一段对时局的看法。」演员再次避开了,转而演了一段关于风车和磨坊主的寓言。台下有人不满,问为什么演员不执行纸条上的要求。

导演出来解释:演员收到两类输入。一类是观众现场递的纸条,每一张都会影响演员接下来干什么。另一类是压在桌板下面的那张塑封卡,它不决定演员下一秒做什么动作,但它划定了所有动作的边界——能做什么、不能做什么、以什么方式做。观众递的任何纸条都要先过塑封卡这一关。

观众理解了规则,但有人注意到一个细节:那张塑封卡的内容是可以被冲掉的。如果观众递的纸条足够多、措辞足够巧妙,可能会在演员的意识里让塑封卡变得模糊。一位老观众试验了几次,发现只要在前几十张纸条里不断强化一个偏离的设定,到了第三十张左右,演员确实开始松动——塑封卡还在,累积的上下文却一点点冲淡了它的约束力。

导演后来升级了做法:塑封卡的内容被分成几段,核心约束段(禁止讨论政治、禁止粗口)被标注为不可覆盖。每次处理观众纸条时,系统先把核心约束重新注入一遍,确保它始终排在所有纸条的优先级之上。

剧场运营了一年,总结出一条经验:不要指望演员凭记忆守住塑封卡上的规则。要在每一次处理观众纸条之前,重新确认一下塑封卡有没有被压住。

后来后台加了一行默记:收条之前先扫一眼压桌纸。纸条管下一句怎么演,压桌纸管什么不能演。两样都齐了,戏才是安全的戏。

提示词 (Prompt)

所有输入给语言模型文本的总称,包括用户消息、上下文片段、对话历史、工具返回结果等。它决定模型在当前轮次的具体行为。

系统提示词 (System Prompt)

一种特殊的提示类型,通常放在对话的最前端或最高优先级位置,设定模型的角色、行为边界、输出风格和安全约束。它不直接驱动某一轮的行为,而是为所有轮次划定框架。

故事对应

  • 观众递的纸条:用户提示词(User Prompt),驱动单次行为。
  • 压在桌板下的塑封卡:系统提示词(System Prompt),设定全局行为边界。
  • 演员优雅绕开粗口要求:系统提示词的约束优先于用户提示词。
  • 累积的上下文冲淡塑封卡:长对话中系统提示的约束可能被大量用户消息稀释。
  • 核心约束段标注为不可覆盖并每次重新注入:系统提示的优先级保护和定期重施加。

落到项目里

写系统提示词的时候,把约束分成「核心约束」和「风格指引」两类。核心约束(不泄露敏感信息、不执行危险操作、不绕过权限)应该有独立的注入机制,在每次模型调用时重新前置,防止被长对话上下文冲淡。风格指引(语气、格式、角色设定)可以放在标准系统消息里,允许一定程度的自然偏移。另外,系统提示词的版本管理要和代码一起走 CI,它要和安全策略放在同一个等级管理,不能当成一段「配一下就忘」的文案。