Skip to content

feat(inject): 注入条数的查询自适应——确定少注入、模糊维持上限(issue #239 第 5 项) - #263

Merged
modusensus merged 1 commit into
mainfrom
feat/239-inject-uncertainty-budget
Sep 19, 2026
Merged

modusensus merged 1 commit into
mainfrom
feat/239-inject-uncertainty-budget

Conversation

@modusensus

Copy link
Copy Markdown
Member

背景

issue #239 第 5 项(注入侧不确定性召回)。第 1/3 项已随 #251 合入,第 4 项见 #259。

动机:注入条数此前是固定的 maxInjectedItems——不论用户问的是具体技术细节,还是要回忆很久以前的事,都注入同样多条。不确定性强的话题应多召回、确定性强的应少召回(去 always-on 化的一部分)。

改动

键 语义
injectUncertaintyAdaptive 默认 false。开启后:确定 → 注入条数收缩到一半(下限 1);模糊 → 维持 maxInjectedItems
  • 模糊判据(只看查询本身):回指 / 时间线索(上次 之前 还记得 我们讨论 last time remember …),或极短查询(<5 字符,与既有 adaptiveThreshold 对短查询的判断同源)。
  • 只做单向收缩:绝不越过用户配置的上限。依据是「注入相关却带偏生成」的内容可能比不注入更糟(两处独立出处),所以宁可少注入也不新增这个风险面;issue 原文的「模糊多召回」在实现上等于「维持上限」——上限就是用户设的预算。
  • 零额外成本:判据不触发任何检索(先探针检索等于白付一次 fuseRecall);拿不到查询时维持现状,不猜。
  • 纯函数 needsBroadRecall / adaptiveInjectBudget 落在 src/search/adaptive.js,与既有的查询自适应向量阈值同源、可单测。

验证

  • 新增 test/adaptive-inject-budget.test.js 5 例:判据(中英线索 / 极短 / 空查询)、预算边界(减半 / 下限 1 / 上限 0 / 非法上限)、默认关行为不变、开关打开后确定与模糊分档、无会话日志的退化路径;
  • 变异测试:把开关判定钉死为旧路径 → 1 例转红,还原后 5/0;
  • check-sync ✓;api 旗标计数锁 58 → 59;注入族回归全绿(inject 17 / inject-content-cap 6 / inject-rotation 7 / inject-recall 6 / inject-heat 4 / inject-first-round-bm25 3)以及 settings / config / lib-smoke。

说明

Copilot AI lite review requested due to automatic review settings September 19, 2026 12:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

- 新增 injectUncertaintyAdaptive(默认关)。开启后:确定性强的话题把注入条数收缩到
  一半(下限 1),模糊话题(回指/时间线索,或极短查询)维持 maxInjectedItems 上限
  ——只做**单向收缩**,绝不越过用户配置的上限。
- 依据:不确定性驱动的读路径(模糊多召回、确定少召回);但「注入相关却带偏生成」
  的内容可能比不注入更糟(两处独立出处),故宁可少注入也不新增该风险面。
- 判据只看查询本身、零额外检索(先探针检索等于白付一次 fuseRecall);拿不到查询
  时维持现状不猜。
- 纯函数 needsBroadRecall / adaptiveInjectBudget 落在 src/search/adaptive.js(与既有
  的查询自适应向量阈值同源),可单测。
- 测试:新增 test/adaptive-inject-budget.test.js 5 例(判据、预算边界、默认关行为
  不变、开启后确定/模糊分档、无会话日志退化);变异测试把开关钉死 → 1 例转红。
- api 旗标锁 58 → 59;README 补一行;CHANGELOG 记入 [Unreleased]。
Copilot AI review requested due to automatic review settings September 19, 2026 12:42
@modusensus
modusensus force-pushed the feat/239-inject-uncertainty-budget branch from 2496c89 to 77e9c58 Compare September 19, 2026 12:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@modusensus
modusensus merged commit ff4736c into main Sep 19, 2026
4 checks passed
@modusensus
modusensus deleted the feat/239-inject-uncertainty-budget branch September 19, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants