feat(chat): 新增私聊强制回复功能

当在私聊场景下,如果大脑决策为“no_reply”,此功能会将其强制修改为“reply”,以确保机器人总能响应私聊消息。

该功能通过新的配置项 `force_reply_private` 控制,默认为关闭状态。同时,原配置项 `force_focus_private` 已被重命名为 `force_reply_private` 以更准确地反映其功能。
This commit is contained in:
minecraft1024a
2025-09-06 21:44:37 +08:00
parent de6a28d88b
commit db3c3ebd63
3 changed files with 10 additions and 4 deletions

View File

@@ -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")

View File

@@ -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="时间戳显示模式"

View File

@@ -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反应太慢