PMFlow/docs/superpowers/specs/2026-04-14-query-source-pol...

2.1 KiB
Raw Blame History

Query Source Policy Design

Goal

在不改动 plan mode 主链的前提下,重构 query.answer 的来源判定,让系统先决定“查内部还是查外部”,再进入检索与回答生成。

Confirmed Baseline

  • plan mode、requirement workspace、draft confirm 不动。
  • 只改 query.answer 链路。
  • source_policy 成为一等公民,最少支持:
    • internal
    • external
    • uncertain
  • uncertain 在 v1 按用户偏好默认 external 优先,不做 internal/external 同轮混搜。
  • 现有分散短路逻辑只清理“来源判定类短路”,保留 workflow 锁定类短路。
  • embedding 不再允许静默回退伪向量;优先使用真实 embedding 引擎,本地可用时允许走本地 embedding。

Scope

In Scope

  • query.answer 的来源判定、RAG 语义收口、检索域限制、回答主链短路收口。
  • embedding 真实化。
  • 相关测试与运行时文档同步。

Out of Scope

  • pmflow_semantic_context_decision 对 query/plan 的上游分流。
  • requirement-plan / draft confirm 主链行为。
  • 新拆仓、新服务化。

Implementation Direction

  1. 在 query.answer 网关前移 source_policy,并带审计字段进入 RAG。
  2. 用单次 query 语义判定同时输出 query_type / source_policy / retrieval_domains / subject_focus / scope_hint。
  3. answer scene 不再重复决定来源,只负责回答风格、deep intent 与 snapshot focus。
  4. source_policy=internal 时只允许内部检索域。
  5. source_policy=external 时只允许外部检索域。
  6. source_policy=uncertain 时 v1 直接按 external-first 收敛成外部域,不做混搜。
  7. embedding 改为真实 provider 链路:优先显式 embedding provider,本地可用时允许走 Ollama embedding;否则显式失败,不再回伪向量。

Risks

  • 需要避开当前工作区里已经存在的 requirement-plan 修正,避免误伤。
  • 若 internal/external 规则表定义过窄,可能造成 uncertain 过多。
  • embedding 从伪向量改成显式失败后,可能暴露历史依赖伪向量“凑合可用”的路径。