1313from agents .agent_run_manager import agent_run_manager
1414from agents .create_agent_info import create_agent_run_info , create_tool_config_list
1515from agents .preprocess_manager import preprocess_manager
16+ from consts .const import MEMORY_SEARCH_START_MSG , MEMORY_SEARCH_DONE_MSG , MEMORY_SEARCH_FAIL_MSG , TOOL_TYPE_MAPPING , LANGUAGE , MESSAGE_ROLE
1617from consts .exceptions import MemoryPreparationException
1718from consts .model import (
1819 AgentInfoRequest ,
@@ -118,7 +119,7 @@ async def _stream_agent_chunks(
118119 if not agent_request .is_debug :
119120 save_messages (
120121 agent_request ,
121- target = "assistant" ,
122+ target = MESSAGE_ROLE [ "ASSISTANT" ] ,
122123 messages = local_messages ,
123124 tenant_id = tenant_id ,
124125 user_id = user_id ,
@@ -149,8 +150,8 @@ async def _add_memory_background():
149150 return
150151
151152 mem_messages_local = [
152- {"role" : "user" , "content" : agent_run_info .query },
153- {"role" : "assistant" , "content" : final_answer_local },
153+ {"role" : MESSAGE_ROLE [ "USER" ] , "content" : agent_run_info .query },
154+ {"role" : MESSAGE_ROLE [ "ASSISTANT" ] , "content" : final_answer_local },
154155 ]
155156
156157 add_result_local = await add_memory_in_levels (
@@ -660,7 +661,7 @@ async def prepare_agent_run(
660661 agent_request : AgentRequest ,
661662 user_id : str ,
662663 tenant_id : str ,
663- language : str = "zh" ,
664+ language : str = LANGUAGE [ "ZH" ] ,
664665 allow_memory_search : bool = True ,
665666):
666667 """
@@ -686,11 +687,11 @@ async def prepare_agent_run(
686687
687688# Helper function for run_agent_stream, used to save messages for either user or assistant
688689def save_messages (agent_request , target : str , user_id : str , tenant_id : str , messages = None ):
689- if target == "user" :
690+ if target == MESSAGE_ROLE [ "USER" ] :
690691 if messages is not None :
691692 raise ValueError ("Messages should be None when saving for user." )
692693 submit (save_conversation_user , agent_request , user_id , tenant_id )
693- elif target == "assistant" :
694+ elif target == MESSAGE_ROLE [ "ASSISTANT" ] :
694695 if messages is None :
695696 raise ValueError (
696697 "Messages cannot be None when saving for assistant." )
@@ -703,7 +704,7 @@ async def generate_stream_with_memory(
703704 agent_request : AgentRequest ,
704705 user_id : str ,
705706 tenant_id : str ,
706- language : str = "zh" ,
707+ language : str = LANGUAGE [ "ZH" ] ,
707708):
708709 # Prepare preprocess task tracking (simulate preprocess flow)
709710 task_id = str (uuid .uuid4 ())
@@ -723,9 +724,9 @@ def _memory_token(message_text: str) -> str:
723724 return json .dumps (payload , ensure_ascii = False )
724725
725726 # Placeholder messages handled by frontend for i18n
726- msg_start = "<MEM_START>"
727- msg_done = "<MEM_DONE>"
728- msg_fail = "<MEM_FAILED>"
727+ msg_start = MEMORY_SEARCH_START_MSG
728+ msg_done = MEMORY_SEARCH_DONE_MSG
729+ msg_fail = MEMORY_SEARCH_FAIL_MSG
729730
730731 # ------------------------------------------------------------------
731732 # Note: the actual streaming happens via `_stream_agent_chunks` helper
@@ -805,7 +806,7 @@ async def generate_stream_no_memory(
805806 agent_request : AgentRequest ,
806807 user_id : str ,
807808 tenant_id : str ,
808- language : str = "zh" ,
809+ language : str = LANGUAGE [ "ZH" ] ,
809810):
810811 """Stream agent responses without any memory preprocessing tokens or fallback logic."""
811812
@@ -850,7 +851,7 @@ async def run_agent_stream(
850851
851852 # Save user message only if not in debug mode (before streaming starts)
852853 if not agent_request .is_debug :
853- save_messages (agent_request , target = "user" ,
854+ save_messages (agent_request , target = MESSAGE_ROLE [ "USER" ] ,
854855 user_id = resolved_user_id ,
855856 tenant_id = resolved_tenant_id )
856857
@@ -952,21 +953,14 @@ def get_agent_call_relationship_impl(agent_id: int, tenant_id: str) -> dict:
952953 Returns:
953954 dict: agent call relationship tree structure
954955 """
955- # Tool type specification: meets test expectations
956- _TYPE_MAPPING = {
957- "mcp" : "MCP" ,
958- "langchain" : "LangChain" ,
959- "local" : "Local" ,
960- }
961-
962956 def _normalize_tool_type (source : str ) -> str :
963957 """Normalize the source from database to the expected display type for testing."""
964958 if not source :
965959 return "UNKNOWN"
966960 s = str (source )
967961 ls = s .lower ()
968- if ls in _TYPE_MAPPING :
969- return _TYPE_MAPPING [ls ]
962+ if ls in TOOL_TYPE_MAPPING :
963+ return TOOL_TYPE_MAPPING [ls ]
970964 # Unknown source: capitalize first letter, keep the rest unchanged (unknown_source -> Unknown_source)
971965 return s [:1 ].upper () + s [1 :]
972966
0 commit comments