fix: Reduce history to 4 messages when RAG results present

When doc_context is available, limit history to just 4 messages (2 exchanges)
to prevent stale answer patterns from overriding fresh document search results.
Without RAG results, keep 10 messages for normal conversation context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Christian Gick
2026-03-05 15:50:21 +02:00
parent 6fb8c33057
commit ae059749c4

7
bot.py
View File

@@ -2110,7 +2110,6 @@ class Bot:
)
# Build conversation context
# Order: system → memory → chunks → history → doc_context (closest to user message wins)
messages = [{"role": "system", "content": SYSTEM_PROMPT}]
if memory_context:
messages.append({"role": "system", "content": memory_context})
@@ -2118,8 +2117,10 @@ class Bot:
messages.append({"role": "system", "content": chunk_context})
if room_doc_context:
messages.append({"role": "system", "content": room_doc_context})
# Limit history to 10 messages to prevent stale patterns from overwhelming fresh doc context
messages.extend(history[-10:])
# When RAG returns documents, limit history to 4 messages (2 exchanges) to prevent
# stale answer patterns from overriding fresh search results
history_limit = 4 if doc_context else 10
messages.extend(history[-history_limit:])
if doc_context:
messages.append({"role": "system", "content": doc_context})