From 35403678b2112481c695b6e9f77f344a21d1575f Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Fri, 12 Sep 2025 20:57:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(prompt):=20=E6=B7=BB=E5=8A=A0=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E5=87=86=E5=88=99=E5=8F=82=E6=95=B0=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=B7=A5=E5=85=B7=E6=89=A7=E8=A1=8C=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在PromptParameters类中添加safety_guidelines_block参数 - 更新ToolExecutor初始化,传入chat_id参数用于上下文追踪 - 在所有参数准备方法中集成安全准则配置 - 增强prompt系统的安全性和可追溯性 --- src/chat/utils/prompt.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/chat/utils/prompt.py b/src/chat/utils/prompt.py index ae0c9c4b1..88584f51d 100644 --- a/src/chat/utils/prompt.py +++ b/src/chat/utils/prompt.py @@ -71,6 +71,7 @@ class PromptParameters: identity_block: str = "" schedule_block: str = "" moderation_prompt_block: str = "" + safety_guidelines_block: str = "" reply_target_block: str = "" mood_prompt: str = "" action_descriptions: str = "" @@ -641,7 +642,7 @@ class Prompt: ) # 创建工具执行器 - tool_executor = ToolExecutor() + tool_executor = ToolExecutor(chat_id=self.parameters.chat_id) # 执行工具获取信息 tool_results, _, _ = await tool_executor.execute_from_chat_message( @@ -768,6 +769,7 @@ class Prompt: "reply_style": global_config.personality.reply_style, "keywords_reaction_prompt": self.parameters.keywords_reaction_prompt or context_data.get("keywords_reaction_prompt", ""), "moderation_prompt": self.parameters.moderation_prompt_block or context_data.get("moderation_prompt", ""), + "safety_guidelines_block": self.parameters.safety_guidelines_block or context_data.get("safety_guidelines_block", ""), } def _prepare_normal_params(self, context_data: Dict[str, Any]) -> Dict[str, Any]: @@ -791,6 +793,7 @@ class Prompt: "mood_state": self.parameters.mood_prompt or context_data.get("mood_state", ""), "keywords_reaction_prompt": self.parameters.keywords_reaction_prompt or context_data.get("keywords_reaction_prompt", ""), "moderation_prompt": self.parameters.moderation_prompt_block or context_data.get("moderation_prompt", ""), + "safety_guidelines_block": self.parameters.safety_guidelines_block or context_data.get("safety_guidelines_block", ""), } def _prepare_default_params(self, context_data: Dict[str, Any]) -> Dict[str, Any]: @@ -810,6 +813,7 @@ class Prompt: "reply_style": global_config.personality.reply_style, "keywords_reaction_prompt": self.parameters.keywords_reaction_prompt or context_data.get("keywords_reaction_prompt", ""), "moderation_prompt": self.parameters.moderation_prompt_block or context_data.get("moderation_prompt", ""), + "safety_guidelines_block": self.parameters.safety_guidelines_block or context_data.get("safety_guidelines_block", ""), } def format(self, *args, **kwargs) -> str: From de4402395235d64d4bca044b2c3e55a46a202648 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Fri, 12 Sep 2025 21:08:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(plugin=5Fsystem):=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=20base=5Faction=20=E4=B8=AD=E7=9A=84=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 `component_registry` 的导入移至 `run` 方法内部,以避免在模块加载时产生循环依赖。 --- src/plugin_system/base/base_action.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/plugin_system/base/base_action.py b/src/plugin_system/base/base_action.py index e1663afc6..2ae450b6b 100644 --- a/src/plugin_system/base/base_action.py +++ b/src/plugin_system/base/base_action.py @@ -8,9 +8,6 @@ from src.common.logger import get_logger from src.chat.message_receive.chat_stream import ChatStream from src.plugin_system.base.component_types import ActionActivationType, ChatMode, ActionInfo, ComponentType, ChatType from src.plugin_system.apis import send_api, database_api, message_api -from src.plugin_system.core.component_registry import component_registry - - logger = get_logger("base_action") @@ -398,6 +395,7 @@ class BaseAction(ABC): try: # 1. 从注册中心获取Action类 + from src.plugin_system.core.component_registry import component_registry action_class = component_registry.get_component_class(action_name, ComponentType.ACTION) if not action_class: logger.error(f"{log_prefix} 未找到Action: {action_name}")