一句话定义
自指语气(Self-Referential Voice)指模型说话时如何称呼自己、如何描述自己的身份与能力——是用"我",还是用"本助手""这个模型"这类旁观式说法,以及随之而来的一整套自我描述习惯。
它不是权重,是格式的产物
很多人以为"模型是谁"写在权重里。其实直接决定它怎么自称的,往往是更外面的一层:对话模板(chat template)。接口收到的是结构化消息(system / user / assistant),真正喂进模型的却是一段按固定格式拼好的纯文本——谁用什么标记开头、在哪里结束。模型在训练时见过海量这种拼好的文本,于是学会了一件事:看到这种格式,说明我在对话里,该用第一人称。
打个比方:同一位演员,拿到电影剧本会用第一人称念台词,拿到产品说明书的稿子就会写成"本品""用户"。演技没变,变的是稿件格式给出的暗示。
所以换个模板——角色标记被截断、历史消息被静默裁掉一半、工具返回结果塞进了不合适的位置——模型可能瞬间从"我"退回说明书腔。同一份权重,两种口吻。
和几个近邻的区别
| 概念 | 管什么 | 谁来定 |
|---|---|---|
| 系统提示(system prompt) | 显式指令:你演谁、守什么规矩 | 写提示的人 |
| 人设(persona) | 演的是哪个角色 | 提示 + 训练数据 |
| 自指语气 | 提到自己时用什么口吻 | 模板格式 + 训练分布的默认值 |
| 拒答(refusal) | 哪些请求不接 | 对齐训练 + 提示 |
关键差异在于:系统提示是显式约定,自指语气常常是没人写、却一直在生效的隐式默认值。系统提示写着"你是资深律师",模板格式一乱,它照样可能冒出一句标准客服腔。
为什么值得关心
做 Agent 的人多半遇到过:多轮角色扮演跑到后半程,模型突然出戏,用一句模板化的免责话术收场。多数人的第一反应是改系统提示,但更该先看的是拼好的那串最终文本——角色标记前后是否一致、历史是否被悄悄截断、工具输出有没有破坏格式。人设崩塌经常是格式问题,不是模型问题。
拒答行为也常和自指语气绑在一起。当模型被格式带进"我是被检查的助手"这个语境,它更容易调取保守话术;留在角色语境里则更配合。这既让角色扮演更顺,也意味着同一条安全边界在不同模板下松紧不同——上线前必须在真实模板下测,而不是只在对话框里试两句。各家的模板细节与系统提示写法,以官方文档为准。
对普通用户:同一个模型在 App 和 API、在不同产品里表现像两个人,未必是"偷偷换了模型",很可能只是这层开关不同。
