完整题目
System Prompt 和 User Prompt 有什么区别?它们各自承担什么职责,两者要求冲突时模型会听谁的?
本文目录
答案要点
- 现代对话模型的输入是带角色的消息列表,常见角色有 system、user、assistant 三种
- System Prompt 由开发者设置,定义模型的身份、行为边界和全局规则,整个会话生效
- User Prompt 是用户每轮输入的具体问题或指令,只代表当前这一轮的需求
- 模型经过对齐训练会给 system 更高的遵从优先级,冲突时通常以 system 为准——但这是训练出来的倾向,不是硬保证
- 这也是提示词注入(Prompt Injection)攻击存在的原因:用 user 消息试图推翻 system 规则
核心概念
System Prompt 是开发者在对话开始前写入的一条特殊消息,用来设定模型"是谁、该做什么、不该做什么",比如"你是某银行的客服助手,只回答本行业务,拒绝闲聊";User Prompt 则是最终用户在对话框里输入的每一句话。两者是 API 消息列表里不同 role 的消息,分工类似"岗位职责说明书"和"顾客的具体要求":职责说明书全程有效、约束所有行为;顾客要求只针对当下这一件事。
职责分工对比
| 维度 | System Prompt | User Prompt |
|---|---|---|