Skip to content

Commit c152d29

Browse files
authored
♻️ Improvement: now taskWindow shows 'memory retrieving' message
♻️ Improvement: now taskWindow shows 'memory retrieving' message
2 parents 3e6caae + 3fb5d60 commit c152d29

File tree

14 files changed

+1110
-190
lines changed

14 files changed

+1110
-190
lines changed

backend/agents/create_agent_info.py

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,14 @@ async def create_model_config_list(tenant_id):
4242
url=sub_model_config.get("base_url", ""))]
4343

4444

45-
async def create_agent_config(agent_id, tenant_id, user_id, language: str = 'zh', last_user_query: str = None):
45+
async def create_agent_config(
46+
agent_id,
47+
tenant_id,
48+
user_id,
49+
language: str = "zh",
50+
last_user_query: str = None,
51+
allow_memory_search: bool = True,
52+
):
4653
agent_info = search_agent_info_by_agent_id(
4754
agent_id=agent_id, tenant_id=tenant_id)
4855

@@ -56,7 +63,9 @@ async def create_agent_config(agent_id, tenant_id, user_id, language: str = 'zh'
5663
tenant_id=tenant_id,
5764
user_id=user_id,
5865
language=language,
59-
last_user_query=last_user_query)
66+
last_user_query=last_user_query,
67+
allow_memory_search=allow_memory_search,
68+
)
6069
managed_agents.append(sub_agent_config)
6170

6271
tool_list = await create_tool_config_list(agent_id, tenant_id, user_id)
@@ -80,8 +89,7 @@ async def create_agent_config(agent_id, tenant_id, user_id, language: str = 'zh'
8089
# Get memory list
8190
memory_context = build_memory_context(user_id, tenant_id, agent_id)
8291
memory_list = []
83-
if memory_context.user_config.memory_switch:
84-
# TODO: 前端展示"回忆中..." Tag
92+
if allow_memory_search and memory_context.user_config.memory_switch:
8593
logger.debug("Retrieving memory list...")
8694
memory_levels = ["tenant", "agent", "user", "user_agent"]
8795
if memory_context.user_config.agent_share_option == "never":
@@ -91,18 +99,20 @@ async def create_agent_config(agent_id, tenant_id, user_id, language: str = 'zh'
9199
if memory_context.agent_id in memory_context.user_config.disable_user_agent_ids:
92100
memory_levels.remove("user_agent")
93101

94-
search_res = await search_memory_in_levels(
95-
query_text=last_user_query if last_user_query else agent_info.get(
96-
"name"),
97-
memory_config=memory_context.memory_config,
98-
tenant_id=memory_context.tenant_id,
99-
user_id=memory_context.user_id,
100-
agent_id=memory_context.agent_id,
101-
memory_levels=memory_levels,
102-
)
103-
memory_list = search_res.get("results", [])
104-
logger.debug(f"Retrieved memory list: {memory_list}")
105-
# TODO: 前端展示"已抽取 xx 条回忆"
102+
try:
103+
search_res = await search_memory_in_levels(
104+
query_text=last_user_query,
105+
memory_config=memory_context.memory_config,
106+
tenant_id=memory_context.tenant_id,
107+
user_id=memory_context.user_id,
108+
agent_id=memory_context.agent_id,
109+
memory_levels=memory_levels,
110+
)
111+
memory_list = search_res.get("results", [])
112+
logger.debug(f"Retrieved memory list: {memory_list}")
113+
except Exception as e:
114+
# Bubble up to streaming layer so it can emit <MEM_FAILED> and fall back
115+
raise Exception(f"Failed to retrieve memory list: {e}")
106116

107117
# Build knowledge base summary
108118
knowledge_base_summary = ""
@@ -298,7 +308,15 @@ def check_agent_tools(agent_config: AgentConfig):
298308
return list(used_mcp_urls)
299309

300310

301-
async def create_agent_run_info(agent_id, minio_files, query, history, authorization, language: str = 'zh'):
311+
async def create_agent_run_info(
312+
agent_id,
313+
minio_files,
314+
query,
315+
history,
316+
authorization,
317+
language: str = "zh",
318+
allow_memory_search: bool = True,
319+
):
302320
user_id, tenant_id = get_current_user_id(authorization)
303321

304322
final_query = await join_minio_file_description_to_query(minio_files=minio_files, query=query)
@@ -308,7 +326,8 @@ async def create_agent_run_info(agent_id, minio_files, query, history, authoriza
308326
tenant_id=tenant_id,
309327
user_id=user_id,
310328
language=language,
311-
last_user_query=final_query
329+
last_user_query=final_query,
330+
allow_memory_search=allow_memory_search,
312331
)
313332

314333
remote_mcp_list = await get_remote_mcp_server_list(tenant_id=tenant_id)

backend/consts/exceptions.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ class SignatureValidationError(Exception):
2323
pass
2424

2525

26+
27+
class MemoryPreparationException(Exception):
28+
"""Raised when memory preprocessing or retrieval fails prior to agent run."""
29+
pass
30+
31+
2632
class MCPConnectionError(Exception):
2733
"""Raised when MCP connection fails."""
2834
pass

0 commit comments

Comments
 (0)