From c9e3b1a08aafe8bcbc27c356852a0cc17f05f0a4 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Mon, 13 Apr 2026 18:03:16 +0200 Subject: [PATCH] fix KB search skipping when system message follows user message --- .../agents/new_chat/middleware/knowledge_search.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/surfsense_backend/app/agents/new_chat/middleware/knowledge_search.py b/surfsense_backend/app/agents/new_chat/middleware/knowledge_search.py index 7b0dd2f71..06ed4ad80 100644 --- a/surfsense_backend/app/agents/new_chat/middleware/knowledge_search.py +++ b/surfsense_backend/app/agents/new_chat/middleware/knowledge_search.py @@ -774,11 +774,16 @@ class KnowledgeBaseSearchMiddleware(AgentMiddleware): # type: ignore[type-arg] messages = state.get("messages") or [] if not messages: return None - last_message = messages[-1] - if not isinstance(last_message, HumanMessage): + + last_human = None + for msg in reversed(messages): + if isinstance(msg, HumanMessage): + last_human = msg + break + if last_human is None: return None - user_text = _extract_text_from_message(last_message).strip() + user_text = _extract_text_from_message(last_human).strip() if not user_text: return None