核心要点
角色扮演=给模型设定一个身份 / 专家角色,如「你是资深律师 / 儿科医生 / 面试官」。
作用:激活相关领域知识与语气,约束回答的风格、视角与详略,提升专业度与一致性。
用法:清晰定义角色背景与目标受众,设定语气与边界,可叠加具体任务与输出格式。
常放在 System Prompt 中,让人设在多轮对话里保持稳定。
标准回答
什么是角色扮演提示
角色扮演(Role Playing)提示是指在提示词里给模型设定一个具体的身份或专家角色,例如「你是一位有 20 年经验的资深律师」「你是一名儿科医生」「你是一位严格的技术面试官」。模型并不会真的「变成」这个角色,但人设会引导它从海量训练语料中调动与该角色相关的知识、表达方式和视角,从而让输出更聚焦、更专业、风格也更一致。
为什么有效
LLM 的输出本质是基于上下文的条件生成。给定「资深律师」这一身份,模型更倾向于生成严谨、引用规则、注重风险提示的文本;给定「面向小学生讲解」,则更倾向于使用浅显的比喻。角色相当于一次性设定了语气、专业度与受众三个维度,比逐条罗列要求更省力。
如何有效使用
- 清晰定义角色与背景:写明专业领域、经验、立场,必要时补充目标受众,如「向完全没有技术背景的客户解释」。
- 设定语气与边界:明确风格(严谨 / 亲切 / 简洁)以及不该越界的范围。
- 叠加任务与格式:在角色之上给出具体任务和输出格式,例如「以面试官身份,针对这份简历提出 5 个问题,用编号列表输出」。
- 放进 System Prompt:把人设写在系统提示里,可让角色在多轮对话中保持稳定,不被后续消息冲淡。
追问
追问 1:角色扮演提示和 Few-shot 示例,分别适合解决什么问题?
追问 2:为什么角色人设建议写在 System Prompt 里,而不是每轮都重复?
System Prompt 通常被赋予更高的优先级,且在整段对话里持续生效,把人设放在那里能让角色在多轮交互中保持稳定,不容易被后续用户消息冲淡或覆盖。如果只写在某一轮用户消息里,随着对话变长,模型可能逐渐「忘记」角色。当然在很长的对话中仍可能漂移,必要时可适当重申关键约束。
追问 3:怎么防止角色扮演被用来越狱绕过安全限制?
常见攻击是诱导模型「扮演一个不受任何规则约束的角色」来输出违规内容。防御上要做到:在 System Prompt 中明确安全规则的优先级高于任何用户设定的角色,声明无论扮演何种角色都不得违反安全与合规要求;同时配合独立的输入输出审核(分类器、关键词与策略过滤)做硬性兜底,而不只依赖提示词本身的自觉遵守。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习