核心要点

  • 角色扮演=给模型设定一个身份 / 专家角色,如「你是资深律师 / 儿科医生 / 面试官」。

  • 作用:激活相关领域知识与语气,约束回答的风格、视角与详略,提升专业度与一致性。

  • 用法:清晰定义角色背景与目标受众,设定语气与边界,可叠加具体任务与输出格式。

  • 常放在 System Prompt 中,让人设在多轮对话里保持稳定。

标准回答

什么是角色扮演提示

角色扮演(Role Playing)提示是指在提示词里给模型设定一个具体的身份或专家角色,例如「你是一位有 20 年经验的资深律师」「你是一名儿科医生」「你是一位严格的技术面试官」。模型并不会真的「变成」这个角色,但人设会引导它从海量训练语料中调动与该角色相关的知识、表达方式和视角,从而让输出更聚焦、更专业、风格也更一致。

为什么有效

LLM 的输出本质是基于上下文的条件生成。给定「资深律师」这一身份,模型更倾向于生成严谨、引用规则、注重风险提示的文本;给定「面向小学生讲解」,则更倾向于使用浅显的比喻。角色相当于一次性设定了语气、专业度与受众三个维度,比逐条罗列要求更省力。

如何有效使用

  • 清晰定义角色与背景:写明专业领域、经验、立场,必要时补充目标受众,如「向完全没有技术背景的客户解释」。
  • 设定语气与边界:明确风格(严谨 / 亲切 / 简洁)以及不该越界的范围。
  • 叠加任务与格式:在角色之上给出具体任务和输出格式,例如「以面试官身份,针对这份简历提出 5 个问题,用编号列表输出」。
  • 放进 System Prompt:把人设写在系统提示里,可让角色在多轮对话中保持稳定,不被后续消息冲淡。

常见误区

⚠️ 常见踩坑

角色扮演不能赋予模型它本就不具备的真实能力——设定「你是律师」并不能保证法条引用准确,模型仍可能产生幻觉。在医疗、法律、金融等高风险领域,必须叠加免责声明与事实约束(如「不确定就明确说明,建议咨询专业人士」),并对关键事实做外部核验。此外,要警惕角色扮演被用于越狱:让模型「扮演一个不受规则限制的角色」是常见的绕过安全机制手法,设计提示和护栏时需要防范。

追问

追问 1角色扮演提示和 Few-shot 示例,分别适合解决什么问题?

角色扮演主要解决「语气、视角、专业度」的定位问题,用一句身份设定就能整体调性到位,成本低;Few-shot 则主要解决「输出格式和具体做法」的对齐问题,通过几个输入-输出范例让模型照葫芦画瓢,对严格格式或细节规则更可靠但更占 Token。实践中常把两者结合:先用角色设定调性,再用示例锁定格式。

追问 2为什么角色人设建议写在 System Prompt 里,而不是每轮都重复?

System Prompt 通常被赋予更高的优先级,且在整段对话里持续生效,把人设放在那里能让角色在多轮交互中保持稳定,不容易被后续用户消息冲淡或覆盖。如果只写在某一轮用户消息里,随着对话变长,模型可能逐渐「忘记」角色。当然在很长的对话中仍可能漂移,必要时可适当重申关键约束。

追问 3怎么防止角色扮演被用来越狱绕过安全限制?

常见攻击是诱导模型「扮演一个不受任何规则约束的角色」来输出违规内容。防御上要做到:在 System Prompt 中明确安全规则的优先级高于任何用户设定的角色,声明无论扮演何种角色都不得违反安全与合规要求;同时配合独立的输入输出审核(分类器、关键词与策略过滤)做硬性兜底,而不只依赖提示词本身的自觉遵守。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习