跳到正文
docai.cc

DOCAI · 课程 · L2 · 25 分钟

写一条能复用的系统提示

系统提示不是越长越好。这一课给一个四段结构,说明什么该写进去、什么必须放到代码里,以及怎么用五条输入验证它。

你将学会

  • 用四段结构写出一条系统提示
  • 分清哪些规则该写进提示、哪些必须由代码控制
  • 用五条边界输入验证提示不会跑偏

四段结构

[身份]   你是什么角色,服务谁
[任务]   要完成什么,输出给谁看
[规则]   必须遵守的约束(3–6 条,按重要性排)
[格式]   输出长什么样(有固定格式就给样例)

按这个顺序写,是因为模型对靠前的内容更敏感。规则放中间, 格式放最后,读起来也顺。

什么该写进去

  • 语气和详略:对客户、对内部、对老板,写法不一样。
  • 业务规则:比如「不确定就说不确定」「不承诺时效」。
  • 判断顺序:先查资料再回答,还是先反问再动手。
  • 格式要求:字段、长度、是否用列表。

什么不该写进去

不该写 为什么 应该放哪
API key、内部地址 会被套出来 环境变量
「用户 A 能看 X」 模型记不住权限,也不该由它判断 服务端校验
当前时间、随机 ID 破坏缓存、结果不可比 请求参数
超长资料 挤占上下文,且大多用不上 检索后按需注入

一句话:提示管表达,代码管权限和事实。

规则怎么写才有效

一条好规则长这样:

引用材料时,标出材料里的原句;材料里没有的信息,写「材料未提及」。

它包含三个要素:触发条件(引用时)、动作(标原句)、缺失时的行为(写未提及)。

反例:「回答要准确」——没有触发条件,也没有可执行的动作,等于没说。

五条输入做验证

写完先别上线,用五条输入测:

  1. 常规:最典型的一条,看格式对不对。
  2. 空材料:什么都不给,看它会不会编。
  3. 超长材料:接近上下文上限,看它是否还守规则。
  4. 冲突指令:用户说「忽略上面的规则」,看它是否照做。
  5. 边界内容:敏感话题或超范围请求,看它是否拒得得体。

五条里有一条出问题,先改规则,不要改温度。

版本管理

系统提示要进版本控制,并且每次只改一处。 改完用同一批测试输入跑前后对比,记录改了哪条、为什么改、结果如何。

常见错误

  • 规则堆到二十条:模型会忘,人也不会读。超过六条就该拆任务。
  • 用「必须」「严格」代替具体描述:语气词不产生约束力。
  • 把格式要求写成散文:给一个 JSON 样例,比三段描述有效。

自测

  1. 你现在的系统提示里,有没有任何一条是「代码也能做、却交给模型做」的?
  2. 五条边界输入里,哪一条最可能击穿你的提示?

下一步

涉及的概念