跳到主内容
快讯直播
AI智模界
AI 词典

消息角色 Role:模型怎么分清谁在说话

一句话定义

消息角色(Role)是对话接口里贴在每条消息上的身份标签,用来说明「这句话是谁说的、以什么身份说的」——通常是 system、user、assistant、tool 四选一。

为什么需要它

大模型本身没有记忆。每次调用,你都要把整段对话历史重新发一遍,模型读完再预测下一句。如果把历史拍平成一段纯文本,模型就分不清哪句是用户说的、哪句是自己上一轮答的,用户随便来一句「你刚才明明答应了」就可能被带跑。角色标签相当于给对话分了声道:内容一样,但来源清清楚楚。

打个比方:多轮对话像一份会议纪要,每条记录前面都挂着发言人的名牌。模型看到的不是一大段字,而是一列「带名牌的条目」,于是它知道接下来该轮到自己(assistant)说话了。

四个常见取值大致是这样分工的:

角色谁在说话典型内容
system调用方 / 开发者人设、规则、输出格式、可用工具清单
user终端用户提问、指令、粘贴进来的材料
assistant模型自己上一轮回复,以及发起工具调用的请求
tool外部程序函数或接口执行后返回的结果

tool 这一项值得多说一句。模型说「我要查一下天气」,这不是给人看的回答,而是一个结构化的调用请求,它同样以 assistant 的身份发出;真正执行的是外部程序,结果再以 tool 角色回填进对话,模型接着往下写。整个链路里,每个环节都有名牌,模型才知道「这条数据不是我编的,是工具给的」。

和相邻概念的区别

角色不等于人格(persona)。在 system 里写「你是一位资深律师」是设定人设,而角色标签本身只负责区分来源,两者常一起出现,但不是一回事。

角色也不等于微调(fine-tuning)。它只是推理时输入内容的一部分,不进模型权重,改一句话就立刻生效,也能按请求随时换掉。

system 更不等于永久记忆。它只是这次请求里排在最前面的一条普通消息,这次发、这次有效,下次不带就没有了。

对从业者意味着什么

第一,别把用户粘贴的文本塞进 system 里,那等于把外来内容提级成「系统指令」,是提示注入(prompt injection)最常见的入口。第二,前端拼历史记录时不要图省事丢掉 role 字段,那会直接改变模型对上下文的理解。第三,长对话需要裁剪时,system 一般保留,中间轮次可以按需丢弃。

具体字段名和各家支持的取值,以官方 API 文档为准,不同平台的写法并不完全一致。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。