From bb9f2623d8a3db4d11f1456d531d898a0168d50e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:16:04 +0000 Subject: [PATCH] refactor: extract hardcoded original_umo key to constant Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com> --- astrbot/core/astr_main_agent.py | 7 +++++-- astrbot/core/astr_main_agent_resources.py | 4 +++- astrbot/core/config/default.py | 2 ++ astrbot/core/pipeline/respond/stage.py | 4 +++- astrbot/core/pipeline/waking_check/stage.py | 7 +++++-- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/astrbot/core/astr_main_agent.py b/astrbot/core/astr_main_agent.py index 5abd3eda3..dfec4b94a 100644 --- a/astrbot/core/astr_main_agent.py +++ b/astrbot/core/astr_main_agent.py @@ -832,13 +832,16 @@ def _get_compress_provider( def _apply_global_context_info(event: AstrMessageEvent, req: ProviderRequest) -> None: """Add platform and session information to user prompt when in global unified context mode.""" - from astrbot.core.config.default import GLOBAL_UNIFIED_CONTEXT_UMO + from astrbot.core.config.default import ( + GLOBAL_UNIFIED_CONTEXT_UMO, + ORIGINAL_UMO_KEY, + ) if event.unified_msg_origin != GLOBAL_UNIFIED_CONTEXT_UMO: return # Get original UMO from extras - original_umo = event.get_extra("original_umo") + original_umo = event.get_extra(ORIGINAL_UMO_KEY) if not original_umo: return diff --git a/astrbot/core/astr_main_agent_resources.py b/astrbot/core/astr_main_agent_resources.py index c6f8fbd2b..c989c91bc 100644 --- a/astrbot/core/astr_main_agent_resources.py +++ b/astrbot/core/astr_main_agent_resources.py @@ -258,7 +258,9 @@ class SendMessageToUserTool(FunctionTool[AstrAgentContext]): self, context: ContextWrapper[AstrAgentContext], **kwargs ) -> ToolExecResult: # In global context mode, default to original UMO if session not specified - original_umo = context.context.event.get_extra("original_umo") + from astrbot.core.config.default import ORIGINAL_UMO_KEY + + original_umo = context.context.event.get_extra(ORIGINAL_UMO_KEY) default_session = original_umo or context.context.event.unified_msg_origin session = kwargs.get("session") or default_session messages = kwargs.get("messages") diff --git a/astrbot/core/config/default.py b/astrbot/core/config/default.py index 435bf8b7c..0a3bb42fb 100644 --- a/astrbot/core/config/default.py +++ b/astrbot/core/config/default.py @@ -19,6 +19,8 @@ WEBHOOK_SUPPORTED_PLATFORMS = [ # Constant UMO for global unified context mode GLOBAL_UNIFIED_CONTEXT_UMO = "global::global" +# Key for storing original UMO in event extras when global context mode is enabled +ORIGINAL_UMO_KEY = "original_umo" # 默认配置 DEFAULT_CONFIG = { diff --git a/astrbot/core/pipeline/respond/stage.py b/astrbot/core/pipeline/respond/stage.py index 573d2fa14..3e8a5a916 100644 --- a/astrbot/core/pipeline/respond/stage.py +++ b/astrbot/core/pipeline/respond/stage.py @@ -170,7 +170,9 @@ class RespondStage(Stage): ) # Restore original UMO before sending if in global context mode - original_umo = event.get_extra("original_umo") + from astrbot.core.config.default import ORIGINAL_UMO_KEY + + original_umo = event.get_extra(ORIGINAL_UMO_KEY) if original_umo: logger.debug( f"Restoring original UMO before sending: {event.unified_msg_origin} -> {original_umo}" diff --git a/astrbot/core/pipeline/waking_check/stage.py b/astrbot/core/pipeline/waking_check/stage.py index fe2915b1e..4fa412652 100644 --- a/astrbot/core/pipeline/waking_check/stage.py +++ b/astrbot/core/pipeline/waking_check/stage.py @@ -82,12 +82,15 @@ class WakingCheckStage(Stage): ) -> None | AsyncGenerator[None, None]: # apply global unified context mode if self.global_unified_context_mode: - from astrbot.core.config.default import GLOBAL_UNIFIED_CONTEXT_UMO + from astrbot.core.config.default import ( + GLOBAL_UNIFIED_CONTEXT_UMO, + ORIGINAL_UMO_KEY, + ) original_umo = event.unified_msg_origin event.unified_msg_origin = GLOBAL_UNIFIED_CONTEXT_UMO # Store original UMO for reference in later stages - event.set_extra("original_umo", original_umo) + event.set_extra(ORIGINAL_UMO_KEY, original_umo) logger.debug( f"Global unified context mode enabled. Changed UMO from {original_umo} to {GLOBAL_UNIFIED_CONTEXT_UMO}" )