> 规范网页：https://docs.tensuu.com/功能模块详解/25_消息转发.html ｜ Markdown：/功能模块详解/25_消息转发.md ｜ 文档修订：2026.10.26

# 消息转发

这篇帮你做什么：把 **当前群** 里符合条件的新消息，自动转发到另一个群或某个 QQ 私聊。入口：**侧边栏 → 群设置 → 消息转发**。

## 适用与不适用

| 你想做的事 | 是否适合本页 | 原因 |
| --- | --- | --- |
| 把一个群的消息同步到另一个群 | 适合 | 来源固定为当前群，目标可配多个 |
| 把群消息转给某个管理员私聊 | 适合 | 目标类型选私聊并填对方 QQ 号 |
| 只转发图片、文件或合并转发 | 适合 | 消息类型可多选 |
| 在转发内容前后加自定义模板文字 | 不适合 | 本页没有“转发模板”，只复制来源消息 |
| 让消息匿名化后再转发 | 不适合 | 转发由机器人账号发出，但内容本身不会自动脱敏 |
| 回答成员问题或按关键词处罚 | 不适合 | 用[问答](15_问答.md)或[监控方案](03_监控方案.md) |

## 作用范围与工作方式

- 规则属于顶部所选的群：**消息来源固定是当前群**，规则里要填的是 **转发到哪**。换群后看到的是另一个群的独立规则。
- 一条规则可以有多个目标；每个目标分别发送。某个目标失败不保证其他目标回滚，也不代表整条规则“全部成功”。
- 转发是“复制一份发过去”，**原消息不受影响**；但内容会离开原群，进入目标群或私聊。目标成员能看到转发内容，**这不是匿名化，也不是隐私过滤**。
- 转发消息由负责目标会话的机器人账号发出，不会保留原发送者身份；接收者看到的是机器人发送的内容。需要保留来源信息时，只能依赖消息原文或另行说明。
- 转发规则在消息路由中属于低优先级：同一条消息若先被指令或监控规则受理，转发可能不执行；同一转发规则展开的多个目标是例外，会作为一次扇出保留。
- 凭据类正文有运行时拒绝保护，但不要把自动保护当成脱敏承诺；不确定内容是否敏感时不要转发。

## 添加一条转发规则

1. 点右上角 **添加转发规则**。
2. 填写：
   - **规则名称**（必填，2–50 字）：给自己看的备注。
   - **启用状态**：默认开启；关闭后该规则不生效。
   - **消息类型**（至少勾一种）：文本 / 图片 / 表情 / 语音 / 视频 / 文件 / JSON / 合并转发。只有包含所选类型的消息才会被这条规则处理。
   - **转发目标**（至少加一个）：每行填 **目标类型**（群组 / 私聊；“频道”当前不可选）和 **目标 ID**——群组填对方 **群号**，私聊填对方 **QQ 号**。名称为可选备注，只用于显示。可添加多个目标，命中时逐个转发。
   - **高级过滤条件**（可选，展开“高级过滤条件”面板添加）：
     - **关键词过滤**：包含 / 不包含 / 等于 / 不等于某个关键词（一个过滤行只填一个词，多个词就加多行），不区分大小写。
     - **用户过滤**：填 QQ 号列表（逗号分隔）；“包含”=只转发这些人的消息，“不包含”=不转发这些人的消息。比较的是发送者用户 ID，不是昵称。
     - **时间过滤**：格式“时:分-时:分”（如 09:00-18:00），只在该时段转发；支持跨天（如 22:00-06:00 表示晚 10 点到次日 6 点），按消息事件时间和服务器本地时区计算，起止时刻都包含。
     - 每条过滤都有独立开关；**多条过滤需同时满足**（并且关系）才转发。条件与过滤类型不匹配、格式非法时，该条件按不匹配处理，消息不会被转发。
3. 点 **保存**，提示“添加转发规则成功”。
4. **怎样确认成功**：列表出现该规则，启用状态为“启用”，转发目标、消息类型显示正确。保存成功只表示规则已写入，不表示已经转发过。

## 设置项参考

| 字段 | 含义与取值 | 默认 | 作用与限制 |
| --- | --- | --- | --- |
| 规则名称 | 维护备注 | 无 | 2–50 字，不参与匹配 |
| 启用状态 | 开 / 关 | 开 | 关闭后保留规则但不转发 |
| 消息类型 | 文本/图片/表情/语音/视频/文件/JSON/合并转发 | 无 | 至少一种；只匹配包含所选类型的消息 |
| 转发目标 | 类型 + 目标 ID + 可选名称 | 无 | 群组填群号，私聊填 QQ 号；频道暂不可用 |
| 关键词过滤 | contains/notContains/equals/notEquals | 条级开关 | 只比较文本内容，不区分大小写 |
| 用户过滤 | contains/notContains + QQ 号列表 | 条级开关 | 比较发送者用户 ID；“包含”是白名单语义 |
| 时间过滤 | between + 时:分-时:分 | 条级开关 | 支持跨天，按服务器本地时区 |

