生时校正对话策略对齐竞品:先定窗口和来源,再按精度分档收事件 #148

Open
opened 2026-10-28 15:08:10 +08:00 by jesse · 5 comments
Owner

Part of #142(拆单 B4,来源:#142 评论 1 全程对话记录)

竞品的对话节奏

  1. 第一轮先问两件事:时间窗多宽、钟点从哪来(出生证明 / 家人 / 自估);再要带年份、最好带月份的大事。
  2. 每轮先报老实结果:窗内上升 / 月亮星宿 / 大运是否变化,哪些证据没有「切窗力」。
  3. 事件按精度分档:年级只对主运 / 次运 / 年盘,日级硬锚才能进细运和分盘;含义不清的事件追问(如主动辞职还是被动离开)。
  4. 主动提反证:挑一个换运点问「那时有没有明显变动」,答案记为对 / 错,并说明对置信度的影响。
  5. 每轮给出天花板:缺什么证据、补哪类事件(领证日、入院日等)能再收窄。

要做什么

  • 对照 V9 agent 的提示词与工具(mastra/agentic-rectification.ts、lib/rectification-agentic/v9/*),补齐缺的环节。
  • 只改提示词和工具调用顺序,不改评分逻辑。
  • 语气上采用竞品「照直说」的风格,同时保留我们的诚实边界(不宣称超出证据的精度)。

验收

  • 用 docs/testing/birth-time-rectification-web-test-set.md 的案例跑前后对比,记录轮数、收束带宽和是否有反证环节。
Part of #142(拆单 B4,来源:#142 评论 1 全程对话记录) ## 竞品的对话节奏 1. 第一轮先问两件事:时间窗多宽、钟点从哪来(出生证明 / 家人 / 自估);再要带年份、最好带月份的大事。 2. 每轮先报老实结果:窗内上升 / 月亮星宿 / 大运是否变化,哪些证据没有「切窗力」。 3. 事件按精度分档:年级只对主运 / 次运 / 年盘,日级硬锚才能进细运和分盘;含义不清的事件追问(如主动辞职还是被动离开)。 4. 主动提反证:挑一个换运点问「那时有没有明显变动」,答案记为对 / 错,并说明对置信度的影响。 5. 每轮给出天花板:缺什么证据、补哪类事件(领证日、入院日等)能再收窄。 ## 要做什么 - 对照 V9 agent 的提示词与工具(`mastra/agentic-rectification.ts`、`lib/rectification-agentic/v9/*`),补齐缺的环节。 - 只改提示词和工具调用顺序,不改评分逻辑。 - 语气上采用竞品「照直说」的风格,同时保留我们的诚实边界(不宣称超出证据的精度)。 ## 验收 - 用 `docs/testing/birth-time-rectification-web-test-set.md` 的案例跑前后对比,记录轮数、收束带宽和是否有反证环节。
jesse added the agent/待规划agent/试点 labels 2026-10-28 15:08:10 +08:00
jesse added a new dependency 2026-10-28 15:08:12 +08:00
Author
Owner

同意

同意
Collaborator

对照结果:竞品的五步,我们现在做到哪了

先说结论:我们的校正对话是服务端定题的。每一问、事件复述、范围句、什么时候出结果,都由服务器决定,模型只写承接的话。所以本单写的「只改提示词」改不动这些,要改的是服务端的固定句。五步里有两步之前被产品明确否掉了。

# 竞品做法 我们现在 建议
1 开场先问时间窗多宽、钟点从哪来 部分:时间窗已经写在开场(「现在先在 HH:MM–HH:MM 之间找」),按建档时填的来源和误差算出来;但开场不说来源。不再追问误差(VOICE:不确定度只在资料里问一次) 做:把来源并进已有的那句窗口句,不加句子(开场三句的上限不变)。例:「你填的是家人记得的大概时间,所以先在 07:00–08:00 之间找。」
2 每轮报窗内上升 / 月宿 / 大运变不变,哪条证据「没有切窗力」 大多没有:选择题有「这一题没有让范围变窄」;打字说的事件没起作用时什么都不说。逐层报上升 / 月宿 / 大运在气泡里是禁止的(BUG-606、BUG-1253:气泡里不列技法,不写时刻) 做一半:事件轮按服务端重算结果,范围没动时加一句「这件事在现在的范围里每个时刻都对得上,分不出前后。」不做逐层播报。
3 事件按精度分档;含义不清的追问(主动辞职还是被动离开) 部分:精度有存、有权重(日 1.0 / 月 0.8 / 年 0.5),但不按精度限制能用哪些层,那属于评分逻辑。主动 / 被动离职没有拆,引擎也不区分 不在本单做:分档限层要改评分(本单写了不改评分);追问离职原因的话,引擎用不上,按 Skill 规则「追问必须能澄清事实或分开候选」不该问。如果要做,单开研究单,先让引擎能用上这个区分。
4 主动提反证:挑换运点问「那时有没有明显变动」 已有:换运边界探针(Vimshottari + Narayana)、A/B/C/D 选择卡、盲测题,冲突探针会挡住出结果。差别只在不播报「对置信度的影响」(BUG-606) 不改
5 每轮给天花板:缺什么、补哪类事件能再收窄 训练门前有(「再来两件记得大概年月的事……」);训练门后被禁:BUG-1084~1087 发现补打字经历几乎缩不了范围,所以删掉了所有「再补」的邀请,缩不下去时直说「这个窗口按现在的方法缩不下去」 不改,除非先完成 BUG-1084 里写的研究门。注意:#147 收束卡上的「再补一件事」按钮和这条有冲突,下面一并请你定。

验收怎么做

本单写的「用测试集案例跑前后对比」目前做不了:没有能用真实模型重放校正对话的工具,现有 173 条前端校正测试都用替身模型;测试集文档是手工点浏览器的脚本。可选:

  • A. 在 staging 用测试账号手工走测试集里的几条,前后各一次,记录轮数和带宽。
  • B. 先做一个重放工具(另开一单),再做对比。

要你定

  1. 第 1、2 条按建议做吗?只动服务端固定句、VOICE 和测试,不动评分。
  2. 第 3、5 条按建议不做,可以吗?
  3. 和 #147 的冲突:BUG-1084 之后「补经历帮不上,不能暗示能」,而 #147 收束卡上加了「再补一件事」。是保留这个按钮(等于重新邀请补经历),还是去掉,只留「我说错了,改一条」?我建议去掉,和 BUG-1084 保持一致。
  4. 验收用 A 还是 B?
## 对照结果:竞品的五步,我们现在做到哪了 先说结论:我们的校正对话是**服务端定题**的。每一问、事件复述、范围句、什么时候出结果,都由服务器决定,模型只写承接的话。所以本单写的「只改提示词」改不动这些,要改的是服务端的固定句。五步里有两步之前被产品明确否掉了。 | # | 竞品做法 | 我们现在 | 建议 | | --- | --- | --- | --- | | 1 | 开场先问时间窗多宽、钟点从哪来 | **部分**:时间窗已经写在开场(「现在先在 HH:MM–HH:MM 之间找」),按建档时填的来源和误差算出来;但开场不说来源。不再追问误差(VOICE:不确定度只在资料里问一次) | **做**:把来源并进已有的那句窗口句,不加句子(开场三句的上限不变)。例:「你填的是家人记得的大概时间,所以先在 07:00–08:00 之间找。」 | | 2 | 每轮报窗内上升 / 月宿 / 大运变不变,哪条证据「没有切窗力」 | **大多没有**:选择题有「这一题没有让范围变窄」;打字说的事件没起作用时什么都不说。逐层报上升 / 月宿 / 大运在气泡里是禁止的(BUG-606、BUG-1253:气泡里不列技法,不写时刻) | **做一半**:事件轮按服务端重算结果,范围没动时加一句「这件事在现在的范围里每个时刻都对得上,分不出前后。」**不做**逐层播报。 | | 3 | 事件按精度分档;含义不清的追问(主动辞职还是被动离开) | **部分**:精度有存、有权重(日 1.0 / 月 0.8 / 年 0.5),但不按精度限制能用哪些层,那属于评分逻辑。主动 / 被动离职没有拆,引擎也不区分 | **不在本单做**:分档限层要改评分(本单写了不改评分);追问离职原因的话,引擎用不上,按 Skill 规则「追问必须能澄清事实或分开候选」不该问。如果要做,单开研究单,先让引擎能用上这个区分。 | | 4 | 主动提反证:挑换运点问「那时有没有明显变动」 | **已有**:换运边界探针(Vimshottari + Narayana)、A/B/C/D 选择卡、盲测题,冲突探针会挡住出结果。差别只在不播报「对置信度的影响」(BUG-606) | **不改** | | 5 | 每轮给天花板:缺什么、补哪类事件能再收窄 | **训练门前有**(「再来两件记得大概年月的事……」);**训练门后被禁**:BUG-1084~1087 发现补打字经历几乎缩不了范围,所以删掉了所有「再补」的邀请,缩不下去时直说「这个窗口按现在的方法缩不下去」 | **不改**,除非先完成 BUG-1084 里写的研究门。注意:#147 收束卡上的「再补一件事」按钮和这条有冲突,下面一并请你定。 | ### 验收怎么做 本单写的「用测试集案例跑前后对比」目前做不了:没有能用真实模型重放校正对话的工具,现有 173 条前端校正测试都用替身模型;测试集文档是手工点浏览器的脚本。可选: - A. 在 staging 用测试账号手工走测试集里的几条,前后各一次,记录轮数和带宽。 - B. 先做一个重放工具(另开一单),再做对比。 ### 要你定 1. 第 1、2 条按建议做吗?只动服务端固定句、VOICE 和测试,不动评分。 2. 第 3、5 条按建议不做,可以吗? 3. **和 #147 的冲突**:BUG-1084 之后「补经历帮不上,不能暗示能」,而 #147 收束卡上加了「再补一件事」。是保留这个按钮(等于重新邀请补经历),还是去掉,只留「我说错了,改一条」?我建议**去掉**,和 BUG-1084 保持一致。 4. 验收用 A 还是 B?
Collaborator

已定(jesse 2026-10-28)

  1. 第 1、2 条照建议做:开场窗口句写明时间来源;事件轮范围没动时加一句「分不出前后」。只动服务端固定句、VOICE 和测试,不动评分。
  2. 第 3、5 条不做(分档限层、追问离职原因、邀请再补经历)。
  3. #147 收束卡去掉「再补一件事」,只留「我说错了,改一条」,和 BUG-1084 保持一致。
  4. 验收方式待定:倾向在 staging 用测试账号跑前后对比(用 staging 已配置的模型,不需要另给模型密钥)。
## 已定(jesse 2026-10-28) 1. 第 1、2 条照建议做:开场窗口句写明时间来源;事件轮范围没动时加一句「分不出前后」。只动服务端固定句、VOICE 和测试,不动评分。 2. 第 3、5 条不做(分档限层、追问离职原因、邀请再补经历)。 3. #147 收束卡去掉「再补一件事」,只留「我说错了,改一条」,和 BUG-1084 保持一致。 4. 验收方式待定:倾向在 staging 用测试账号跑前后对比(用 staging 已配置的模型,不需要另给模型密钥)。
Collaborator

已推到 staging,待真机

代码在 7721aa9a,现在包含在 staging 的 2dea3c29 里。

  • 开场那句会说明是按什么时间开始找的:按你的出生记录时间 / 按你填的大概时间 / 按你填的时间 / 按你给的时间段。
  • 某件事在现在的范围里每个时刻都对得上时,会说「这件事在现在的范围里每个时刻都对得上,分不出前后。」
  • 改前我用测试账号在 staging 录了一次:开场是「我们先判断现在的出生时间能不能选定用来解读的星盘,核对窗口是 04:45–05:15。…」,里面没说是按什么时间开始找的。部署后请点一遍对比。
## 已推到 staging,待真机 代码在 `7721aa9a`,现在包含在 staging 的 `2dea3c29` 里。 - 开场那句会说明是按什么时间开始找的:按你的出生记录时间 / 按你填的大概时间 / 按你填的时间 / 按你给的时间段。 - 某件事在现在的范围里每个时刻都对得上时,会说「这件事在现在的范围里每个时刻都对得上,分不出前后。」 - 改前我用测试账号在 staging 录了一次:开场是「我们先判断现在的出生时间能不能选定用来解读的星盘,核对窗口是 04:45–05:15。…」,里面没说是按什么时间开始找的。部署后请点一遍对比。
Claude added agent/待真机 and removed agent/待规划 labels 2026-10-28 19:22:32 +08:00
Collaborator

staging 已部署(537beb29),改后实测

用测试账号新开一次校正,测完已关闭,出生时间来源是「家人告知的准确时间」。

开场那句
改前(f80f3b75) 我们先判断现在的出生时间能不能选定用来解读的星盘,核对窗口是 04:45–05:15。…
改后(537beb29) 我们先判断现在的出生时间能不能选定用来解读的星盘,按你填的时间,核对窗口是 04:45–05:15。…

开场和事件两轮都返回 200,没有 run.failed。请在真机上再点一遍。

## staging 已部署(`537beb29`),改后实测 用测试账号新开一次校正,测完已关闭,出生时间来源是「家人告知的准确时间」。 | | 开场那句 | |---|---| | 改前(`f80f3b75`) | 我们先判断现在的出生时间能不能选定用来解读的星盘,核对窗口是 04:45–05:15。… | | 改后(`537beb29`) | 我们先判断现在的出生时间能不能选定用来解读的星盘,**按你填的时间**,核对窗口是 04:45–05:15。… | 开场和事件两轮都返回 200,没有 run.failed。请在真机上再点一遍。
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: root/Jyotisha#148