前排提醒 本插件是vibe coding制作的
这是一个基于koishi的qqbot插件,我本人主要使用napcat,已在群内稳定使用一个月,现发布第一个相对稳定的版本。
写它的起因是我想要一个“不用数据库” 的群管方案。所以它的全部状态都是 Koishi 数据目录下的 Markdown 文件,用控制台自带的「探索器 Explorer」就能查看和手改,也能直接备份或丢进 git 管理。
功能展示与几个使用案例
违禁词功能
违禁词不是"包含即触发",而是给整条消息打分
bannedWords: ["加群|30", "私聊|40", "福利|50"]
bannedWordScoreThreshold: 70
每个词可以单独配分值,整条消息累计到阈值才处理——这样「别加群了」和「快来加群」不会得到同一个结果,而不是一刀切。
判定顺序分三级:强关键词 → 白名单 → 普通违禁词。其中强关键词命中即触发、且无视白名单豁免,专门用来堵"违禁句后面接一个白名单词就能绕过管控"的口子。
入群审核:管理员发一句话就行
新申请会推送到群里并带一个 6 位编号,管理员直接发文本处理:
approve 000123 认识
reject 000123 疑似小号
编号可省略,省略时取本群最近一条待审。待审单会落盘,重启不丢。
记忆库 + AI 回复
[memory] 群主最讨厌别人问"在吗"
存进 Memory.md,开启后 AI 回复会检索并引用相关记忆——群规和老梗可以直接喂给它。
AI 回复这块我做了三道闸门逐层收敛:消息阈值 → 随机概率 → 兴趣评分。任何一道没过都不回复、也不调用模型,所以它既不刷屏也不烧钱。消息里 @点名 或命中 bot 自称时可以越过全部闸门。
兴趣判定还能单独指定一个便宜的非推理模型,因为它本质上只是二分类任务。
群管动作
[mute] 123456 10m 刷屏
[mute] @某人 1h 引战
[kick] 123456 屡次违规
时长支持 10 / 10m / 1h / 1d / 1w,上限 30 天。权限采用两步鉴权:先校验操作者身份(白名单 / 群主 / 群管理员),再校验 bot 在该群的执行能力,两步都过才放行。
权限这块我踩过坑:早先版本只校验了「bot 是不是群主」,却没校验「谁在操作」,等于给越权留了口子。现在补齐成两步鉴权,并补了 17 项单元测试覆盖各角色判定矩阵和越权场景。
安装
npm i @nestim/koishi-plugin-qq-group-manager
或在 Koishi 控制台「插件市场」搜索 qq-group-manager 安装。
依赖 koishi >= 4.18.7,需要 OneBot 实现(NapCat / LLOneBot 等)提供
setGroupBan / setGroupKick / getGroupMemberInfo。不需要数据库。
已知限制
写清楚免得踩坑:
-
没有 WebUI,所有配置都在 Koishi 控制台里
-
不用数据库是刻意的取舍:换来零部署、可读可改可备份,代价是数据量很大时不如数据库高效
-
AI 回复默认关闭,需要自己配模型和 API
-
只在 NapCat 上实测过,其他 OneBot 实现理论上兼容但我没验证
完整文档
功能清单、全部指令、配置项说明、数据文件格式都在 GitHub 和 npm 上,这里就不重复贴了:
- GitHub:GitHub - Miseat/koishi-plugin-qq-group-manager: Koishi QQ群管理插件(OneBot/LLOneBot):群管、自动管控、记忆库、识图、AI回复 · GitHub
- npm: @nestim/koishi-plugin-qq-group-manager - npm
有问题回帖或者开 issue 都可以,看到会回。