## 转发内容与变量 {#转发内容与变量}

本页没有“转发文案模板”，转发的是来源消息本身：

- **纯文本路径**：如果原消息文本本身含有 `{{user_id}}`、`{user_id}`、`{{group_id}}` 或 `{group_id}`，发送时会分别替换为**来源发送者**和**来源群**。带点写法 `{{.user_id}}`、`{{.group_id}}` 不会替换。
- **图片、文件、合并转发等结构化内容**：按原消息段转发，不做变量替换。
- 因此不要把转发当成模板功能，也不要用变量来“补上来源信息”；是否出现替换取决于原消息里是否恰好写了上述非点号形式。发送前请按原消息内容核对。

这一行为与问答、群提示使用的 `{{.变量名}}` 模板不同，完整对照见[变量使用指南](../高级功能/变量使用指南.md#消息转发)。

## 回环、身份与重试边界

- **没有独立的“防回环”开关**。是否形成回环取决于 OneBot 实现端是否把机器人自己发出的转发消息再次作为群消息上报，以及目标群是否也配置了会命中它的转发规则。不要配置 A→B 与 B→A 的双向转发，也不要把目标填成来源群本身；先从单向、隔离测试群开始。
- **身份是机器人账号**。目标群成员看到的是机器人转发的内容，不是原发送者重新发言；平台侧的消息 ID、发送者资料和已读状态都属于新消息。
- **不会自动重试**。发送失败、超时或结果未知时，本页不会显示投递结果，也不会替你补发；连续重发可能造成重复消息。结果不明时先查“日志中心 → 调试 / 出站结果”（短期进程内 Trace）和“应用日志”，不要直接重复派发。
- 审计记录中的“已受理/queued”不等于平台发送成功；最终结果以出站记录和接收群实际内容为准。

正例：只把 A 群文本和图片单向转发到测试 B 群，目标填 B 群群号，过滤条件先留空，保存后在 A 群发一条普通测试消息，再到 B 群确认内容、发送者身份和是否只出现一次。反例：同时配置 A→B 和 B→A，或在来源群里用 `{{.user_id}}` 期待自动标注发送者——前者可能形成回环，后者不会替换。

## 日常管理

- 行内 **操作** 菜单：编辑、查看、禁用/启用、删除。禁用后规则保留但不转发。
- 列表按创建时间倒序，支持分页。
- 本页没有导入/导出；多条规则需要逐条维护，修改前记录原目标与过滤条件。

## 没成功先检查什么

- 该转发的没转：规则是否启用 → 消息类型是否涵盖（比如发了图片但没勾图片）→ 过滤条件是否把它挡掉了（先核对条件；如需放宽，只在获准的隔离测试群尝试，勿对真实消息直接取消过滤）→ 目标 ID 填的是对方的群号/QQ 号，不是本群。
- 同一条消息被其他功能先处理：检查是否命中指令、监控或问答；转发不是最高优先级。
- 规则命中了但目标没收到：**匹配成功不代表发送成功**。机器人不在目标群、发私信失败、目标路由不可用等发送环节的失败不会显示在本页，需要结合[结果判断与排障](../核心概念/结果判断与排障.md#结果入口)和应用日志排查。
- 某条规则完全不工作：老数据可能存在“消息类型为空”的规则，这类规则当前会被直接跳过不执行；重新编辑勾上消息类型即可。
- 目标群出现重复消息：先检查是否配置了双向转发、同一规则多个相同目标，或实现端把机器人消息再次上报；不要靠反复删除重建规则试运气。

## 关闭或改回

- 临时停：**操作 → 禁用**。
- 彻底停：**操作 → 删除**。
- 停用或删除只阻止后续转发；已经发到目标群或私聊的内容不能靠关闭规则撤回。若内容敏感，应按目标平台能力另行处理并要求接收方删除。

## 和其他页面的关系

- 需要“看到谁触发了什么规则”的监控场景用[群聊监控](08_群聊监控.md)，本页只管转发。
- 转发不是问答：需要根据问题回复固定答案时用[问答](15_问答.md)。
- 配置作用范围和“为什么一条消息不会触发所有功能”见[群管家怎样工作](../核心概念/工作方式与作用范围.md#消息处理)。
- 变量语法差异见[变量使用指南](../高级功能/变量使用指南.md#消息转发)。
