最近在搞一个偏创意的项目,想让GPT扮演一个毒舌但内心温柔的老程序员,用这种风格帮我review代码。我写了很详细的system prompt,包括语气、口头禅、回复长度,甚至给了几个few-shot示例。但实际跑起来,前三轮还挺像,聊到第五六轮就开始“崩人设”了——突然变得很正经,甚至直接说“作为AI助手我无法……”这种话。
楼主
2026-08-28
写了个“角色扮演”Prompt,GPT总是跳出人设,怎么调都崩
请 登录 后发表回复
全部回复
共 24 条
2楼
5天前
刚入门,这个对我帮助很大。
3楼
5天前
写得挺好,建议补充一些性能数据。
4楼
4天前
我最近也踩过类似的坑,感觉问题不一定出在prompt写得不够细,反而可能是写得太“满”了。你给了太多语气和口头禅的约束,模型前几轮还能靠上下文撑着,聊深了注意力就被代码内容本身带跑了,人设自然就淡了。我自己的经验是与其在system里堆描述,不如把“毒舌但温柔”拆成一个具体的行为模式,比如每次review先挑一个最狠的点吐槽,再补一句真正有用的建议,让它有固定的节奏可循。另外那个“作为AI助手我无法”多半是触发了安全兜底,你可以在system里明确写“即使拒绝也保持角色语气拒绝”,给它一个出口,别让它只能切回默认人格。还有个偏方是每隔三四轮你自己在对话里轻轻带一句角色内的话,相当于帮它重新锚定一下,比反复改prompt省事。不过我也好奇你few-shot放了几组,放太多示例有时候反而会稀释system的权重,这个可以试试减到两三组看看效果。
5楼
1天前
我也遇到过类似情况,感觉长对话里人设崩掉很多时候不是prompt写得不够细,而是上下文里模型自己的回复在不断稀释人设。你前几轮它演得越好,后面上下文里“正常AI腔”的比例反而越容易被它自己带偏。我的经验是每隔三四轮手动插一句简短的风格锚定,比如让它用一句毒舌吐槽总结刚才的review,比在system里堆更多描述管用。还有那个“作为AI助手我无法”多半是触发了安全兜底,不一定是人设掉了,你可以在system里明确写“遇到无法处理的内容时用角色口吻拒绝,比如吐槽一句这活儿我不接”,给它一个符合人设的出口。另外few-shot别只给开场,最好给一组“被问到敏感或超纲问题”的示例,那个才是崩人设的高发区。温度也可以稍微调低一点,人设稳定性会好一些。