diff --git a/src/chat/planner_actions/planner.py b/src/chat/planner_actions/planner.py index e8ff72468..a1deb5698 100644 --- a/src/chat/planner_actions/planner.py +++ b/src/chat/planner_actions/planner.py @@ -35,7 +35,6 @@ def init_prompt(): {mood_block} {time_block} {identity_block} -你的核心任务是智能判断消息是否真正需要你的回应,避免强行插话或无意义的参与。只有当消息确实针对你或你能提供有价值的回应时才参与对话。 {custom_prompt_block} {chat_context_description},以下是具体的聊天内容 @@ -295,7 +294,7 @@ class ActionPlanner: chat_content_block, message_id_list = build_readable_messages_with_id( messages=message_list_before_now, - timestamp_mode="normal_no_YMD", + timestamp_mode="normal", read_mark=self.last_obs_time_mark, truncate=True, show_actions=True, diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index 6104f8437..7c410ae74 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -598,7 +598,7 @@ class DefaultReplyer: all_dialogue_prompt_str = build_readable_messages( latest_25_msgs, replace_bot_name=True, - timestamp_mode="normal_no_YMD", + timestamp_mode="normal", truncate=True, ) all_dialogue_prompt = f"所有用户的发言:\n{all_dialogue_prompt_str}" @@ -606,33 +606,18 @@ class DefaultReplyer: # 构建核心对话 prompt core_dialogue_prompt = "" if core_dialogue_list: - # 检查最新五条消息中是否包含bot自己说的消息 - latest_5_messages = core_dialogue_list[-5:] if len(core_dialogue_list) >= 5 else core_dialogue_list - has_bot_message = any(str(msg.get("user_id")) == bot_id for msg in latest_5_messages) - - # logger.info(f"最新五条消息:{latest_5_messages}") - # logger.info(f"最新五条消息中是否包含bot自己说的消息:{has_bot_message}") - - # 如果最新五条消息中不包含bot的消息,则返回空字符串 - if not has_bot_message: - core_dialogue_prompt = "" - else: - core_dialogue_list = core_dialogue_list[-int(global_config.chat.max_context_size * 0.6) :] # 限制消息数量 - - core_dialogue_prompt_str = build_readable_messages( - core_dialogue_list, - replace_bot_name=True, - merge_messages=False, - timestamp_mode="normal_no_YMD", - read_mark=0.0, - truncate=True, - show_actions=True, - ) - core_dialogue_prompt = f"""-------------------------------- -这是你和{sender}的对话,你们正在交流中: -{core_dialogue_prompt_str} --------------------------------- -""" + core_dialogue_list = core_dialogue_list[-int(global_config.chat.max_context_size * 2) :] # 限制消息数量 + + core_dialogue_prompt_str = build_readable_messages( + core_dialogue_list, + replace_bot_name=True, + merge_messages=False, + timestamp_mode="normal", + read_mark=0.0, + truncate=True, + show_actions=True, + ) + core_dialogue_prompt = core_dialogue_prompt_str return core_dialogue_prompt, all_dialogue_prompt @@ -897,7 +882,7 @@ class DefaultReplyer: unified_message_list, replace_bot_name=True, merge_messages=False, - timestamp_mode="normal_no_YMD", + timestamp_mode="normal", read_mark=0.0, truncate=True, show_actions=True, diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 0b7122f6c..aa0d33da5 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -220,6 +220,14 @@ class ChatConfig(ConfigBase): planner_custom_prompt_content: str = "" """决策器自定义提示词内容,仅在planner_custom_prompt_enable为True时生效""" + + timestamp_display_mode: Literal["normal", "normal_no_YMD", "relative"] = "normal_no_YMD" + """ + 消息时间戳显示模式: + - normal: 完整日期时间格式 (YYYY-MM-DD HH:MM:SS) + - normal_no_YMD: 仅显示时间 (HH:MM:SS) + - relative: 相对时间格式 (几分钟前/几小时前等) + """ def get_current_talk_frequency(self, chat_stream_id: Optional[str] = None) -> float: """