From 85bd3fe88b0ed1e11c308a5adec50ad92ec58b84 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Fri, 6 Feb 2026 16:51:51 +0200 Subject: [PATCH] Add format_shared_memories_for_context, use team_memories for LLM --- .../agents/new_chat/tools/shared_memory.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/surfsense_backend/app/agents/new_chat/tools/shared_memory.py b/surfsense_backend/app/agents/new_chat/tools/shared_memory.py index 565745fa3..04fb55b24 100644 --- a/surfsense_backend/app/agents/new_chat/tools/shared_memory.py +++ b/surfsense_backend/app/agents/new_chat/tools/shared_memory.py @@ -1,6 +1,7 @@ """Shared (team) memory backend for search-space-scoped AI context.""" import logging +from typing import Any from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession @@ -37,3 +38,28 @@ async def delete_oldest_shared_memory( if oldest: await db_session.delete(oldest) await db_session.commit() + + +def format_shared_memories_for_context( + memories: list[dict[str, Any]], + created_by_map: dict[str, str] | None = None, +) -> str: + if not memories: + return "No relevant team memories found." + created_by_map = created_by_map or {} + parts = [""] + for memory in memories: + category = memory.get("category", "unknown") + text = memory.get("memory_text", "") + updated = memory.get("updated_at", "") + created_by_id = memory.get("created_by_id") + added_by = ( + created_by_map.get(str(created_by_id), "A team member") + if created_by_id is not None + else "A team member" + ) + parts.append( + f" {text}" + ) + parts.append("") + return "\n".join(parts)