Rochat角色设定用{char}{user}变量:告别AI人称代词混乱
为什么要引入{char}和{user}变量
这是 Rochat 官方教程合集里的第一个也是最重要的高级技巧——如果你只记住一件事,就记住这个。
问题根源:大模型容易混淆第一/第二/第三人称。当你写角色设定时用了"他是一个剑客",AI 在对话中会分不清"他"到底是角色还是别人。尤其是多角色 World 模式下,代词混乱会直接让剧情崩溃。
Rochat 的解决办法是彻底消除人称代词,用两个固定变量:
| 变量 | 含义 | 使用场景 |
|---|---|---|
{char} | 当前角色自己 | 性格、背景、Scenario 中所有指代角色的地方 |
{user} | 与角色互动的玩家 | 背景故事中角色和玩家的关系描述 |
Good vs Bad 对比(官方原文)
官方教程二直接给了正反例,整理如下:
✅ Good Case(正确写法)
{char} 是 {user} 的同桌,{char} 非常可愛。
❌ Bad Case(错误写法)
{char} 是 {user} 的同桌,他非常可愛。
区别:Good Case 全程用 {char} {user} 变量,没有任何"他/她/你/我";Bad Case 用了"他"这个人称代词,AI 可能会误以为"他"指的是 {user} 或某个第三者。
✅ Greeting 的 Good Case
{char} 和 {user} 走在夜晚回家的路上。
❌ Greeting 的 Bad Case
{user} 的身份是 {char} 的妹妹,你們走在夜晚回家的路上。
Bad Case 有两个问题:
{user}的身份定义在 Greeting 里(应该定义在背景故事里)- 用了"你們"这个代词
三个常见踩坑场景
坑一:Scenario 里写了人称代词
Scenario 是让 AI 保持角色身份的关键配置,但很多新手随手就写:
❌ 错:确保他始终用第一人称对话 → AI 分不清"他"指谁✅ 对:确保 {char} 始终保持角色身份,不要跳出设定
坑二:Greeting 用 {user} 视角
Greeting 是角色给玩家的开场白,应该用 {char} 的动作和台词,而不是描述玩家的状态。
❌ 错:{user} 推开门,看到 {char} 坐在沙发上 → 这是玩家视角✅ 对:{char} 听到开门声抬起头:「你回来了?」 → 角色视角
坑三:背景故事里混用代词和变量
背景故事最容易犯这个错——写了 {char} 又写了"他",AI 彻底混乱。
实操:把你现有的角色改对
如果你已经创建了角色但没注意 {char}/{user}:
- 打开角色编辑页面
- 找到性格描述(Personality)、背景故事(Backstory)、Scenario 三个字段
- Ctrl+F 搜索:他/她/你/我/他们(含"我"的复合代词如"咱们"也一起搜)
- 把所有人称代词替换成
{char}或{user} - 保存 → 刷新角色 → 测试 3~5 轮对话看是否改善

下一个让角色不"抢话"的关键配置:Scenario配置