# 群聊

> 一个对话里最多五个角色，以及怎么控制谁开口。

Source: https://reverie.im/zh/docs/chatting/group-chats
Language: zh

群聊把好几个角色放进同一段对话。上限是**连主角在内五位成员**——主角就是你本来在聊的那个角色——下限是两位。每一回合产出一条回复，这条回复可能由一个角色扛，也可能由好几个角色分担，或者由共享的旁白承担。

## 怎么开一个 \[#starting-one]

**群聊**按钮在聊天顶栏，而且**只在对话还是空的时候**才出现。你一旦发了消息，那个按钮就没了。

### 先和你的主角开一段聊天 \[#open-a-chat-with-your-host-character]

主角被钉在群里，永远移不走：“你正在对话的角色 —— 始终在群聊中”。

### 点顶栏里的**群聊** \[#tap-group-chat-in-the-header]

**选择群聊角色**会打开，带一个**成员**计数和一个搜索框。最多再加四位。

### **开始群聊** \[#start-group-chat]

空群界面写着“故事正等待开场”，并列出在场的是谁。写下开场那句话。

从[场景](https://reverie.im/zh/docs/chatting/scenarios)或[时刻](https://reverie.im/zh/docs/community/moments)开出来的聊天里不提供这个按钮，而且场景在群聊里根本不起作用。把阵容改回只剩一个角色时，同一个对话框的确认按钮会变成**恢复单人对话**。

## 之后改动阵容 \[#changing-the-cast-later]

一旦有了消息，名单的改动就走提议卡片，而不是选择器。要么角色们自己提出来，要么你用**添加角色**斜杠命令去要——群聊里可用，需登录，且不在即时模式和语音模式下。

卡片是“\*\*让新角色加入这场对话？&#x2A;*”或“\*\*让某位角色离开这场对话？**”，带有**调整成员**和一个最多 300 字符的**此刻发生了什么**框。你在那儿写的东西，从那一刻起所有人都读得到，所以用它在戏里交代这次到来或离开。**确认**会应用名单，并在记录里写下一条“加入了对话”或“离开了对话”的提示；**暂不**把它收起来。只有最新的那张卡片还能操作，而且主角移不走。

## 回复是怎么拼出来的 \[#how-the-reply-is-built]

一回合就是一次模型调用。同一段提示词里有一节告诉模型谁在场，并让它根据当下的节拍、每个角色知道什么、以及他们的动机与在场感，自己选谁开口。

> 没有编排器，也没有第二次模型调用来挑发言人。这也意味着你设的回复长度作用于**整条**群聊回复，而不是其中的每个角色。

## 挑谁来回 \[#choosing-who-replies]

在消息框里打 `@` 会打开**提及角色**，或者直接把名字打出来。一条消息里可以提及好几个角色，最多八个。

提及不会散开成并行的多条回复。它们会收拢成一条**让谁回复**指令——只有被点名的角色可以在那条回复里说话或行动，而且整条回复由他们扛。已经离开名单的被提及角色会被悄悄丢掉，而你的选择在重新生成这一回合时会被重新套用。

把它当成一条强指令，而不是硬路由：它在提示词层面起作用，没被点名的角色偶尔还是会冒一句。不提及的话，阵容会自己轮着来。

如果两位成员重名，Reverie 会在所有地方——提及菜单、对话记录和语音里——用名字加一小段标识来区分他们。

## 群聊里有什么不一样 \[#what-changes-in-a-group]

|           | 单聊                                                            | 群聊                                           |
| --------- | ------------------------------------------------------------- | -------------------------------------------- |
| 叙述        | 跟着你的**叙述风格**设置走                                               | 默认第三人称，哪怕你偏好第一人称。单回合的**叙事视角：第一人称**斜杠命令仍然能盖过它 |
| 场景        | 支持                                                            | 不支持                                          |
| 即时模式与语音模式 | 普通回复                                                          | 每一行都带上说话人名字的前缀，这样就能拆成一人一个气泡，并用那个角色的声音念出来     |
| 记忆筛选小块    | 不显示                                                           | **全部**、**全局**，以及每位成员各一个                      |
| 羁绊        | 每条回复都计入你和这个角色的[羁绊](https://reverie.im/zh/docs/chatting/bonds) | 不计入任何羁绊；每个角色都会被告知你和它在一对一聊天中走到了哪一步            |
| 花费        | 提示词里一张角色卡                                                     | 每位成员的卡，每一回合                                  |

> **群聊记忆和单聊记忆不是分开的。** 在群里，角色读到的是每位成员已存记忆的并集，再加上你的全局记忆；而群聊期间归档的任何东西，在你和那些角色的一对一聊天里都会被读回来。不存在按群走的记忆线。见[记忆是怎么工作的](https://reverie.im/zh/docs/chatting/memory)。

没有群聊附加费——照常按 token 付钱——但提示词里要托着好几张完整的角色卡，会让一个群聊回合比同样的单聊回合更贵。

## 相关 \[#related]

* [斜杠命令](https://reverie.im/zh/docs/chatting/slash-commands) —— **添加角色**，以及在这儿管用的那些单回合指令
* [记忆是怎么工作的](https://reverie.im/zh/docs/chatting/memory) —— 范围，以及一个群聊回合读到了什么
* [语音通话](https://reverie.im/zh/docs/media/voice-calls) —— 给每位成员各自的声音
* [分支对话](https://reverie.im/zh/docs/chatting/forking) —— 分支会把阵容倒回分叉点
