From ba5563abc5f271a4c98436c34ed0b8caddc46083 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sun, 17 Aug 2025 16:48:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E7=A7=81=E8=81=8A=E4=B8=93?= =?UTF-8?q?=E6=B3=A8=E6=A8=A1=E5=BC=8F=E4=B8=8B=E5=BC=BA=E5=88=B6=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在私聊的专注模式下,即使用户的发言没有触发任何功能,机器人也会进行回复,而不是选择“no_reply”。 此举旨在提升私聊场景下的用户体验,避免机器人因未匹配到关键词而沉默,让对话感觉更自然。 --- src/chat/chat_loop/heartFC_chat.py | 8 +++++++- src/plugins/built_in/core_actions/no_reply.py | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/chat/chat_loop/heartFC_chat.py b/src/chat/chat_loop/heartFC_chat.py index 4b0330ba4..212328d53 100644 --- a/src/chat/chat_loop/heartFC_chat.py +++ b/src/chat/chat_loop/heartFC_chat.py @@ -615,7 +615,13 @@ class HeartFChatting: ) action_data["loop_start_time"] = loop_start_time - + + # 在私聊的专注模式下,如果规划动作为no_reply,则强制改为reply + is_private_chat = self.chat_stream.group_info is None + if self.loop_mode == ChatMode.FOCUS and is_private_chat and action_type == "no_reply": + action_type = "reply" + logger.info(f"{self.log_prefix} 私聊专注模式下强制回复") + if action_type == "reply": logger.info(f"{self.log_prefix}{global_config.bot.nickname} 决定进行回复") elif is_parallel: diff --git a/src/plugins/built_in/core_actions/no_reply.py b/src/plugins/built_in/core_actions/no_reply.py index 4aedcf8a9..2da146b0c 100644 --- a/src/plugins/built_in/core_actions/no_reply.py +++ b/src/plugins/built_in/core_actions/no_reply.py @@ -18,7 +18,6 @@ class NoReplyAction(BaseAction): focus_activation_type = ActionActivationType.NEVER normal_activation_type = ActionActivationType.NEVER mode_enable = ChatMode.FOCUS - chat_type_allow = ChatType.GROUP parallel_action = False # 动作基本信息