From db3c3ebd637496a6fe506af6b1ef03d2ca123daf Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sat, 6 Sep 2025 21:44:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E6=96=B0=E5=A2=9E=E7=A7=81?= =?UTF-8?q?=E8=81=8A=E5=BC=BA=E5=88=B6=E5=9B=9E=E5=A4=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当在私聊场景下,如果大脑决策为“no_reply”,此功能会将其强制修改为“reply”,以确保机器人总能响应私聊消息。 该功能通过新的配置项 `force_reply_private` 控制,默认为关闭状态。同时,原配置项 `force_focus_private` 已被重命名为 `force_reply_private` 以更准确地反映其功能。 --- src/chat/planner_actions/planner.py | 6 ++++++ src/config/official_configs.py | 2 +- template/bot_config_template.toml | 6 +++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/chat/planner_actions/planner.py b/src/chat/planner_actions/planner.py index a56c4d68e..a84f2581c 100644 --- a/src/chat/planner_actions/planner.py +++ b/src/chat/planner_actions/planner.py @@ -582,6 +582,12 @@ class ActionPlanner: action, reasoning = "no_reply", f"大脑处理错误: {e}" # --- 4. 整合大脑和小脑的决策 --- + # 如果是私聊且开启了强制回复,则将no_reply强制改为reply + if not is_group_chat and global_config.chat.force_reply_private and action == "no_reply": + action = "reply" + reasoning = "私聊强制回复" + logger.info(f"{self.log_prefix}私聊强制回复已触发,将动作从 'no_reply' 修改为 'reply'") + is_parallel = True for info in all_sub_planner_results: action_type = info.get("action_type") diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 3a8b46d03..30d33006a 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -75,7 +75,7 @@ class ChatConfig(ValidatedConfigBase): at_bot_inevitable_reply: bool = Field(default=False, description="@机器人的必然回复") talk_frequency_adjust: list[list[str]] = Field(default_factory=lambda: [], description="聊天频率调整") focus_value: float = Field(default=1.0, description="专注值") - force_focus_private: bool = Field(default=False, description="强制专注私聊") + force_reply_private: bool = Field(default=False, description="强制回复私聊") group_chat_mode: Literal["auto", "normal", "focus"] = Field(default="auto", description="群聊模式") timestamp_display_mode: Literal["normal", "normal_no_YMD", "relative"] = Field( default="normal_no_YMD", description="时间戳显示模式" diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 0ee513b6e..1cbd32819 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "6.7.4" +version = "6.7.5" #----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读---- #如果你想要修改配置文件,请递增version的值 @@ -114,8 +114,8 @@ focus_value = 1 # breaking模式配置 enable_breaking_mode = true # 是否启用自动进入breaking模式,关闭后不会自动进入breaking形式 -# 强制私聊专注模式 -force_focus_private = false # 是否强制私聊进入专注模式,开启后私聊将始终保持专注状态 +# 强制私聊回复 +force_reply_private = false # 是否强制私聊回复,开启后私聊将强制回复 max_context_size = 25 # 上下文长度 thinking_timeout = 40 # MoFox-Bot一次回复最长思考规划时间,超过这个时间的思考会放弃(往往是api反应太慢)