From 3e4dca8571ac11801f37e17432fc18f21e0bd2ed Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 2 Jun 2025 12:40:33 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=BF=9D=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/focus_chat/heartFC_Cycleinfo.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/chat/focus_chat/heartFC_Cycleinfo.py b/src/chat/focus_chat/heartFC_Cycleinfo.py index a12dc861f..88ea5139e 100644 --- a/src/chat/focus_chat/heartFC_Cycleinfo.py +++ b/src/chat/focus_chat/heartFC_Cycleinfo.py @@ -1,6 +1,9 @@ import time import os from typing import Optional, Dict, Any +from src.common.logger_manager import get_logger + +logger = get_logger("hfc") # Logger Name Changed log_dir = "log/log_cycle_debug/" @@ -81,17 +84,19 @@ class CycleDetail: """完成循环,记录结束时间""" self.end_time = time.time() - # 处理 prefix,只保留中英文字符 + # 处理 prefix,只保留中英文字符和基本标点 if not self.prefix: self.prefix = "group" else: - # 只保留中文和英文字符 - self.prefix = "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char.isascii()) - if not self.prefix: - self.prefix = "group" + # 只保留中文、英文字母、数字和基本标点 + allowed_chars = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_") + self.prefix = "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char in allowed_chars) or "group" current_time_minute = time.strftime("%Y%m%d_%H%M", time.localtime()) - self.log_cycle_to_file(log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json") + try: + self.log_cycle_to_file(log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json") + except Exception as e: + logger.warning(f"写入文件日志,可能是群名称包含非法字符: {e}") def log_cycle_to_file(self, file_path: str): """将循环信息写入文件""" From d6b360dd221b35643efb028753cce05e8954fb41 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 2 Jun 2025 12:41:59 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E9=81=A5?= =?UTF-8?q?=E6=B5=8B=E6=8A=A5=E9=94=99=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/remote.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common/remote.py b/src/common/remote.py index 5ffc5ebc1..13d68d5c1 100644 --- a/src/common/remote.py +++ b/src/common/remote.py @@ -122,7 +122,9 @@ class TelemetryHeartBeatTask(AsyncTask): timeout=5, # 设置超时时间为5秒 ) except Exception as e: - logger.error(f"心跳发送失败: {e}") + # 你知道为什么设置成debug吗? + # 因为我不想看到群里天天报错 + logger.debug(f"心跳发送失败: {e}") logger.debug(response) From 12a88dcd994b98489847fb3be19a5a1c44796bed Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 2 Jun 2025 12:43:36 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat=EF=BC=9A=E5=85=81=E8=AE=B8=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E8=81=8A=E5=A4=A9=E8=A7=84=E5=88=92=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/focus_chat/heartFC_chat.py | 2 +- src/chat/focus_chat/info_processors/mind_processor.py | 6 ++---- src/config/official_configs.py | 3 +++ template/bot_config_template.toml | 3 ++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/chat/focus_chat/heartFC_chat.py b/src/chat/focus_chat/heartFC_chat.py index 2fef2a448..7988f860a 100644 --- a/src/chat/focus_chat/heartFC_chat.py +++ b/src/chat/focus_chat/heartFC_chat.py @@ -40,7 +40,7 @@ install(extra_lines=3) # 如果配置键名为 None,则该处理器默认启用且不能通过 focus_chat_processor 配置禁用 PROCESSOR_CLASSES = { "ChattingInfoProcessor": (ChattingInfoProcessor, None), - "MindProcessor": (MindProcessor, None), + "MindProcessor": (MindProcessor, "mind_processor"), "ToolProcessor": (ToolProcessor, "tool_use_processor"), "WorkingMemoryProcessor": (WorkingMemoryProcessor, "working_memory_processor"), "SelfProcessor": (SelfProcessor, "self_identify_processor"), diff --git a/src/chat/focus_chat/info_processors/mind_processor.py b/src/chat/focus_chat/info_processors/mind_processor.py index 910b5c759..d930065a6 100644 --- a/src/chat/focus_chat/info_processors/mind_processor.py +++ b/src/chat/focus_chat/info_processors/mind_processor.py @@ -23,7 +23,6 @@ logger = get_logger("processor") def init_prompt(): group_prompt = """ -你的名字是{bot_name} {memory_str}{extra_info}{relation_prompt} {cycle_info_block} 现在是{time_now},你正在上网,和qq群里的网友们聊天,以下是正在进行的聊天内容: @@ -37,9 +36,8 @@ def init_prompt(): 现在请你继续输出观察和规划,输出要求: 1. 先关注未读新消息的内容和近期回复历史 2. 根据新信息,修改和删除之前的观察和规划 -3. 根据聊天内容继续输出观察和规划 -4. 注意群聊的时间线索,话题由谁发起,进展状况如何,思考聊天的时间线。 -6. 语言简洁自然,不要分点,不要浮夸,不要修辞,仅输出思考内容就好""" +3. 注意群聊的时间线索,话题由谁发起,进展状况如何。 +4. 语言简洁自然,不要分点,不要浮夸,不要修辞,仅输出内容就好""" Prompt(group_prompt, "sub_heartflow_prompt_before") private_prompt = """ diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 274ec99e6..3ec6c6884 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -157,6 +157,9 @@ class FocusChatConfig(ConfigBase): @dataclass class FocusChatProcessorConfig(ConfigBase): """专注聊天处理器配置类""" + + mind_processor: bool = True + """是否启用思维处理器""" self_identify_processor: bool = True """是否启用自我识别处理器""" diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 439a6e121..d4cdbd15d 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "2.7.0" +version = "2.8.0" #----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读---- #如果你想要修改配置文件,请在修改后将version的值进行变更 @@ -103,6 +103,7 @@ compressed_length = 8 # 不能大于observation_context_size,心流上下文压 compress_length_limit = 4 #最多压缩份数,超过该数值的压缩上下文会被删除 [focus_chat_processor] # 专注聊天处理器,打开可以实现更多功能,但是会增加token消耗 +mind_processor = false # 是否启用思维处理器 self_identify_processor = true # 是否启用自我识别处理器 tool_use_processor = false # 是否启用工具使用处理器 working_memory_processor = false # 是否启用工作记忆处理器,不稳定,消耗量大 From 78a9709fa2995f5b8e9dcafb651bcf5c4eedc506 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 2 Jun 2025 12:45:14 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix=EF=BC=9A=E4=B8=8D=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E5=9B=9E=E5=A4=8D=E5=9C=A8=E5=BE=AA=E7=8E=AF=E8=A7=82?= =?UTF-8?q?=E5=AF=9F=E4=B8=AD=E7=9A=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/heart_flow/observation/hfcloop_observation.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/chat/heart_flow/observation/hfcloop_observation.py b/src/chat/heart_flow/observation/hfcloop_observation.py index 1e1c7fe07..02617cba8 100644 --- a/src/chat/heart_flow/observation/hfcloop_observation.py +++ b/src/chat/heart_flow/observation/hfcloop_observation.py @@ -60,7 +60,7 @@ class HFCloopObservation: if action_type == "reply": consecutive_text_replies += 1 - response_text = cycle.loop_plan_info["action_result"]["action_data"].get("text", "[空回复]") + response_text = cycle.loop_action_info["reply_text"] responses_for_prompt.append(response_text) if is_taken: @@ -68,9 +68,10 @@ class HFCloopObservation: else: action_detailed_str += f"{action_taken_time_str}时,你选择回复(action:{action_type},内容是:'{response_text}'),但是动作失败了。{action_reasoning_str}\n" elif action_type == "no_reply": - action_detailed_str += ( - f"{action_taken_time_str}时,你选择不回复(action:{action_type}),{action_reasoning_str}\n" - ) + # action_detailed_str += ( + # f"{action_taken_time_str}时,你选择不回复(action:{action_type}),{action_reasoning_str}\n" + # ) + pass else: if is_taken: action_detailed_str += ( From c8fac6c513fc41693b61edbf4049a1249e5eb602 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 2 Jun 2025 04:46:33 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=A4=96=20=E8=87=AA=E5=8A=A8=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/focus_chat/heartFC_Cycleinfo.py | 9 +++++++-- src/config/official_configs.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/chat/focus_chat/heartFC_Cycleinfo.py b/src/chat/focus_chat/heartFC_Cycleinfo.py index 88ea5139e..134c808bb 100644 --- a/src/chat/focus_chat/heartFC_Cycleinfo.py +++ b/src/chat/focus_chat/heartFC_Cycleinfo.py @@ -90,11 +90,16 @@ class CycleDetail: else: # 只保留中文、英文字母、数字和基本标点 allowed_chars = set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_") - self.prefix = "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char in allowed_chars) or "group" + self.prefix = ( + "".join(char for char in self.prefix if "\u4e00" <= char <= "\u9fff" or char in allowed_chars) + or "group" + ) current_time_minute = time.strftime("%Y%m%d_%H%M", time.localtime()) try: - self.log_cycle_to_file(log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json") + self.log_cycle_to_file( + log_dir + self.prefix + f"/{current_time_minute}_cycle_" + str(self.cycle_id) + ".json" + ) except Exception as e: logger.warning(f"写入文件日志,可能是群名称包含非法字符: {e}") diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 3ec6c6884..a71eeb087 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -157,7 +157,7 @@ class FocusChatConfig(ConfigBase): @dataclass class FocusChatProcessorConfig(ConfigBase): """专注聊天处理器配置类""" - + mind_processor: bool = True """是否启用思维处理器"""