Feat: record user_id in memory (#13585)

### What problem does this PR solve?

Get user_id from canvas and record it.

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Lynn
2026-03-13 15:38:35 +08:00
committed by GitHub
parent 5c955a31cc
commit 02070bab2a
5 changed files with 15 additions and 7 deletions

View File

@@ -433,7 +433,7 @@ class Message(ComponentBase):
return True, "No memory selected."
message_dict = {
"user_id": self._canvas._tenant_id,
"user_id": self._param.user_id if hasattr(self._param, "user_id") else "",
"agent_id": self._canvas._id,
"session_id": self._canvas.task_id,
"user_input": self._canvas.get_sys_query(),

View File

@@ -259,6 +259,7 @@ class Retrieval(ToolBase, ABC):
async def _retrieve_memory(self, query_text: str):
memory_ids: list[str] = [memory_id for memory_id in self._param.memory_ids]
user_id: str = self._param.user_id if hasattr(self._param, "user_id") else None
memory_list = MemoryService.get_by_ids(memory_ids)
if not memory_list:
raise Exception("No memory is selected.")
@@ -270,7 +271,10 @@ class Retrieval(ToolBase, ABC):
vars = {k: o["value"] for k, o in vars.items()}
query = self.string_format(query_text, vars)
# query message
message_list = memory_message_service.query_message({"memory_id": memory_ids}, {
filter_dict: dict = {"memory_id": memory_ids}
if user_id:
filter_dict["user_id"] = user_id
message_list = memory_message_service.query_message(filter_dict, {
"query": query,
"similarity_threshold": self._param.similarity_threshold,
"keywords_similarity_weight": self._param.keywords_similarity_weight,