From e9195e4a13a7529a1a5a79693eb2f40b8c259c60 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 29 Apr 2026 10:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BE=A4=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E8=A2=ABMaiBot=E5=BD=92=E7=B1=BB=E4=B8=BA=E7=A7=81=E8=81=8A?= =?UTF-8?q?=E7=9A=84=E4=BC=9A=E8=AF=9D=E7=BB=93=E6=9E=84=E6=AD=A7=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 变更项:\n1. 调整 outbound APIMessage 构建逻辑:群聊场景下 receiver_info 仅保留 group_info,不再携带 receiver_info.user_info。\n2. 保留 sender_info.user_info 作为发言人身份来源,避免丢失‘是谁说的’上下文。\n3. 通过结构去歧义,避免下游服务将群消息优先按用户私聊会话归档。\n4. 增补详细中文注释,明确该约束的原因与协议意图。 --- plugins/maibot_adapter/main.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/maibot_adapter/main.py b/plugins/maibot_adapter/main.py index bbc65d3..0a9975a 100644 --- a/plugins/maibot_adapter/main.py +++ b/plugins/maibot_adapter/main.py @@ -533,15 +533,11 @@ class MaiBotAdapterPlugin(MessagePluginInterface): "group_id": roomid, "group_name": group_name, } - # 群聊里额外把 user_info 也带上,目的是给 MaiBot 提供“当前这句话到底是谁说的”: - # 1. sender_info 是纯发送者视角; - # 2. receiver_info.group_info 是群路由视角; - # 3. receiver_info.user_info 则能帮助服务端在需要时直接知道“被路由回群时应 @ 谁”。 - receiver_info["user_info"] = { - "platform": self._platform_name, - "user_id": sender, - "user_nickname": sender_name, - } + # 群聊场景只保留 group_info,不再混入 receiver.user_info: + # 1. sender 身份已经通过 sender_info.user_info 完整表达; + # 2. 若群聊再附带 receiver.user_info,部分下游会优先按“用户会话”归类; + # 3. 这正是你目前看到“群消息被显示成私聊”的高概率根因。 + # 4. 因此这里明确约束:群聊 receiver 只承载群维度路由信息。 else: receiver_info["user_info"] = { "platform": self._platform_name,