先这样答
系统提示词由开发者设置,定义整场对话的固定规则:角色和能力边界、行为约束、输出格式、工具使用规则,对所有用户和所有轮次生效。用户提示词装的是当轮的具体任务内容。分工原则一句话:稳定不变的进系统提示词,每次变化的进用户提示词。
写系统提示词的要点是具体、可检查。用「回答使用简体中文,无法回答时明确说不知道」这类可验证的规则,替代「请友好、请专业」这类形容词。结构上分成角色、规则、输出格式、边界情况几块,规则之间不要冲突,冲突会导致执行不稳定。还要写清不确定时的行为:承认不知道,或者向用户追问,这比让它硬编一个答案可靠得多。
总结一句:系统提示词要当代码维护。改提示或换模型版本就跑一遍回归,规则定期删减,只加不减的系统提示词会越来越不听话。
面试官会怎么追问
- 「系统提示词和用户输入冲突时听谁的?」 设计上系统提示词优先,但没有绝对保证,靠的是模型训练时形成的指令分层习惯。所以关键约束不能只写在提示里,还要靠权限和输出校验兜底。
- 「系统提示词多长合适?」 以覆盖必要规则为准。它随每一轮请求发送,太长会增加成本、稀释关键规则的权重,定期删掉不再需要的条目,比持续追加更重要。
- 「怎么验证写得好不好?」 像测代码一样测:准备一组覆盖正常和边界情况的输入,每次改提示或换模型版本就跑一遍,看输出是否符合约定。没有回归用例,就谈不上稳定。
回答的坑
- 写成角色小作文。大段人设描述不如十条可检查的规则,模型执行的是明确指令,不是氛围。
- 规则只加不减。几百条规则堆在一起会互相冲突、整体遵守率下降,要版本化管理并定期删减。
同系列的题
—— 本题完 ——