diff --git a/atlasbot/engine/answerer.py b/atlasbot/engine/answerer.py index 416d428..e9b2382 100644 --- a/atlasbot/engine/answerer.py +++ b/atlasbot/engine/answerer.py @@ -642,7 +642,16 @@ class AnswerEngine: tag="evidence_fix_enforce", ) if metric_facts and not _reply_matches_metric_facts(reply, metric_facts, all_tokens): - direct_line = _select_metric_line(summary_lines, normalized, all_tokens) + direct_candidates = [] + if metric_keys: + direct_candidates = _lines_for_metric_keys( + summary_lines, + metric_keys, + max_lines=plan.max_subquestions * 3, + ) + if not direct_candidates: + direct_candidates = summary_lines + direct_line = _select_metric_line(direct_candidates, normalized, all_tokens) if direct_line: direct_prompt = f"Question: {normalized}\nFact: {direct_line}\nAnswer using the fact." reply = await call_llm(