diff --git a/src/chat/planner_actions/action_manager.py b/src/chat/planner_actions/action_manager.py index 7801a2487..8bfcc0143 100644 --- a/src/chat/planner_actions/action_manager.py +++ b/src/chat/planner_actions/action_manager.py @@ -219,6 +219,7 @@ class ChatterActionManager: success, response_set, _ = await generator_api.generate_reply( chat_stream=chat_stream, reply_message=target_message, + action_data=action_data or {}, available_actions=self.get_using_actions(), enable_tool=global_config.tool.enable_tool, request_type="chat.replyer", diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index c3cf13c0d..868e34f21 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -104,7 +104,9 @@ def init_prompt(): ## 其他信息 {memory_block} {relation_info_block} + {extra_info_block} + {action_descriptions} ## 任务 @@ -112,7 +114,7 @@ def init_prompt(): *{chat_scene}* ### 核心任务 -- 你现在的主要任务是和 {sender_name} 聊天。{relation_info_block}同时,也有其他用户会参与聊天,你可以参考他们的回复内容,但是你现在想回复{sender_name}的发言。 +- 你现在的主要任务是和 {sender_name} 聊天。同时,也有其他用户会参与聊天,你可以参考他们的回复内容,但是你现在想回复{sender_name}的发言。 - {reply_target_block} 你需要生成一段紧密相关且能推动对话的回复。 diff --git a/src/plugin_system/apis/generator_api.py b/src/plugin_system/apis/generator_api.py index 5ffae7298..2df3a7046 100644 --- a/src/plugin_system/apis/generator_api.py +++ b/src/plugin_system/apis/generator_api.py @@ -120,6 +120,13 @@ async def generate_reply( if not extra_info and action_data: extra_info = action_data.get("extra_info", "") + # 如果action_data中有thinking,添加到extra_info中 + if action_data and (thinking := action_data.get("thinking")): + if extra_info: + extra_info += f"\n\n思考过程:{thinking}" + else: + extra_info = f"思考过程:{thinking}" + # 调用回复器生成回复 success, llm_response_dict, prompt = await replyer.generate_reply_with_context( reply_to=reply_to, diff --git a/src/plugins/built_in/affinity_flow_chatter/plan_filter.py b/src/plugins/built_in/affinity_flow_chatter/plan_filter.py index c05cc1372..b6ec15c85 100644 --- a/src/plugins/built_in/affinity_flow_chatter/plan_filter.py +++ b/src/plugins/built_in/affinity_flow_chatter/plan_filter.py @@ -434,8 +434,8 @@ class ChatterPlanFilter: action_data = {k: v for k, v in single_action_obj.items() if k not in ["action_type", "reason"]} # 保留原始的thinking字段(如果有) - thinking = action_json.get("thinking") - if thinking: + thinking = action_json.get("thinking", "") + if thinking and thinking != "未提供思考过程": action_data["thinking"] = thinking target_message_obj = None diff --git a/src/plugins/built_in/affinity_flow_chatter/planner_prompts.py b/src/plugins/built_in/affinity_flow_chatter/planner_prompts.py index f660f1cd0..4212bf7b2 100644 --- a/src/plugins/built_in/affinity_flow_chatter/planner_prompts.py +++ b/src/plugins/built_in/affinity_flow_chatter/planner_prompts.py @@ -53,6 +53,7 @@ def init_prompts(): - **回复消息时必须遵循对话的流程,不要重复已经说过的话。** - **确保回复与上下文紧密相关,回应要针对用户的消息内容。** - **保持角色设定的一致性,使用符合你性格的语言风格。** +- **不要对表情包消息做出回应!** **输出格式:** 请严格按照以下 JSON 格式输出,包含 `thinking` 和 `actions` 字段: