# 关键词回复使用文档（新版）

更新时间：2026-07-12

## 1. 功能说明

关键词回复用于让机器人根据用户消息自动回复内容。支持文本、Markdown、图片、语音、视频、文件，以及 Markdown 原生按钮。

新版增加了“引用消息”开关：

- 开启：机器人回复时会引用触发关键词的那条消息，QQ 客户端会显示“引用消息”卡片。
- 关闭：机器人普通回复，不显示引用卡片。

注意：“引用消息”不是 Markdown 按钮里的“以回复形式发送”，它是 QQ 原生消息引用效果。

## 2. 页面字段说明

### 机器人
选择这条规则绑定的机器人。

### 分类
用于管理规则，例如：基础测试、菜单、售后、图片测试。

### 关键词
一行一个关键词，也可以用逗号分隔。

例如：

你好
测试你好
菜单,帮助

### 匹配方式

- 精确/命令参数：消息必须匹配关键词，适合“菜单”“帮助”“测试参数 苹果 香蕉”。
- 包含：消息里包含关键词就触发，适合“测试你好”。
- 前缀：消息以关键词开头就触发，适合命令参数。
- 正则：使用正则表达式匹配。

### 场景

- 全部：群聊和私聊都生效。
- 仅群聊：只在群里触发。
- 仅私聊：只在私聊触发。

### 回复类型

- 文本
- Markdown
- 图片
- 语音
- 视频
- 文件

### 启用
关闭后规则不会触发。

### 引用消息
开启后，机器人回复会引用触发关键词的原消息，显示为 QQ 原生引用卡片。

### 回复内容 / Markdown 内容
文本或 Markdown 内容。支持变量。

### 媒体 URL
图片、语音、视频、文件类型使用。

## 3. 支持变量

常用变量：

- {content}：收到的完整消息
- {recv_msg}：收到的完整消息
- {关键词}：命中的关键词
- {参数}：命令参数整体
- {参数1}：第 1 个参数
- {参数2}：第 2 个参数
- {参数3}：第 3 个参数
- {user_id}：用户 OpenID
- {user_name}：用户昵称，昵称为空时自动显示用户ID后6位
- {username}：用户昵称，等同于 {user_name}
- {用户昵称}：用户昵称，等同于 {user_name}
- {group_id}：群 OpenID
- {bot_id}：机器人内部标识
- {app_id}：机器人 AppID
- {time}：当前时间
- {url}：消息中的第一个链接
- {链接}：消息中的第一个链接

## 4. 批量导入格式

每条规则用 --- 分隔。

标准格式：

分类：基础测试
关键词：测试你好,测试hi
匹配：包含
场景：全部
类型：文本
引用消息：是
内容：
你好呀，{user_name}，这是一条带引用消息卡片的文本回复。
---
分类：基础测试
关键词：普通你好
匹配：包含
场景：全部
类型：文本
引用消息：否
内容：
你好呀，{user_name}，这是一条普通文本回复，不引用消息。

## 5. 引用消息导入写法

以下写法都支持：

引用消息：是
引用回复：是
引用：是
quote_reply：1
quote：true

关闭引用：

引用消息：否
引用回复：否
引用：否
quote_reply：0
quote：false

## 6. 测试建议

导入测试文件后，可以依次发送：

- 测试引用你好
- 测试普通你好
- 测试时间
- 测试参数 苹果 香蕉 西瓜
- 测试菜单
- 测试图片

预期效果：

- “测试引用你好”会显示 QQ 原生引用消息卡片。
- “测试普通你好”不会显示引用卡片。
- “测试参数 苹果 香蕉 西瓜”会展示参数变量。
- “测试菜单”会展示 Markdown 菜单。

## 7. 常见问题

### 勾选了引用消息但没显示引用卡片？

请确认：

1. 规则已保存。
2. 列表里该规则显示“引用消息”。
3. 群消息事件里存在 QQ 的 REFIDX 信息。
4. 机器人接口返回成功。

系统现在会优先使用消息里的 msg_idx=REFIDX_xxx 来生成 QQ 原生引用卡片。

### workflow_api.php?action=list 显示“请指定机器人”是不是异常？

不是异常。这个接口需要 bot 参数，不传 bot 时返回“请指定机器人”。
