
角色改的是表达,不是知识
模型的行业知识在训练时就定了,你说它是专家,它不会多知道一条规定。
但角色会影响三件事:用哪些词、举什么例子、默认读者是谁。同一段内容,说“给三年级家长讲”和说“给教研组讲”,出来的东西完全不同。

所以角色不是用来提升能力的,是用来控制语域的。想清楚这一点,就不会再堆“顶尖”“资深”“十年经验”这类词。
有效的角色长什么样
三个要素:在什么场景、对谁说话、有什么习惯。缺一个,角色就是空头衔。
反面例子:你是一位专业的文案专家。
正面例子:你在给一家做工业配件的公司写官网产品页,读者是采购经理,习惯先看参数再看交期。
后者能直接约束输出:先参数、后交期、少形容词。前者什么也没约束,它还是按最常见的电商文案写。
- 场景:这件事发生在哪
- 对象:谁看,他关心什么
- 习惯:先说什么、后说什么

角色用过头会出问题
写太满的角色,会让它开始表演。碰上内部说明,它写成演讲;碰上客服回复,它写成品牌宣言。
另一种是角色和任务冲突。角色写“你是严谨的法务”,任务却是“写得活泼一点”,它会在两头折中,结果既不严谨也不活泼。
还有一种隐性冲突:角色设定的读者,和你实际要发给的人不是一类。它按设定的读者写,你发出去就错位了。
检验方法很简单:写完角色,遮住它,看剩下的部分还能不能独立完成任务。能,说明角色只是修饰;不能,说明角色承担了任务信息,那部分该挪进任务段。
什么时候别写角色
事实查询不用写。问一个参数、一条规定,加角色只是增加干扰。
格式转换不用写。表格转 JSON、文本转列表,它只需要规则,不需要人设。
代码补全不用写。上下文就是角色,多写一句“你是资深工程师”,只会让它多写注释。

需要写角色的场景很集中:面向特定读者的写作、需要固定视角的分析、要模仿某种既有文风。
常见问题
写“你是专家”会有副作用吗?
会有一点。它倾向于用更多术语、更长的句子来显得专业,面向普通读者的内容反而更难读。
能不能让它模仿某个具体作者?
模仿风格可以,指名模仿在世的具体人要注意授权和肖像权问题,商用尤其。写“模仿某种文体”更稳妥。
角色和系统提示词有什么区别?
系统提示词是每次对话都生效的固定设定,角色是这一次的要求。长期用的角色放系统提示词,临时的不必。


