Problem
In fuse_results (agents.py), vector and KS search results are merged with hardcoded weights:
"final_score": res.get("similarity", 0) * 0.6 # vector
"final_score": res.get("_score", 0) * 0.4 # KS
No explanation for the 0.6/0.4 split. These cannot be tuned without code changes.
Fix
Make them env-var configurable:
VECTOR_WEIGHT = float(os.getenv("FUSION_VECTOR_WEIGHT", "0.6"))
KS_WEIGHT = float(os.getenv("FUSION_KS_WEIGHT", "0.4"))
Add to .env.template with a comment explaining the tradeoff.