From c0ce6335a7b47366a1d8c45cae817e3a0a3413b8 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Wed, 4 Feb 2026 18:37:16 -0300 Subject: [PATCH] atlasbot: cap kb chunk size by mode --- atlasbot/engine/answerer.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/atlasbot/engine/answerer.py b/atlasbot/engine/answerer.py index bdbd511..ea72cec 100644 --- a/atlasbot/engine/answerer.py +++ b/atlasbot/engine/answerer.py @@ -77,6 +77,8 @@ class ModePlan: chunk_lines: int chunk_top: int chunk_group: int + kb_max_chars: int + kb_max_files: int parallelism: int score_retries: int use_deep_retrieval: bool @@ -335,7 +337,7 @@ class AnswerEngine: if observer: observer("retrieve", "scoring chunks") chunks = _chunk_lines(summary_lines, plan.chunk_lines) - kb_lines = self._kb.chunk_lines() if self._kb else [] + kb_lines = self._kb.chunk_lines(max_files=plan.kb_max_files, max_chars=plan.kb_max_chars) if self._kb else [] if kb_lines: kb_chunks = _chunk_lines(kb_lines, plan.chunk_lines) for idx, chunk in enumerate(kb_chunks): @@ -1135,6 +1137,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=6, chunk_top=10, chunk_group=4, + kb_max_chars=5000, + kb_max_files=18, parallelism=4, score_retries=3, use_deep_retrieval=True, @@ -1154,6 +1158,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=8, chunk_top=8, chunk_group=4, + kb_max_chars=3000, + kb_max_files=12, parallelism=2, score_retries=2, use_deep_retrieval=True, @@ -1172,6 +1178,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=12, chunk_top=5, chunk_group=5, + kb_max_chars=1200, + kb_max_files=6, parallelism=1, score_retries=1, use_deep_retrieval=False,