一款为 AstrBot 设计的关键词回复插件,支持指令触发、自动监听、正则表达式、图文/At/QQ表情/语音/视频/聊天记录回复,以及引用消息导入内容与精细化的群聊黑白名单控制。
- 🖥️ 可视化管理: 支持通过 Pages 直接管理、编辑关键词和检测词
- 🚀 双模式触发: 支持“指令触发”(如
/关键词)和“自动监听”(消息包含关键词即触发)两种模式 - 📝 多媒体回复: 支持文字、图片、At、QQ表情的组合回复,并支持通过引用消息配置语音、视频、聊天记录为回复内容
- ↩️ 引用导入: 添加或编辑回复时可直接引用一条消息导入内容,指令正文与引用内容会按顺序合并保存
- 🔍 正则表达式: 监听模式支持正则表达式匹配,并内置安全检查防止 ReDoS 攻击
- 🛡️ 黑白名单控制: 每个关键词可独立设置在哪些群聊启用或禁用,支持全局配置
- 💬 引用回复: 可选在回复时引用触发者的原始消息,让回复更有针对性
- 🧩 变量模板: 回复文本支持上下文变量(如
{user_name}、{group_id}),可动态生成个性化内容 - 🕒 自动撤回: 支持设置回复消息后的自动撤回延迟,适用于保持群聊整洁
- 🧊 检测冷却: 支持设置检测词触发冷却时间,防止短时间内高频触发导致刷屏
- 📊 灵活管理: 支持为一个关键词添加多个回复词条,触发时随机选择;支持通过序号或内容快速操作
直接输入关键词(需唤醒 Bot,如 /关键词)即可触发回复。
| 命令 | 格式 | 说明 |
|---|---|---|
| 添加 | /添加关键词 <关键词> <回复内容> |
添加新关键词,支持文本、图片、At、QQ表情;也可直接引用消息导入语音、视频、聊天记录等内容 |
| 编辑 | /编辑关键词 <序号/内容> <新关键词> |
修改关键词触发词 |
| 删除 | /删除关键词 <序号/内容> |
删除整个关键词及其所有回复 |
| 查看列表 | /查看关键词列表 |
列出所有指令触发型的关键词(别名:/查看所有关键词) |
| 详情 | /查看关键词 <序号/内容> |
查看关键词的详细配置及完整回复内容 |
监听聊天消息,匹配成功后自动回复。
| 命令 | 格式 | 说明 |
|---|---|---|
| 添加 | /添加检测词 [-r] <关键词> <回复内容> |
-r 参数表示启用正则表达式匹配;回复内容支持文本、图片、At、QQ表情,也可直接引用消息导入语音、视频、聊天记录 |
| 编辑 | /编辑检测词 [-r] <序号> <新关键词> |
修改检测词触发词或正则开关 |
| 删除 | /删除检测词 <序号/内容> |
删除该检测词 |
| 查看列表 | /查看检测词列表 |
列出所有自动监听型的检测词(别名:/查看所有检测词) |
| 详情 | /查看检测词 <序号/内容> |
查看检测词的匹配模式及回复内容 |
每个关键词/检测词可以拥有多个回复,系统会随机抽取一个。
- 添加回复:
/添加[关键词/检测词]回复 <序号/内容> <新回复内容> - 查看回复:
/查看[关键词/检测词]回复 <序号/内容> [回复序号] - 编辑回复:
/编辑[关键词/检测词]回复 <序号/内容> [回复序号] <新回复内容> - 删除回复:
/删除[关键词/检测词]回复 <序号/内容> [回复序号]
Tip
- 当关键词仅有一个回复时,查看、编辑和删除指令中的
回复序号可以省略。 - 添加或编辑回复时,
<新回复内容>可省略,可直接通过引用消息提供内容。引用导入仅aiocqhttp平台可用。 - 文本中支持使用
[@12345]转义保存At,适合在当前会话无法真实艾特目标用户时使用。
Tip
以下示例以“关键词”为例,对于“检测词”,只需将指令中的 关键词 替换为 检测词 即可(如 /启用检测词)。
| 命令 | 示例 | 说明 |
|---|---|---|
| 指定群启用 | /启用关键词 1 123456789 |
切换为白名单模式,并添加指定群号 |
| 当前群启用 | /启用关键词 1 |
在当前群聊启用该词 |
| 全局启用 | /启用关键词 1 全局 |
切换为黑名单模式并清空,即全平台生效 |
| 指定群禁用 | /禁用关键词 1 123456789 |
切换为黑名单模式,并添加指定群号 |
| 当前群禁用 | /禁用关键词 1 |
在当前群聊禁用该词 |
| 全局禁用 | /禁用关键词 1 全局 |
彻底关闭该关键词的触发 |
在回复文本中可直接使用以下占位符(触发时自动替换):
{user_id}: 触发者 ID{user_name}: 触发者昵称{group_id}: 群号{self_id}: Bot 自身 ID{platform}: 平台名{message}: 触发的原始消息文本{date}: 当前日期(YYYY-MM-DD){time}: 当前时间(HH:MM:SS){datetime}: 当前日期时间(YYYY-MM-DD HH:MM:SS)
在 AstrBot 后台配置界面进行设置:
| 配置项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
whitelist |
list[str] |
[] |
允许管理插件的用户 ID 列表(非管理员也可用指令)。 |
notify_permission_denied |
bool |
true |
无权限用户执行受限命令时是否发送“权限不足”提示。关闭后静默忽略。 |
allow_group_member_list_keywords |
bool |
false |
是否允许普通群成员使用“查看关键词列表”(仅显示当前群已启用的关键词名)。 |
allow_group_member_list_detects |
bool |
false |
是否允许普通群成员使用“查看检测词列表”(仅显示当前群已启用的检测词名)。 |
quote_reply |
bool |
false |
回复时是否引用触发回复的消息。 |
qq_forward_all_replies |
bool |
false |
是否在 QQ 群聊中将同一关键词/检测词下的全部回复以合并转发形式发送;关闭时保持随机发送单条回复。 |
recall_delay |
str |
"0 0" |
自动撤回延迟(秒)。格式:"关键词延迟 检测词延迟"。0 表示不撤回。 |
case_sensitive |
bool |
false |
非正则关键词/检测词匹配时是否区分大小写(含按内容查找、触发匹配)。 |
cooldown |
int |
0 |
检测词触发冷却时间(秒),0 表示不冷却。 |
ignore_cooldown_on_exact_match |
bool |
false |
完全匹配时是否无视冷却时间(仅对非正则检测词生效)。 |
enable_text_template |
bool |
true |
是否启用回复文本变量模板替换。 |
详见 CHANGELOG
- 部分设计参考了以下优秀项目,在此表示诚挚感谢:
- AstrBot 帮助文档
- 如果您在使用中遇到问题,欢迎提交 Issue。
如果本插件对你有帮助,欢迎点个 ⭐ Star 支持一下!