48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# 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 从伪向量改成显式失败后,可能暴露历史依赖伪向量“凑合可用”的路径。
|