先给结论
在多数任务上,"角色设定"的收益远小于"任务描述 + 输出格式 + 示例"。
它能稳定改变语气与措辞,但很少能改变事实正确性或推理能力。
所以:把角色当风格开关用 ✔,别当能力开关用 ✗。
角色真正有用的三种场景
- 口吻:客服、教练、法律顾问的措辞差别很大,角色能稳定语气;
- 视角:要求"从安全工程师视角审一遍"会改变关注点(确实常能多发现几类问题);
- 受众适配:面向初学者 vs 专家的解释深度不同,角色能锚定受众。
角色几乎没用的场景
- 需要事实正确的任务(角色不会让模型知道更多事实);
- 需要多步推理的任务(能力由模型决定,不由角色决定);
- 格式严格的任务(格式靠 schema 与示例,不靠角色)。
写法上的三个要点
- 短:一句就够("你是资深运维,回答简洁、只给可执行步骤");堆三行头衔通常没收益;
- 可验证:角色要求最好能对应可检查的输出特征("先给结论" ✔ 可检查;"你很专业" ✗ 不可检查);
- 别与任务冲突:角色说"你是律师",任务却是"生成营销文案" → 模型会摇摆。
怎么验证它到底有没有用
用同一批评测样本跑两版(只有角色句不同,其余全同):
- 看正确率是否变化(通常无显著变化);
- 看长度/语气指标是否变化(通常明显变化);
- 看失败类型是否变化(可能有的类型变好、有的变差)。
结论要如实写:如果只改变了语气,就写"只改变了语气",别写成"效果更好"。
一个务实的建议
角色(1 句,管语气/视角) + 任务(清楚) + 输出格式(schema) + 1~2 个示例(钉边界)
把精力花在后三项上,收益比雕琢角色大得多。