群聊机器人最难处理的部分不是生成一句回复,而是判断是否应该回复。过度主动会打断聊天,过度保守又会像离线。Group Chat Plus 的核心尝试,是把“是否参与”从单次模型调用中拆出来,变成可以观察、调节和测试的决策过程。
项目概览
项目仓库:RhoninSeiei/astrbot_plugin_group_chat_plus。
插件围绕群聊消息入口、概率系统、AI 决策、上下文缓存、图片说明、记忆适配、主动发言和 Web 管理面板组织。它不是简单地让模型收到消息就回复,而是先判断当前场景是否适合参与。
决策链
第一层是规则和概率。命令消息、明显无关消息、冷却期和回复密度会先过滤一部分输入。概率系统再根据最近是否回复、当前对话热度和消息质量调整候选权重。
第二层是 AI 判断。进入这一层的消息会带上必要上下文,让模型判断是否值得回应。这样可以把“关键词触发”改成“场景判断”,减少在群聊中机械插话。
第三层是会话偏好。近期修复把 session persona 和 provider 规则纳入判断,避免同一插件在不同会话中使用错误人格或模型配置。发言时机和生成方式因此可以跟随会话边界变化。
上下文与记忆
插件会缓存未回复消息,并在后续真正回复时把相关内容转入上下文。图片也先转成简短说明,避免每次决策都重新处理原始媒体。长期记忆则通过适配器接入,保持角色边界和会话边界。
这个设计的价值在于把“即时回复”变成“可延迟的参与”。机器人可以先观察,再在合适时机回应,而不是把每条消息都当成必须处理的请求。
维护心得
群聊增强类插件最需要稳定的是边界:哪些消息进入候选,哪些上下文可以参与判断,哪个会话偏好负责生成。把这些边界拆成可测试模块后,后续调整发言频率、图片处理或记忆接入时,不必重写整个回复流程。