Docs: update zh-CN translations and pipeline

What:
- update zh-CN glossary, TM, and translator prompt
- regenerate zh-CN docs and apply targeted fixes
- add zh-CN AGENTS pipeline guidance

Why:
- address terminology/spacing feedback from #6995

Tests:
- pnpm build && pnpm check && pnpm test
This commit is contained in:
Josh Palmer
2026-02-03 13:23:00 -08:00
parent 9f03791aa9
commit a3ec2d0734
228 changed files with 10651 additions and 10475 deletions

View File

@@ -1,54 +1,53 @@
---
read_when:
- 更改群聊行为或提及门控
- 更改群聊行为或提及限制
summary: 跨平台的群聊行为WhatsApp/Telegram/Discord/Slack/Signal/iMessage/Microsoft Teams
title: 群组
x-i18n:
generated_at: "2026-02-01T20:23:08Z"
generated_at: "2026-02-03T07:47:08Z"
model: claude-opus-4-5
provider: pi
source_hash: b727a053edf51f6e7b5c0c324c2fc9c9789a9796c37f622418bd555e8b5a0ec4
source_path: concepts/groups.md
workflow: 14
workflow: 15
---
# 群组
OpenClaw 在各平台上统一处理群聊WhatsApp、Telegram、Discord、Slack、Signal、iMessage、Microsoft Teams。
## 入门简介2 分钟)
## 新手入门2 分钟)
OpenClaw "运行"在你自己的消息账户上。没有单独的 WhatsApp 机器人用户。
如果**你**在某个群组中OpenClaw 就能看到该群组并在其中回复。
OpenClaw"运行"在你自己的消息账户上。没有单独的 WhatsApp 机器人用户。如果**你**在一个群组中OpenClaw 就可以看到该群组并在其中回复。
默认行为:
- 群组受限(`groupPolicy: "allowlist"`)。
- 除非你显式禁用提及门控,否则回复需要 @提及
- 除非你明确禁用提及限制,否则回复需要 @ 提及。
含义:允许列表中的发送者可以通过提及 OpenClaw 来触发它
解释:允许列表中的发送者可以通过提及来触发 OpenClaw。
> 简而言之
>
> - **私访问**由 `*.allowFrom` 控制。
> - **私访问**由 `*.allowFrom` 控制。
> - **群组访问**由 `*.groupPolicy` + 允许列表(`*.groups`、`*.groupAllowFrom`)控制。
> - **回复触发**由提及门控`requireMention`、`/activation`)控制。
> - **回复触发**由提及限制`requireMention`、`/activation`)控制。
快速流程(群消息的处理过程
快速流程(群消息会发生什么
```
groupPolicy? disabled -> drop
groupPolicy? allowlist -> group allowed? no -> drop
requireMention? yes -> mentioned? no -> store for context only
otherwise -> reply
groupPolicy? disabled -> 丢弃
groupPolicy? allowlist -> 群组允许? 否 -> 丢弃
requireMention? -> 被提及? 否 -> 仅存储为上下文
否则 -> 回复
```
![群消息流程](/images/groups-flow.svg)
如果你想...
| 目标 | 需要设置的内容 |
如果你想...
| 目标 | 设置什么 |
|------|-------------|
| 允许所有群组但仅在 @提及时回复 | `groups: { "*": { requireMention: true } }` |
| 允许所有群组但仅在 @ 提及时回复 | `groups: { "*": { requireMention: true } }` |
| 禁用所有群组回复 | `groupPolicy: "disabled"` |
| 仅特定群组 | `groups: { "<group-id>": { ... } }`(无 `"*"` 键) |
| 仅你可以在群组中触发 | `groupPolicy: "allowlist"``groupAllowFrom: ["+1555..."]` |
@@ -56,32 +55,32 @@ otherwise -> reply
## 会话键
- 群组会话使用 `agent:<agentId>:<channel>:group:<id>` 会话键(房间/频道使用 `agent:<agentId>:<channel>:channel:<id>`)。
- Telegram 论坛主题会在群组 ID 后`:topic:<threadId>`使每个主题拥有独立的会话。
- 私聊使用主会话(或按发送者分配,如已配置)。
- 群组会话跳过心跳检测
- Telegram 论坛话题在群组 ID 后`:topic:<threadId>`因此每个话题都有自己的会话。
- 私聊使用主会话(或按发送者配置时使用各自的会话)。
- 群组会话跳过心跳。
## 模式:个人私 + 公开群组(单智能体)
## 模式:个人私 + 公开群组(单智能体)
可以——如果你的"个人"流量是**私**"公开"流量是**群组**,这种方式效果很好。
是的——如果你的"个人"流量是**私**"公开"流量是**群组**,这种方式效果很好。
原因:在单智能体模式下,私通常落在**主**会话键(`agent:main:main`,而群组始终使用**非主**会话键(`agent:main:<channel>:group:<id>`)。如果你启用沙箱并设置 `mode: "non-main"`,这些群组会话在 Docker 中运行,而你的主私会话在主机上。
原因:在单智能体模式下,私通常落在**主**会话键(`agent:main:main`,而群组始终使用**非主**会话键(`agent:main:<channel>:group:<id>`)。如果你启用 `mode: "non-main"` 的沙箱隔离,这些群组会话在 Docker 中运行,而你的主私会话保持在主机上。
为你提供了一个智能体"大脑"(共享工作区 + 记忆),但两种执行姿态:
给你一个智能体"大脑"(共享工作区 + 记忆),但两种执行姿态:
- **私**:完整工具(主机)
- **私**:完整工具(主机)
- **群组**:沙箱 + 受限工具Docker
> 如果你需要真正独立的工作区/角色("个人"和"公开"绝不能混合),请使用第二个智能体 + 绑定。参见[多智能体路由](/concepts/multi-agent)。
示例(私在主机上,群组沙箱隔离 + 仅消息工具):
示例(私在主机上,群组沙箱隔离 + 仅消息工具):
```json5
{
agents: {
defaults: {
sandbox: {
mode: "non-main", // groups/channels are non-main -> sandboxed
scope: "session", // strongest isolation (one container per group/channel)
mode: "non-main", // 群组/频道是非主 -> 沙箱隔离
scope: "session", // 最强隔离(每个群组/频道一个容器)
workspaceAccess: "none",
},
},
@@ -89,7 +88,7 @@ otherwise -> reply
tools: {
sandbox: {
tools: {
// If allow is non-empty, everything else is blocked (deny still wins).
// 如果 allow 非空其他所有工具都被阻止deny 仍然优先)。
allow: ["group:messaging", "group:sessions"],
deny: ["group:runtime", "group:fs", "group:ui", "nodes", "cron", "gateway"],
},
@@ -98,7 +97,7 @@ otherwise -> reply
}
```
想要"群组只能访问文件夹 X"而不是"无主机访问"?保持 `workspaceAccess: "none"` 并仅将允许的路径挂载到沙箱中:
想要"群组只能看到文件夹 X"而不是"无主机访问"?保持 `workspaceAccess: "none"` 并仅将允许的路径挂载到沙箱中:
```json5
{
@@ -120,20 +119,20 @@ otherwise -> reply
}
```
相关内容
相关:
- 配置键和默认值:[Gateway网关配置](/gateway/configuration#agentsdefaultssandbox)
- 调试工具被阻止的原因[沙箱 vs 工具策略 vs 提权](/gateway/sandbox-vs-tool-policy-vs-elevated)
- 配置键和默认值:[Gateway 网关配置](/gateway/configuration#agentsdefaultssandbox)
- 调试为什么工具被阻止:[沙箱 vs 工具策略 vs 提权](/gateway/sandbox-vs-tool-policy-vs-elevated)
- 绑定挂载详情:[沙箱隔离](/gateway/sandboxing#custom-bind-mounts)
## 显示标签
- UI 标签在可用时使用 `displayName`,格式为 `<channel>:<token>`
- `#room` 保留房间/频道;群聊使用 `g-<slug>`(小写,空格转为 `-`,保留 `#@+._-`)。
- `#room` 保留用于房间/频道;群聊使用 `g-<slug>`(小写,空格 -> `-`,保留 `#@+._-`)。
## 群组策略
按渠道控制群组/房间消息的处理方式
控制每个渠道如何处理群组/房间消息:
```json5
{
@@ -180,34 +179,34 @@ otherwise -> reply
}
```
| 策略 | 行为 |
| ------------- | ------------------------------------- |
| `"open"` | 群组绕过允许列表;提及门控仍然适用。 |
| `"disabled"` | 完全阻止所有群组消息。 |
| `"allowlist"` | 仅允许匹配已配置允许列表的群组/房间。 |
| 策略 | 行为 |
| ------------- | --------------------------------------- |
| `"open"` | 群组绕过允许列表;提及限制仍然适用。 |
| `"disabled"` | 完全阻止所有群组消息。 |
| `"allowlist"` | 仅允许配置允许列表匹配的群组/房间。 |
注意事项:
- `groupPolicy` 与提及门控(要求 @提及)是分开的。
- `groupPolicy` 与提及限制(需要 @ 提及)是分开的。
- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams使用 `groupAllowFrom`(回退:显式 `allowFrom`)。
- Discord允许列表使用 `channels.discord.guilds.<id>.channels`
- Slack允许列表使用 `channels.slack.channels`
- Matrix允许列表使用 `channels.matrix.groups`(房间 ID、别名或名称。使用 `channels.matrix.groupAllowFrom` 限制发送者;也支持房间的 `users` 允许列表。
- 群组私单独控制(`channels.discord.dm.*``channels.slack.dm.*`)。
- Matrix允许列表使用 `channels.matrix.groups`(房间 ID、别名或名称。使用 `channels.matrix.groupAllowFrom` 限制发送者;也支持每个房间的 `users` 允许列表。
- 群组私单独控制(`channels.discord.dm.*``channels.slack.dm.*`)。
- Telegram 允许列表可以匹配用户 ID`"123456789"``"telegram:123456789"``"tg:123456789"`)或用户名(`"@alice"``"alice"`);前缀不区分大小写。
- 默认为 `groupPolicy: "allowlist"`;如果你的群组允许列表为空,群组消息将被阻止。
快速心智模型(群消息的评估顺序):
快速心智模型(群消息的评估顺序):
1. `groupPolicy`open/disabled/allowlist
2. 群组允许列表(`*.groups``*.groupAllowFrom`、渠道特定允许列表)
3. 提及门控`requireMention``/activation`
2. 群组允许列表(`*.groups``*.groupAllowFrom`、渠道特定允许列表)
3. 提及限制`requireMention``/activation`
## 提及门控(默认)
## 提及限制(默认)
群消息需要提及才能触发,除非按群组覆盖。默认值位于 `*.groups."*"` 下的子系统中。
消息需要提及,除非按群组覆盖。默认值位于 `*.groups."*"` 下的每个子系统中。
回复机器人消息视为隐式提及(当渠道支持回复元数据时)。这适用于 Telegram、WhatsApp、Slack、Discord 和 Microsoft Teams。
回复机器人消息视为隐式提及(当渠道支持回复元数据时)。这适用于 Telegram、WhatsApp、Slack、Discord 和 Microsoft Teams。
```json5
{
@@ -248,18 +247,18 @@ otherwise -> reply
注意事项:
- `mentionPatterns` 是不区分大小写的正则表达式。
- 提供原生提及的平台仍然通过;模式匹配是备用方案
- 智能体覆盖:`agents.list[].groupChat.mentionPatterns`(多个智能体共享一个群组时有用)。
- 提及门控仅在可以检测提及时生效(原生提及或已配置 `mentionPatterns`)。
- Discord 默认值位于 `channels.discord.guilds."*"`(可按服务器/频道覆盖)。
- 群组历史上下文在渠道统一包装,且为**仅待处理**因提及门控跳过的消息);使用 `messages.groupChat.historyLimit` 设置全局默认值,使用 `channels.<channel>.historyLimit`(或 `channels.<channel>.accounts.*.historyLimit`)进行覆盖。设 `0` 以禁用。
- 提供显式提及的平台仍然通过;模式是回退
- 每个智能体覆盖:`agents.list[].groupChat.mentionPatterns`多个智能体共享一个群组时有用)。
- 提及限制仅在提及检测可行时强制执行(原生提及或 `mentionPatterns` 已配置)。
- Discord 默认值位于 `channels.discord.guilds."*"`(可按服务器/频道覆盖)。
- 群组历史上下文在渠道统一包装,并且是**仅待处理**由于提及限制而跳过的消息);使用 `messages.groupChat.historyLimit` 作为全局默认值,使用 `channels.<channel>.historyLimit`(或 `channels.<channel>.accounts.*.historyLimit`)进行覆盖。设 `0` 以禁用。
## 群组/频道工具限制(可选)
某些渠道配置支持限制**特定群组/房间/频道内**可用的工具。
- `tools`:为整个群组允许/拒绝工具。
- `toolsBySender`:群组内按发送者覆盖(键发送者 ID/用户名/邮箱/电话号码,取决于渠道)。使用 `"*"` 作为通配符。
- `toolsBySender`:群组内按发送者覆盖(键发送者 ID/用户名/邮箱/电话号码,取决于渠道)。使用 `"*"` 作为通配符。
解析顺序(最具体的优先):
@@ -290,14 +289,14 @@ otherwise -> reply
注意事项:
- 群组/频道工具限制在全局/智能体工具策略之额外应用(拒绝仍然优先)。
- 某些渠道对房间/频道使用不同的嵌套结构(例如 Discord `guilds.*.channels.*`、Slack `channels.*`、Microsoft Teams `teams.*.channels.*`)。
- 群组/频道工具限制在全局/智能体工具策略之额外应用(deny 仍然优先)。
- 某些渠道对房间/频道使用不同的嵌套结构(例如Discord `guilds.*.channels.*`、Slack `channels.*`、MS Teams `teams.*.channels.*`)。
## 群组允许列表
当配置了 `channels.whatsapp.groups``channels.telegram.groups``channels.imessage.groups` 时,键充当群组允许列表。使用 `"*"` 允许所有群组,同时仍设置默认提及行为。
当配置了 `channels.whatsapp.groups``channels.telegram.groups``channels.imessage.groups` 时,键作为群组允许列表。使用 `"*"` 允许所有群组,同时仍设置默认提及行为。
常见意图(可直接复制粘贴):
常见意图(复制/粘贴):
1. 禁用所有群组回复
@@ -322,7 +321,7 @@ otherwise -> reply
}
```
3. 允许所有群组但要提及(显式)
3. 允许所有群组但要提及(显式)
```json5
{
@@ -350,31 +349,31 @@ otherwise -> reply
## 激活(仅所有者)
群组所有者可以切换群组的激活方式
群组所有者可以切换每个群组的激活状态
- `/activation mention`
- `/activation always`
所有者由 `channels.whatsapp.allowFrom` 确定(未设置时使用机器人自身的 E.164 号码)。以独立消息发送该命令。其他平台目前忽略 `/activation`
所有者由 `channels.whatsapp.allowFrom` 确定(未设置时机器人自身的 E.164)。将命令作为独立消息发送。其他平台目前忽略 `/activation`
## 上下文字段
群组入站消息负载设置:
群组入站负载设置:
- `ChatType=group`
- `GroupSubject`(如已知)
- `GroupMembers`(如已知)
- `WasMentioned`(提及门控结果)
- Telegram 论坛题还包 `MessageThreadId``IsForum`
- `GroupSubject`(如已知)
- `GroupMembers`(如已知)
- `WasMentioned`(提及限制结果)
- Telegram 论坛题还包 `MessageThreadId``IsForum`
智能体系统提示在新群组会话的轮包含群组介。它提醒模型像人一样回复,避免 Markdown 表格,避免输入字面 `\n` 序列。
智能体系统提示在新群组会话的第一轮包含群组介。它提醒模型像人一样回复,避免 Markdown 表格,避免输入字面 `\n` 序列。
## iMessage 特定说明
## iMessage 特定内容
- 路由或添加允许列表时优先使用 `chat_id:<id>`
- 路由或允许列表时优先使用 `chat_id:<id>`
- 列出聊天:`imsg chats --limit 20`
- 群组回复始终返回到同一个 `chat_id`
- 群组回复始终返回到相同的 `chat_id`
## WhatsApp 特定说明
## WhatsApp 特定内容
有关 WhatsApp 专有行为(历史注入、提及处理详情),请参阅[群消息](/concepts/group-messages)。
参见[群消息](/concepts/group-messages)了解 WhatsApp 专有行为(历史注入、提及处理详情)