修复:改进VLM未读判断 + 修复callback显示逻辑

1. VLM prompt: has_new_message 改为检查左侧边栏红点,而非右上角
2. engine.py: callback 显示最新消息,清晰标注 has_new
3. main.py: on_message 回调更新以显示 has_new 状态
This commit is contained in:
2026-04-13 12:08:18 +08:00
parent b289d11ef5
commit f325025365
6 changed files with 30 additions and 9 deletions

View File

@@ -275,8 +275,19 @@ class WeChatAgent:
has_new=has_new
)
# 触发消息回调
self._emit("on_message", snapshot)
# 详细日志打印所有消息按VLM返回顺序
logger.debug(f"消息列表(共{len(messages)}条,新消息在前):")
for i, msg in enumerate(messages[:5]):
logger.debug(f" [{i}] sender={msg.get('sender')}, is_self={msg.get('is_self')}, time={msg.get('time')}, content={msg.get('content', '')[:30]}")
# 触发消息回调(传入最新消息用于显示)
latest_msg = messages[0] if messages else {}
self._emit("on_message", {
"chat_name": chat_name,
"latest_message": latest_msg,
"has_new": has_new,
"all_messages": messages
})
# 判断是否需要回复
if self.processor.should_reply(snapshot):
@@ -289,7 +300,7 @@ class WeChatAgent:
else:
logger.warning("生成回复为空")
else:
logger.debug("不需要回复(已读消息或自己发送)")
logger.debug("不需要回复")
except Exception as e:
logger.error(f"轮询处理异常: {e}")