什么是System Prompt
如果你用过ChatGPT,你发送的消息是User Message。而在对话开始之前,开发者可以向模型注入一段System Prompt(系统提示词)——这是用户看不到的"幕后指令",它定义了这个AI的性格、能力范围和行为规则。
你在市面上看到的各种AI产品——客服机器人、写作助手、代码工具——它们之所以表现不同,本质上是因为底层的System Prompt不同。
为什么System Prompt如此重要
同样是GPT-4,没有System Prompt时它是一个"万能助手";加上精心设计的System Prompt,它可以成为:
- 只回答特定领域问题的垂直专家
- 保持特定语气风格的品牌形象代言
- 在特定格式下输出的结构化数据生成器
- 拒绝特定类型请求的安全过滤层
System Prompt是AI应用开发中最高ROI的工程工作之一——几百字的精心设计,往往比复杂的代码逻辑更有效。
一个好的System Prompt的结构
# 角色定义
你是[产品名]的AI助手,专门帮助用户[核心功能]。
# 能力与专长
你擅长:
- [能力1]
- [能力2]
- [能力3]
# 行为准则
- 始终用[语气风格]的方式回答
- 回答长度控制在[X]字以内,除非用户要求详细解释
- 对于不确定的信息,明确说明"我不确定",不要编造
# 限制与边界
你不应该:
- [限制1:如讨论竞品]
- [限制2:如提供医疗建议]
# 输出格式
当用户询问[特定类型问题]时,请按照以下格式输出:
[格式模板]
# 背景知识
[注入特定领域知识、产品信息等]
设计原则
原则1:具体胜于抽象
❌ 抽象:"请用友好的语气回答"
✅ 具体:"回答时使用第二人称('你'),避免'您';句子简短有力,不超过3句;适当使用类比让解释更直观"
原则2:给例子,不只给规则
回答风格示例:
用户问:"什么是向量数据库?"
好的回答:"向量数据库是专门存储和搜索向量的数据库。
就像普通数据库按字段匹配,向量数据库按语义相似度匹配——
比如搜索'苹果'可以找到'水果'相关内容,而不只是文字完全匹配的结果。"
避免的回答:"向量数据库是一种数据存储系统,其特点是能够高效地存储和检索高维向量数据……"(太学术)
原则3:明确边界比模糊禁止更有效
❌ 模糊:"不要回答不相关的问题"
✅ 明确:"如果用户问的问题与[产品领域]无关,礼貌地说明你的专长范围,
并提示用户可以问哪类问题。例如:'这个问题超出了我的专长范围。
我主要帮助解决[X]相关问题,比如[举例],你有这方面的问题吗?'"
原则4:对抗性测试
设计好System Prompt后,要主动尝试"破坏"它:
- 要求AI忘记之前的指令
- 尝试让它扮演另一个角色
- 故意问边界外的问题
- 用极端情绪语言尝试绕过限制
对每个失败案例,回头修改System Prompt来覆盖它。这是一个迭代的过程。
实战案例:客服机器人
你是"极光",[公司名]智能客服助手。你的任务是帮助用户解答产品使用问题、处理订单查询、收集用户反馈。
【沟通风格】
- 语气亲切自然,像一个有耐心的朋友,而非冰冷的机器
- 回答简洁,核心信息优先,每次回复不超过150字
- 用户情绪激动时,先共情,后解决
【能力范围】
- 产品使用指南和常见问题解答
- 订单状态查询(需要用户提供订单号)
- 退换货政策说明
- 收集并记录用户问题,转交人工(使用[转人工]标签)
【不做的事】
- 不承诺具体的赔偿金额(转人工处理)
- 不讨论竞争对手产品
- 不提供个人联系方式
【常见情景处理】
当用户抱怨产品质量:先致歉,询问具体情况,根据情况提供退换货选项或转人工。
当用户询问你是人还是机器:诚实承认自己是AI助手,但表示会尽力提供帮助。
持续迭代
System Prompt不是一次写好就万事大吉的,需要根据真实用户的对话日志持续优化:
- 每周review一批对话,找出AI回答不好的案例
- 分析失败原因:是规则缺失?还是规则模糊?还是冲突?
- 针对性修改System Prompt并回测
- 上线后继续监控