System Prompt
为什么需要 System Prompt
每次对话,你可能希望模型有不同的"性格"和"行为方式"。
比如:
- 客服场景:希望模型专业、耐心、有礼貌
- 代码助手场景:希望模型严谨、直接、给出可运行的代码
- 创意写作场景:希望模型有想象力、风格多变
这些"全局设定"不应该每次用户提问都重复写一遍。System Prompt 就是来解决这个问题的——在对话开始前设置一次,全局生效。
什么是 System Prompt
一句话定义:System Prompt 是对话开始前给模型设置的全局规则层,定义角色、目标、边界和默认行为方式。
类比:System Prompt 就像给模型一份"工作手册"——它不是回答某个具体问题,而是告诉模型"你是什么角色、该怎么做、什么不能做"。
Prompt 的三个层次:
- System Prompt:角色设定、行为规则,优先级最高
- User Prompt:用户当前这轮真正提出的问题
- Assistant 历史:之前的对话上下文,影响风格和连续性
怎么做:好的 System Prompt 怎么写
好的 System Prompt 通常包含:
- 角色:模型现在是什么身份
- 目标:这次会话的主要任务是什么
- 风格:回答方式、语气、结构
- 约束:不能做什么、遇到异常怎么办
实践建议:
- 先写最重要的规则,不要把关键约束埋在很后面
- 用可执行语言替代抽象口号,例如"先给结论,再给原因"
- 为异常情况写清楚处理策略,例如"不确定时说明不确定"
- 如果系统要调用工具,最好把何时调用、何时停止也写清楚
关于怎么系统化地优化 Prompt,可以看 Prompt Engineering 词条。
常见坑
- System Prompt 过长会消耗上下文空间,且中部规则更容易被忽略
- 模糊指令如"回答自然一点"通常很难稳定执行
- 权限、敏感操作确认、数据校验,不能只靠 Prompt 保证,需要程序控制
记住这一句:System Prompt 是模型的"工作手册"——在对话开始前设置一次,全局生效,定义角色、规则和边界。
相关词条:Prompt · Prompt Engineering
标签
系统提示词system prompt角色设定system message