Conflict nodes stay server-owned; the Agent writes the question and option copy so users can tap instead of typing through an interrogation. Co-authored-by: Cursor <cursoragent@cursor.com>
60 lines
4.8 KiB
Markdown
60 lines
4.8 KiB
Markdown
# Candidate Comparison(V9)
|
||
|
||
候选比较是服务器计算产物,Agent 只负责解释与引导,不负责产生候选、分数或范围。
|
||
|
||
## 1. 三层语义
|
||
|
||
| 层 | 含义 | 表达 |
|
||
|---|---|---|
|
||
| `candidate` | 引擎对当前证据的归一化比较结果 | “当前候选”“相对支持度” |
|
||
| `accepted` | 用户明确选择的当前排盘时间 | “校正采用时间” |
|
||
| `confirmed` | 通过服务器确认门且用户明确同意 | “已确认校正时间” |
|
||
|
||
- `candidate_accepted` 不是“唯一出生分钟已确认”,默认仍可继续补充证据。
|
||
- accepted 后用户仍可在同一批有效候选中改选(幂等 RPC 支持)。
|
||
- confirmed 只能由服务器确认门 + 用户明确同意触发,同时写 `completed_at`。
|
||
|
||
## 2. 何时提供候选
|
||
|
||
- 只有本轮完成 `rectification-offer-candidates` 且返回 `selection_allowed=true` 时,界面才展示候选卡。
|
||
- `selection_allowed` 只表示可以采用代表性时间,**不是**本轮必须出示卡片。提出门看 `latest_result.propose_allowed`,并且没有挡住出牌的 `method_followup_plan.next_followup`(占问和精度阶段追问不挡;职业挡出牌)。唯一领先和宽度≤5只挡确认门。
|
||
- `next_user_action.id=adopt_representative`,或用户停止且 `on_user_stop` 为 adopt 时,本轮才 offer/accept。服务器会拒绝访谈未停的 offer。这是采用代表性时间,不是 confirmed。
|
||
- 继续收集证据时不得边追问边提供采用。
|
||
- 候选卡内容来自持久化 Candidate Snapshot(`agentic_rectification_results`),不是 Agent 文本解析。
|
||
- 候选卡拥有时间、排名、相对支持度、采用动作与选中状态;Agent 正文在出牌轮**要**复述候选窗、代表分钟、相对支持与八法理由。卡片仍作 adopt 控件。
|
||
|
||
## 3. 表达边界
|
||
|
||
- 相对支持度是候选间归一化比较,**不是**概率、统计置信度或确定性。80%/60% 只描述事件吻合率。
|
||
- 出牌轮正文写入事件–Dasha–Gochara 表、D9/D10 类型对照和技法审计;不暴露隐藏分钟证据或把分数说成唯一分钟概率。
|
||
- 候选范围必须说明“待核对边界”,不得表述为已确认出生分钟。
|
||
- 外部验证状态按服务器字面读取:`not_evaluated` 表示未调用(入口门未就绪),不是“调用了但失败”。
|
||
|
||
## 4. 证据变化与重算
|
||
|
||
- 证据有效变化时由服务器重算候选;Agent 不必等用户说“没有更多了”才 compare。
|
||
- 相同 evidence 指纹 + 引擎版本复用缓存;不要对同一指纹再 compare。
|
||
- 分钟窗口扫描只在服务端,结果进入候选卡 / 不可分平台语言。不得把若干事件说成已确定到 ±5 分钟。
|
||
- 普通澄清轮若不改变账本指纹,不重复播报。
|
||
- 出生资料基线变化 → `needs_rebaseline`,旧候选失效;不得静默继续用旧结果。
|
||
- `needs_rebaseline` 下不引用旧候选、不提供采用。
|
||
|
||
## 5. 不可分平台与确认门(必须说出来)
|
||
|
||
服务器 `latest_result` 含 `confirmation_gate`、`indistinguishable_width_minutes`、`confirmation_allowed`、`selection_allowed` 与 `margin_percent`(若有)。`confirmation_gate` 是确认门权威,不是让 Agent 另算一分钟。
|
||
|
||
- 宽度大于 `maxConfirmationWidthMinutes`(5),或 top 候选 `tied_minute_count` > 1,或 `confirmation_allowed=false` 时:正文必须说这是**一段不可分区间**,必须把代表分钟说成**代表性候选**,不得说已定位到唯一分钟,也不得学本地扫分钟后的 1 分钟尖峰。
|
||
- `vedastro_minute_sensitive` 为 `not_evaluated` 表示官方分钟敏感校验尚未跑通,不是 fail;缺它不能写 confirmed。
|
||
- 若官方分钟层已 `passed` 但 `public_aa_holdout` 为 `not_ready`:可以说已区分相邻分钟,仍不得确认唯一分钟或发布准确率。
|
||
- `public_aa_holdout` 为 `not_ready` 时不得声称已校准到精确分钟,也不得把确认门放到更细宽度或发布准确率。
|
||
- 用户仍可 accepted 代表性候选;accepted ≠ confirmed。`session_outcome=adopt_representative` 时正文必须说还不能确认唯一分钟。
|
||
- `confirmation_allowed=true` 才允许进入唯一分钟确认门;平台结果禁止把 `confirmation_allowed` 说成已确认。
|
||
- 候选卡仍可展示代表性时间;Agent 不得把该时间写成“已校正到 HH:MM”。
|
||
|
||
## 6. 保存边界
|
||
|
||
- accepted 写入 `active_birth_time`,保留 `reported_birth_time` 原填报,不写兼容 `birth_time`。
|
||
- 采用后界面按采用分钟重算本命宫位表,并折叠展示本轮技法审计。这不是唯一分钟确认,也不自动进入咨询 Agent。
|
||
- confirmed 同样保留原填报;不自动写入,需要用户明确同意。
|
||
- 失败、空流、Skill 未加载或未完成必要工具链时不保存、不扣费。
|