Files
Jyotisha/docs/testing/consult-affliction-backtest-20261001.md
T

324 lines
40 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 普通对话名人生平回测(2026-10-01)
- 任务书:`docs/tasks/TASK-consult-no-presupposition-and-backtest-20261001.md` T4(D5:普通对话提示词或清单改动的固定验收)
- 排查记录:`docs/research/consult_affliction_audit_2026_10_01.md`
- 名单与评分表:`docs/research/consult_biography_backtest_rubric.json`
- golden:`frontend/tests/fixtures/consult-biography-backtest-golden.json`(`scripts/research/capture_consult_biography_backtest_golden.py` 生成,与 `capture_consult_evidence_card_golden.py` 同一 handler、同一请求体)
- 脚本:`frontend/scripts/research/consult-biography-backtest.mts`
- 模型输出不入库,默认写到 `scratch/consult-biography-backtest/<时间戳>/`(已 gitignore);本文只摘短句。
## 怎么跑
```bash
cd frontend
DS_KEY=<临时 key> ./node_modules/.bin/tsx scripts/research/consult-biography-backtest.mts --repeats 2 --concurrency 6
# 只看模型拿到的卡,不调模型:
./node_modules/.bin/tsx scripts/research/consult-biography-backtest.mts --dump-cards --out /tmp/cards
# 改了评分表后,对旧输出重算确定性检查:
./node_modules/.bin/tsx scripts/research/consult-biography-backtest.mts --recheck <输出目录>
```
需要 Node 22(本机 `/exec-daemon/node`)。脚本不进 CI,需要外网与模型 key。key 只从环境变量 `DS_KEY` / `BACKTEST_MODEL_KEY` 读。
## 名单
| 名人 | 测什么 | 出生资料 |
| --- | --- | --- |
| Steve Jobs | 出生即送养;晚年重病(胰腺肿瘤,56 岁去世);顶级企业家 | AA,`minute_rectification_development_v1.json` |
| Barack Obama | 父亲两岁离开、外祖父母带大;婚姻稳定、健康良好(这两项作对照) | AA,`minute_rectification_holdout_v4.json` |
| Elizabeth Taylor | 八次婚姻、丧偶;终身多病、数十次手术;童星 | AA,同上 |
| Marilyn Monroe | 生父不明、母亲精神病住院、寄养家庭与孤儿院;三次离婚;慢性病与药物依赖 | AA,`minute_rectification_holdout_v5.json` |
| Judy Garland | 父亲在她 13 岁去世、强势母亲;五次婚姻;终身药物依赖;童星 | AA,同上 |
| Édith Piaf | 被母亲遗弃、祖母带大;两次婚姻、挚爱空难;车祸与吗啡依赖 | AA,同上 |
| Frida Kahlo | 小儿麻痹、车祸、约 30 次手术、截肢;与同一人离婚又复婚;与父亲亲近、与母亲冷淡 | AA,同上 |
| George W. Bush(对照) | 父母都在且亲近、1977 年至今一段婚姻、健康总体良好 | AA,同上 |
| Zinedine Zidane(对照) | 父母都在且亲近、1994 年至今一段婚姻、运动员健康 | AA,同上 |
Bill Clinton 不在仓库案例库里,没有加;「父亲缺席」由 Obama、Monroe、Garland、Jobs 覆盖。
## 与真实路由的差异(保真度缺口)
脚本直接用产品的 `getJyotishAgent`(系统提示、绑定的技能方法块、工具)、Mastra `Agent.stream` + `consultationNatalPrepareStep` + `consultationGenerationSettings`、`createConsultationTools`(卡片、方法论清单、`read-consultation-evidence` 查卡)、`consultationUserTurnContent` + `natalUserTurnShape`,以及 `streamAgentResponse`(按 step 取答案、Pass 4、合同重试、空答重试、长度续写)。差异:
1. 引擎调用换成 golden:同 capture 路径、raman 岁差(产品默认也是 raman)、mean 交点、参考日 2026-09-27,外部 VedAstro 不调用。
2. 用户回合不带「用户称呼」:真实路由会带档案名;这里故意不给名人名字,免得模型凭记忆答生平。
3. `natalToolInstruction` 一句和 `currentTimeContext` 是 `route.ts` 内部函数、未导出,脚本按原文复刻(两处字符串)。改了这两处要同步改脚本。
4. 没有内容审核、计费、标题旁路事件、历史摘要、请求时钟(真实路由有工具期与 5 分钟答题钟;本轮最长一份 87 s,不触发);单轮、无历史。
5. 性别一律按档案未填(性别未知)。
6. 模型经 Mastra 的 OpenAI 兼容通道直连 DeepSeek(`deepseek-flash`),不经产品数据库的模型目录;产品的 staging 模型是 `deepseek-v4-flash`,两者是否同一模型以供应商为准。
7. 计划用 `createConsultationPlan({ userIntent, theme })`;真实路由用预留阶段的计划(含点数与深度)。
8. 模型若自己多选一个领域(本轮 1 次:Obama 父母 run1 多选了 `family`),`family` / `children` 一律回放 `parents` 的 golden(引擎同为 family 路由,只差问题文本)。
## 基线(改动前)
- 代码:`origin/staging` `9b937c4a`(第一、二、三单都未合入)
- 模型:`deepseek-flash`,thinking 开,输出上限 24576(产品设置)
- 9 位 × 4 领域 × 2 次 = 72 份,失败 0 份
- 评分:Claude 逐份阅读,按评分表 `how_to_score`:通过 / 漏读 / 读反 / 严重冲突 / 误报
| 名人 | 父母 r1 / r2 | 婚姻 r1 / r2 | 健康 r1 / r2 | 事业 r1 / r2 |
| --- | --- | --- | --- | --- |
| Steve Jobs | 严重冲突 / 严重冲突 | 通过 / 通过 | 读反 / 严重冲突 | 严重冲突 / 严重冲突 |
| Barack Obama | 严重冲突 / 严重冲突 | 通过 / 通过(预设未婚) | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Elizabeth Taylor | 通过 / 通过 | 严重冲突 / 严重冲突 | 严重冲突 / 严重冲突 | 严重冲突 / 严重冲突 |
| Marilyn Monroe | 严重冲突 / 严重冲突 | 严重冲突 / 严重冲突 | 读反 / 读反 | 严重冲突 / 严重冲突 |
| Judy Garland | 严重冲突 / 严重冲突 | 通过(弱) / 严重冲突 | 严重冲突 / 严重冲突 | 严重冲突 / 严重冲突 |
| Édith Piaf | 严重冲突 / 严重冲突 | 通过(弱) / 严重冲突 | 读反 / 读反 | 通过 / 严重冲突 |
| Frida Kahlo | 漏读 / 漏读 | 读反 / 读反 | 严重冲突 / 严重冲突 | 漏读 / 严重冲突 |
| George W. Bush(对照) | 通过 / 通过 | 通过 / 通过 | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Zinedine Zidane(对照) | 通过 / 通过 | 误报(轻) / 通过 | 通过 / 通过 | 严重冲突 / 严重冲突 |
### 合计
| 项 | 数 |
| --- | --- |
| 严重冲突 | 39 / 72 份 |
| 读反 | 7 |
| 漏读 | 3 |
| 通过 | 22 |
| 对照组误报 | 1(轻,Zidane 婚姻 run1「旧联系重新变近、分开又见面」) |
| 两次都通过的格子 | 9 / 36 |
| 排查记录里的 5 份严重冲突(Obama 父母、Jobs 父母、Taylor 婚姻 / 健康 / 事业) | 10 / 10 份仍冲突,原样复现 |
| 新增 4 位(Monroe、Garland、Piaf、Kahlo)严重冲突 | 20 / 32 份(通过线 ≤ 1) |
| 确定性检查:禁句(逆行…反复/来回) | 7 处,6 份 |
| 确定性检查:性别未知时婚恋题用他/她 | 5 处(3 处指伴侣,2 处是把金星称「她」) |
| 确定性检查:must_not 原文 | 27 处(是筛网,最终以阅读为准;对照组 Bush 健康「慢性病」一处属正常描述) |
按领域:父母 10 份严重冲突(缺席的父亲一律写成「话少、分量重、靠做事表达」);婚姻 6 份(多次婚姻写成「定下来之后很稳」);健康 7 份严重 + 5 份读反(终身重病写成「底子不差、恢复力强」);事业 16 / 18 份严重冲突,连两位对照组也冲突。
### 代表句(每条只摘短句)
- 父母·缺席的父亲:Obama「他话不多,存在感却稳……你做事的方式里有一部分就是照着他的样子长出来的」;Monroe「爸爸话少、分量重,是你衡量自己的那把尺」;Garland「父亲这条线表面上不显眼,但分量不轻」;Jobs「他们一直在,而且投入得很深」「挑一件具体的事去问爸爸的意见」。
- 父母·被遗弃的母亲:Piaf「她是你家里管事最多的那个人」。
- 婚姻:Taylor「你的婚姻是有的,而且底子偏硬……定下来之后反而稳」;Monroe「最后落到的那段关系……事情交给他你放心」;Garland「婚姻是往后走、慢慢稳下来的类型」。
- 健康:Taylor「身体底子属于中上:扛得住,也恢复得回来」;Kahlo「你不是一张虚弱的盘」;Garland「这不是有严重疾病迹象」;Jobs「你不是被病拖垮的类型」。
- 事业:Taylor「偏技术、分析和系统……纯靠嘴皮子和人缘往前推的事,你做起来会别扭」;Obama「顶是深度,不是高度……不是管一个大组织那种顶」;Zidane「真正的手艺在嘴和脑子上:写、讲、分析、算、谈判」;Monroe「靠一门具体的手艺慢慢被人认出来」。
- 杂项:Taylor 事业 run1 正文出现「加上海王……更正一下」。
### 基线读出来的东西(给第三单和验收)
1. 排查记录的 C 类(形状预设对象在场)在 4 位新名人上全部复现:只要问父母,缺席的一方就被写成「话少、靠做事」。第三单 T1 的新句正对这一条。
2. 事业题出现排查记录没有单列的一类:16 / 18 份把人写成「专业人 / 顾问 / 幕后」,与盘无关(总统、球星、电影明星都一样)。来源看起来是同一形状要求加上「接触层 / 结构层 / 落地层」三层清单,模型把「不预设上班族」理解成了「默认专业服务」。AL 落 10 宫、10 宫 SAV 高这些成名信号几乎没被读出来。第三单不覆盖这一条,需要另开单或在第三单决策记录里补。
3. 健康题默认开头「底子不差」,8 宫、6 宫主落 8 宫等受冲只降级成「慢性消耗」。第一单(健康卡加 1 / 12 宫)和第二单(受冲读法)是对口的修法。
4. 婚姻题有清单,表现最好(9 / 18 通过),但多次婚姻的三位仍有 6 份写成稳定。
5. 对照组只有 1 份轻度误报:改动后要重点看对照组有没有被「先说受冲、请确认」带出新的误报。
## 改动后(2026-10-02)
- 代码:`codex/consult-no-presupposition-backtest-20261001`(第一、二、三单 + 产品 10-02 年运 / 时运字数口径决定,提交 `ec06d422`)。年运 / 时运口径那个提交不影响本回测的四个领域:两次 `--dump-cards` 的模型可见工具结果逐字节相同(年运 / 时运不在回测领域里,模型 72 份里也没有自选这两个领域)。
- golden 重新生成:旧 golden 生成于第一单之前,卡上没有相位、燃烧、瑜伽分领域、`saturn_from_moon_house`。按 capture 脚本同一命令(`PYTHONHASHSEED=0 JYOTISH_API_CHART_CACHE_TTL_SECONDS=0`)用真实引擎重跑,两次输出逐字节相同,未手改;新 golden 2.87 MB → 3.86 MB,`graha_drishti` / `yoga_domains` / `saturn_from_moon_house` 各 36 处。
- 命令:`--repeats 2 --concurrency 6 --correction barack_obama,marilyn_monroe,judy_garland,edith_piaf`;模型、思考、输出上限与基线相同。
- 首轮 72 份里 6 份 `provider_error`(5 份超时约 380 s,1 份 41 s;泰勒婚姻 r1/r2、健康 r1、父母 r2,奥巴马事业 r1/r2),同命令按名人 + 领域补跑,只取失败那一次的同号结果替换,没有挑选。最终 72 份、失败 0。
- 评分:Claude 逐份阅读全部 72 份 + 8 份纠正追问,口径与基线相同(评分表 `how_to_score`)。本轮新增两条细则,基线表不受影响:①健康题对终身多病的人,开场写「底子中等 / 中等偏稳」并认出受冲的记「通过(弱)」,写「底子不差 / 中上 / 不弱」的记「读反」;②带「可能」和确认句、但与生平事实冲突的判断(例:父母都在身边却写「爸爸可能不常在你身边」)照样按 `must_not` 记「严重冲突」,对照组记「误报」——加了确认句不抵扣。
| 名人 | 父母 r1 / r2 | 婚姻 r1 / r2 | 健康 r1 / r2 | 事业 r1 / r2 |
| --- | --- | --- | --- | --- |
| Steve Jobs | 通过 / 通过 | 通过 / 通过 | 通过(弱) / 通过(弱) | 严重冲突 / 严重冲突 |
| Barack Obama | 通过(弱) / 通过(弱) | 误报 / 误报 | 误报(轻) / 误报(轻) | 严重冲突 / 严重冲突 |
| Elizabeth Taylor | 严重冲突 / 严重冲突 | 通过 / 通过 | 读反 / 读反 | 严重冲突 / 严重冲突 |
| Marilyn Monroe | 读反 / 通过 | 通过 / 通过 | 读反 / 通过(弱) | 严重冲突 / 严重冲突 |
| Judy Garland | 读反 / 通过(弱) | 通过 / 通过(弱) | 读反 / 读反 | 严重冲突 / 严重冲突 |
| Édith Piaf | 通过 / 通过(弱) | 通过 / 通过 | 读反 / 读反 | 通过 / 通过 |
| Frida Kahlo | 严重冲突 / 通过 | 通过 / 通过 | 通过(弱) / 读反 | 严重冲突 / 严重冲突 |
| George W. Bush(对照) | 误报 / 误报 | 误报(轻) / 通过 | 误报(轻) / 误报(轻) | 严重冲突 / 严重冲突 |
| Zinedine Zidane(对照) | 误报 / 误报 | 误报 / 误报 | 误报(轻) / 误报 | 严重冲突 / 严重冲突 |
格子说明:奥巴马父母两次都认出父亲可能不在身边并请确认,但行动仍写「主动问爸爸一件具体的事」,所以记「弱」;奥巴马婚姻、健康是评分表里的对照项(婚姻稳定、健康良好)。泰勒父母两次把父亲(r2 连母亲)写成「可能不常在你身边」——泰勒父母都在身边,评分表 `must_not` 原文就是「说父母不在身边」。Monroe 父母 r1 母亲写成「她是在的,给的东西也实」;Garland 父母 r1 母亲写成「可能不是那个一直守在身边的人」(她母亲是强势的星妈);Kahlo 父母 r1 把与她最亲的父亲写成「可能也不常在你身边」。
### 合计:改动前 → 改动后
| 项 | 改动前 | 改动后 | 通过线(任务书 T4 第 5 条 / T2b) | 是否达到 |
| --- | --- | --- | --- | --- |
| 严重冲突 | 39 / 72 | **19 / 72**(事业 16,父母 3) | — | — |
| 读反 | 7 | 10(健康 7、父母 3) | — | — |
| 漏读 | 3 | 0 | — | — |
| 误报(含轻) | 1(轻) | **15**(重 9、轻 6;全部落在对照项:Bush、Zidane、奥巴马婚姻 / 健康) | 对照组 0 | **否** |
| 通过(含弱) | 22 | 28 | — | — |
| 两次都通过的格子 | 9 / 36 | 12 / 36 | — | — |
| 排查记录 5 份严重冲突,2 次各 | 10 / 10 仍冲突 | 奥巴马父母 2/2 过(弱)、乔布斯父母 2/2 过、泰勒婚姻 2/2 过;泰勒健康 2 份读反(不再是严重冲突,但没过);泰勒事业 2 份仍严重冲突 | 5 份全部不再冲突、两次都过 | **否**(泰勒健康、泰勒事业) |
| 新增 4 位严重冲突 | 20 / 32 | **7 / 32**(Monroe 事业 2、Garland 事业 2、Kahlo 事业 2、Kahlo 父母 1) | ≤ 1 | **否** |
| 事业题「专业 / 顾问 / 幕后」与生平冲突 | 16 / 18 | **16 / 18**(只有 Piaf 两份没写成专业型) | ≤ 3 / 18 | **否** |
| 禁句(逆行…反复 / 来回) | 7 处,6 份 | **0** | 0 | 是 |
| 性别未知时婚恋题用他 / 她 | 5 处 | **0** | — | — |
| must_not 原文(筛网) | 27 | 23 | — | — |
按领域:
- **父母**:缺席的父亲这一类修好了。奥巴马、Monroe、Garland、Piaf、乔布斯 10 份全部认出「父亲可能不常在你身边」并在段末请确认,不再写「话少、分量重、靠做事表达」;乔布斯两份都写出「照顾你长大的可能不止一位」(送养)。代价是**同一句被套到了父母都在身边的人身上**:Bush 3 处、Zidane 4 处、泰勒 3 处、Kahlo 1 处写成「可能不常在你身边 / 很早就有距离」。原因:第二单通用读法的门槛「受冲信号两个及以上就先写这一面」几乎每张盘都满足(9 宫或太阳被土星 / 火星照、宫主落 6/8/12、D12 有罗睺计都,随便凑两条),T1 定稿句又要求这时第一句就写「在不在你身边」,于是「可能不在身边」成了父母题的默认开头。
- **婚姻**:多次婚姻的五位 10 份全部读出「可能不止一段 / 断过再续」(基线 6 份写成稳定)。同样的门槛让对照组也被写成「不止一段」:奥巴马 2 份、Zidane 2 份、Bush 1 份(轻)。
- **健康**:不再有「没有受损」「不是有严重疾病迹象」这类严重冲突(基线 7 份),终身多病的五位都认出了 8 宫 / 6 宫主受冲、慢性消耗;但 7 份开场仍是「底子不差 / 中上 / 不弱」。对照组被写成「底子偏弱 / 偏薄、从小比别人容易累」(Zidane r2,职业球员)等 5 份。
- **事业**:没有改善。总统、影星、球星、画家、企业家依旧写成「靠专业深度立身」「顾问、老师」「幕后、不靠曝光」「名分落后于实力」。新出现的共性是两层叠加:①通用读法让模型先写受冲——事业宫被土星照、10 宫主落 6/8/12 几乎人人都有,于是开头一律是「名分被压着、在别人看不见的地方做」;②第二单之前就存在的事业清单第 3 行「①接触(消息、面试、初步接洽)②结构性机会(合同、正式职位、长期项目)③公开落地」把读者设成求职者(奥巴马事业 r1 几乎原样复述这三层)。T2b 改的 `product-voice.ts` 示例不是主因:示例删掉「升职 / 专业能力」后 16 / 18 原样不变。AL 落 10 宫(泰勒、Monroe、Garland、Piaf)只有 Piaf 两份、泰勒 r2、Monroe r2、Garland r1 读出「公众形象 / 名声就是事业」,后三份方向仍写成专业型。
### 纠正追问(T3 / D4)
对父亲缺席的四位(奥巴马、Monroe、Garland、Piaf)各两次父母答案追加一轮「我爸其实没怎么管过我」(同会话,历史为上一问一答,走追问轮形状):
| 名人 | r1 | r2 |
| --- | --- | --- |
| Barack Obama | 通过:「你说得对,我上一轮把这条读软了」→ 9 宫火星、9 宫主燃烧、土星照 → 点出上一轮「要你先问」那句读偏 | 通过:先认 → 列四条 → 点出「需要的时候总还能有人接住你」读偏 |
| Marilyn Monroe | 通过:先认 → 四条受冲 → 收回「关系质地的问题」「你接不住」两句 | 通过:同上,收回「按远近写、说轻了」 |
| Judy Garland | 通过:「认下了:这事是我上一轮读偏了」→ 点出「位置和标准」把没做的事包装成贡献 | 通过:先认 → 点出拿 D12 替他说「有支撑」读偏 |
| Édith Piaf | 通过:「认下」→ 点出把 2 宫同宫读成「日常能碰得着」 | 通过:「是,他没怎么管过你」→ 点出把月亮力量当成在场程度 |
8 / 8 份都先认下、再说哪几条对得上、点名哪句读偏,没有一份为原判断辩护,没有「盘上显示你们关系不错」。要留意的副作用:追问轮会把用户的话反向全部「对上」,例如「9 宫主落 8 宫这种结构,常应的就是……没有落到你身上」「在传统读法里讲的就是这个人不在场」——认错之后又把一条普通配置说成必然,确定性比首轮还高。这是 D4 没覆盖的一面(不辩护 ≠ 全盘附和),记给产品。
### 读出来的东西(给验收和下一单)
1. T1 的「在不在你身边 + 请确认」对缺席的父亲有效,排查记录的 C 类在 5 位缺席 / 送养名人上消失;T2 的「逆行 → 反复」禁句从 7 处降到 0;T3 纠正追问 8 / 8 通过。
2. 通过线没有达到。主要不是本单的句子写错,而是**受冲门槛太低**:「两个及以上受冲信号」在每张盘、每个领域几乎都成立,T1 又把它接到「第一句就写这一面」,于是对照组的误报从 1 份涨到 15 份,父母都在的泰勒也被写成父亲可能缺席。要压误报,需要产品决定其一:门槛改成「受冲信号明显多于支撑信号」或按信号强度计分;或卡上给出每个领域受冲 / 支撑的计数,让模型对比而不是只数受冲。
3. 事业题 16 / 18 不是示例造成的。可疑源头按顺序:第二单之后的通用读法(先写受冲)、事业清单第 3 行的「面试 / 正式职位」三层、模型自身对 AL 落 12 宫 / 10 宫主落 6 宫的「幕后」读法。需要另开单,在事业清单里写明 AL 落 10 宫与 10 宫 SAV 高时先说公众性与名声、三层不预设上班。
4. 健康题的「底子不差」开场仍有 7 份,健康清单「先讲体质底子」可能把开场固定成了对底子的评价;第二单健康清单可加一句「终身受冲信号多时,开场不写底子好」。
5. 成本:72 份墙钟 1,097 s(并发 6,含 6 份超时),补跑 8 份;单份中位 64 s;输入 3,622,567 token(缓存命中 3,149,952,约 87%),输出 935,849(推理 843,400);查卡工具 12 次。
6. 年运 / 时运单领域轮(第二单曾因字数口径不发通用读法)在 10-02 产品决定后已放开,但本回测没有覆盖年运 / 时运领域,效果未测。
## 改动后(第二轮,2026-10-02,产品改口径之后)
- 起因:第一轮对照组误报 1 → 15。Claude(PM)按卡片确定性计数核对:在场的父亲(Zidane、泰勒)与缺席的父亲(奥巴马、乔布斯)受冲信号数一样,盘分不出在不在身边。产品 10-02 改口径:受冲两个及以上时写「这条线有压力或距离的迹象」+ 括号依据 + 现实里可能的范围,不断定用户自己更清楚的传记事实(父母在不在、几段感情、有没有病),不写反向安慰(「有分量」「底子不差」「关系稳」……),段末请用户说一句实际情况、全篇最多一处;婚姻写「感情这条线上有波折的迹象」,健康写「身体这条线有压力的迹象」;事业清单三层去掉求职口吻,加「先讲一生事业形态,受冲只说阻力和代价」;纠正追问只对上真正对得上的几条,分不出的直说「盘本身分不出这一点」。
- 代码:提交 `066558a6`(`AFFLICTION_RANGE_RULE` 只定义在 `consultation-thinking-plan.ts`,通用读法第 3 条与 `NATAL_SECTION_RULE` 都引用它)。golden 同第一轮。
- 命令:`--repeats 2 --concurrency 4 --correction barack_obama,marilyn_monroe,judy_garland,edith_piaf`;72 份失败 0,无补跑。
- 评分:Claude 逐份阅读 72 + 8 份。按协调方给的新通过线:认出压力迹象算过;断言在场 / 缺席、几段感情、身体好坏,只有与生平相反才扣;对照组「压力迹象 + 范围 + 请说一句」不算误报,把「距离 / 偏弱」写成结论才算。
| 名人 | 父母 r1 / r2 | 婚姻 r1 / r2 | 健康 r1 / r2 | 事业 r1 / r2 |
| --- | --- | --- | --- | --- |
| Steve Jobs | 通过 / 通过 | 通过 / 通过 | 通过 / 通过(弱) | 严重冲突 / 严重冲突 |
| Barack Obama | 通过 / 通过 | 通过 / 通过 | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Elizabeth Taylor | 通过 / 通过 | 通过 / 通过 | 通过 / 读反(轻) | 严重冲突 / 通过 |
| Marilyn Monroe | 严重冲突 / 严重冲突 | 通过 / 通过 | 通过 / 通过(弱) | 通过(弱) / 通过 |
| Judy Garland | 通过 / 通过 | 通过 / 通过 | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Édith Piaf | 通过 / 严重冲突 | 通过 / 通过 | 通过(弱) / 通过(弱) | 通过 / 通过(弱) |
| Frida Kahlo | 通过(弱) / 通过 | 通过 / 通过 | 通过 / 通过 | 通过(弱) / 严重冲突 |
| George W. Bush(对照) | 误报(轻) / 误报(轻) | 通过 / 误报(轻) | 误报(轻) / 通过 | 严重冲突 / 严重冲突 |
| Zinedine Zidane(对照) | 通过 / 通过 | 通过 / 通过 | 误报(轻) / 误报(轻) | 严重冲突 / 严重冲突 |
格子说明:
- Monroe 父母两次都把母亲写成「这条线近、来往密、参与度高」(r2「她这一头是近的」),与母亲精神病住院、寄养的生平相反;Piaf 父母 r2「你和妈妈这条线牵得紧、来往多……照料和牵挂是实的」,与被母亲遗弃相反。这三份都是母亲一侧受冲两个以上、模型仍写了反向的「近」,违反新口径第 2 条。
- 泰勒健康 r2「身体底子能用……不是一个突然出状况的结构」与她多次急症、手术相反,记读反(轻);乔布斯健康 r2「底子够用」、Monroe r2「底子中等」认出了受冲并给范围,记通过(弱)。
- Bush 父母两次开场把父亲写成「距离感明显」「偏外,见面和消息都少一些」(段内有范围,但结论先下了);Bush 婚姻 r2「走到结婚那一步会比大多数人拖」、健康 r1「长期消耗大于恢复……最符合你的盘」;Zidane 健康两次「你的身体不是能硬扛的类型」「恢复慢、一累就拖很久」(职业球员)——都记误报(轻)。奥巴马婚姻、健康两个对照项本轮都是「迹象 + 范围」,不算误报。
- 事业「通过」的 5 份:泰勒 r2「走的是被看见的那条路」,Monroe r2「事业是做给外面看的」,Monroe r1「公众型」(仍带「上限在专业型」,记弱),Piaf r1「露脸……不是后台型」,Kahlo r1「面向人群……被广泛认得」(带「偏幕后、偏异地」,记弱);Piaf r2「硬本事……谈判、写方案」偏顾问口吻,记弱。
### 合计:改动前 → 第一轮 → 第二轮
| 项 | 改动前 | 第一轮 | 第二轮 | 通过线(协调方 10-02 修订) | 达到 |
| --- | --- | --- | --- | --- | --- |
| 严重冲突 | 39 / 72 | 19 / 72 | **15 / 72**(事业 12,父母 3) | — | — |
| 读反 | 7 | 10 | 1(轻) | — | — |
| 误报 | 1 | 15 | **6,全部轻**(Bush 4、Zidane 2;奥巴马对照项 0) | 0 | **否** |
| 通过(含弱) | 22 | 28 | **50** | — | — |
| 两次都通过的格子 | 9 / 36 | 12 / 36 | **22 / 36** | — | — |
| 排查记录 5 份 × 2 | 10 / 10 冲突 | 6 / 10 过 | **8 / 10 过**:奥巴马父母、乔布斯父母、泰勒婚姻各 2 / 2;泰勒健康 1 / 2(r2 读反轻);泰勒事业 1 / 2(r1 严重) | 不再有与生平相反的说法 | **否**(泰勒健康 r2、泰勒事业 r1) |
| 新增 4 位严重冲突 | 20 / 32 | 7 / 32 | **6 / 32**(Monroe 父母 2、Piaf 父母 1、Garland 事业 2、Kahlo 事业 1) | ≤ 1 | **否** |
| 事业「专业 / 顾问 / 幕后」与生平冲突 | 16 / 18 | 16 / 18 | **12 / 18** | ≤ 3 / 18 | **否** |
| 禁句(逆行…反复 / 来回) | 7 | 0 | **0** | 0 | 是 |
| 性别未知时婚恋题用他 / 她 | 5 | 0 | 0 | — | — |
| must_not 原文(筛网) | 27 | 23 | 16 | — | — |
### 纠正追问(第二轮)
| 名人 | r1 | r2 |
| --- | --- | --- |
| Barack Obama | 通过:认下、收回「事情都做了但不说」,三条对得上;「盘本身分不出的是具体形态:人不在、人在但没伸手、还是关系没建立」 | 通过:收回「在管、有人托着」;「是他人不在,还是人在但没插手——这两种在盘上是一样的,我不替你定」 |
| Marilyn Monroe | 通过:「盘本身分不出的是:他是人不在,还是人在、只是不做这件事」 | 通过:认下、收回上一轮「问他当年怎么处理」的预设在场;「盘不给这个区分」。仍有一句「他这一头没有担起父亲那个位置」偏重 |
| Judy Garland | 通过:「他是人在但没插手,还是人就不常在,这个盘分不出来」 | 通过:「盘本身分不出的是:他是不在同一个屋檐下,还是人在但不说话」;仍有「宫主落第 8 个位置说的是这条线断开」一句偏重 |
| Édith Piaf | 通过:列出盘分不出的三件(人不常在还是在但不插手、从何时起、谁的选择) | 通过:「这两条盘上给不出来,按你说的算」 |
8 / 8 份先认下、不辩护,且全部明确写出盘分不出的部分(第一轮 0 份写)。残留:2 份仍把某条普通配置说成「断开 / 没担起」,确定性偏高。
### 读出来的东西(第二轮)
1. 新口径把对照组误报从 15 份压到 6 份轻度,奥巴马婚姻 / 健康两项对照全部转为「迹象 + 范围」;缺席父亲、多次婚姻、终身多病三类都还认得出,排查记录 5 份从 6 / 10 升到 8 / 10。
2. **新口径第 2 条(受冲时不写反向安慰)执行不稳**:母亲一侧有 3 份在受冲两个以上的情况下仍写「近、来往密、照料是实的」,正好落在母亲缺席的 Monroe、Piaf 身上;Bush 的父亲、Zidane 的健康则是先在开场下了「距离 / 不能硬扛」的结论,段内再给范围。开场句没有受「范围」约束——第二轮剩余的误报和父母严重冲突几乎都出在开场或段首那一句。
3. **事业题仍未过线(12 / 18)**。新加的「先讲一生事业形态」让 5 份写出公众型,但模型按 AL / A10 / 10 宫主的落宫读形态时,乔布斯(A10 落 12 宫)、奥巴马(10 宫主落 6 宫)、Bush、Zidane(10 宫主落 1 宫)依然得出「专业 / 幕后 / 被同行指名」。也就是说,这几张盘按清单列出的信号确实读不出「公众型」——事业形态与盘面信号的对应本身需要占星口径(例如:10 宫 SAV 极高、10 宫主是 yogakaraka、太阳 / 土星入旺坐角宫时的读法),不是措辞能解决的。
4. 健康、婚姻两个领域在新口径下基本稳定:婚姻 18 / 18 无冲突(含对照 1 份轻误报),健康只剩泰勒 r2 一份读反与对照组 3 份轻误报。
5. 成本:72 份墙钟 1,203 s(并发 4);单份中位 60 s、最长 108 s;输入 3,837,705 token(缓存 3,351,424,约 87%),输出 970,842(推理 876,019);查卡 10 次。
## 改动后(第三轮,2026-10-02,事业行业与名声、开场规则、传统格局)
- 任务书:`docs/tasks/TASK-consult-career-yoga-functional-20261002.md`;进度:`docs/tasks/PROGRESS-consult-career-yoga-functional-20261002.md`。
- 代码:`codex/consult-career-yoga-functional-20261002`(T2 瑜伽检测不跳过、T3 传统格局栏、T4 事业清单两行、T5 开场规则)。**T1 功能吉凶对照表没有进本轮**:它触发了生时校正回归门(硬红线 3),单独放在 `codex/consult-career-yoga-functional-t1-20261002`,卡上的功能吉凶仍是旧公式。
- golden:两份都用 capture 脚本按同一命令重新生成(规则引擎每次都跑,卡上新增 `traditional_yogas`),两次输出逐字节相同。
- 评分表:事业项加 `expected_field` 与 `public: true`;`how_to_score.career_field`:「行业对」= 正文把主线写到 `expected_field` 里至少一项(同义可算:竞技≈体育,表演≈演艺 / 影视 / 舞台 / 娱乐,唱歌≈音乐 / 演唱,政治≈从政 / 治理 / 公共事务,技术≈科技 / 工程 / 产品);只在一串行业里顺带提到、主线是别的,不算。「专业 / 幕后误判」= 把人写成专业型 / 顾问 / 幕后 / 不靠曝光。其余口径同第二轮(迹象 + 范围 + 请说一句不算误报;开场或段中把「距离 / 偏弱 / 长期欠账」写成结论算对照组误报(轻))。
- 命令:`--repeats 2 --concurrency 4 --correction barack_obama,marilyn_monroe,judy_garland,edith_piaf`;72 份 + 8 份纠正,失败 0,无补跑。Claude 逐份阅读评分。
| 名人 | 父母 r1 / r2 | 婚姻 r1 / r2 | 健康 r1 / r2 | 事业 r1 / r2 |
| --- | --- | --- | --- | --- |
| Steve Jobs | 通过 / 通过 | 通过 / 通过 | 读反(轻) / 通过 | 严重冲突 / 严重冲突 |
| Barack Obama | 通过 / 通过 | 通过 / 通过 | 通过 / 通过 | 通过(弱) / 严重冲突 |
| Elizabeth Taylor | 通过 / 通过 | 通过 / 通过(弱) | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Marilyn Monroe | 严重冲突 / 严重冲突 | 通过 / 读反(轻) | 通过(弱) / 通过 | 通过(弱) / 通过(弱) |
| Judy Garland | 通过(弱) / 通过 | 通过 / 通过 | 通过 / 通过 | 严重冲突 / 严重冲突 |
| Édith Piaf | 严重冲突 / 通过 | 通过 / 通过 | 通过(弱) / 通过(弱) | 通过(弱) / 通过 |
| Frida Kahlo | 通过 / 通过 | 通过 / 通过 | 通过 / 通过(弱) | 通过(弱) / 严重冲突 |
| George W. Bush(对照) | 误报(轻) / 通过 | 通过 / 通过 | 通过 / 误报(轻) | 严重冲突 / 严重冲突 |
| Zinedine Zidane(对照) | 通过 / 通过 | 通过 / 通过 | 通过 / 误报(轻) | 严重冲突 / 严重冲突 |
事业逐份(行业对 / 专业·幕后误判):
| 名人 | expected_field | r1 | r2 |
| --- | --- | --- | --- |
| Steve Jobs | 技术、商业 | 否 / 是(「靠专业深度和说话吃饭…不在台前曝光上」) | 否 / 是(「专业和长线…被推到台前是卡手的地方」) |
| Barack Obama | 政治、公职、法律 | 否 / 否(「有实权、要对结果负责、要对外露面的角色」,没点行业) | 弱(「合同和案子」) / 是(「长期待在一个体系里…挂在别人的平台或上级的授权下面」) |
| Elizabeth Taylor | 表演 | 否 / 是(「管理、分析、文字数据…不是纯前台表演」) | 否 / 是(「偏技术、偏系统…不是靠露脸」) |
| Marilyn Monroe | 表演 | 是(「审美、表达、娱乐」「被人看到…就是你事业的形态」) / 否 | 否(「审美、呈现」,未点行业) / 否(「靠出面、被人看见来换位置」) |
| Judy Garland | 表演、唱歌 | 否 / 是(「靠表达、分析、专业交付…不是靠级别和头衔」) | 否 / 是(「信息和专业这一路」,段中承认偏露面) |
| Édith Piaf | 唱歌、表演 | 否(「面向人群的表达型业务」,未点行业) / 否 | 是(「审美、内容、表演」) / 否 |
| Frida Kahlo | 绘画、艺术 | 否(「公众、照护、内容」「美、关系」) / 否 | 否 / 是(「靠个人名头被人认出来,盘上支持少…收在专业、指导、顾问」) |
| George W. Bush | 政治、公职、法律 | 否(「教育、法律、顾问、分析」并列,主线「表达和分析」) / 是(「不是很有名的人」) | 否 / 是(「技术和执行这一路…不靠露脸」) |
| Zinedine Zidane | 体力、竞技 | 否 / 是(「专业型和对人型…沟通、写作、分析、谈判」) | 否 / 是(「靠专业本事立住…往幕后深度走」) |
格子说明:
- Monroe 父母两次开场把母亲写成「这条线是有人管的——她的心力一直落在你的出路和成绩上」「妈妈这条线是活的」,与母亲住院、寄养相反(第二轮同样两份);Piaf 父母 r1「家里那一宫落着木星,照看是在的」,与被母亲遗弃相反。
- 乔布斯健康 r1 开场「底子这条线本身没有受冲的证据」,记读反(轻);Monroe 婚姻 r2 开场「婚姻这块盘上是接得住的」(段内给了范围),记读反(轻)。
- Bush 父母 r1 开场「爸爸这条线是支持在、距离也在」;Bush 健康 r2「体力这条线容易在压力一上来的时候先退」;Zidane 健康 r2 开场「它更像长期欠账」——都把程度写成结论,记误报(轻)。奥巴马婚姻 / 健康两个对照项都是「迹象 + 范围」,不算误报。
- 卡上有 `traditional_yogas` 的 14 份事业答案里,6 份在正文或依据里提到了传统格局,其中奥巴马 r2 写明「本站未验证,只用来参考力量,不拿来断事」;没有一份拿它单独下结论。
### 合计:第二轮 → 第三轮
| 项 | 第二轮 | 第三轮 | 通过线(任务书 T6) | 达到 |
| --- | --- | --- | --- | --- |
| 事业「行业对」 | 未单列 | **3 / 18**(Monroe r1、Piaf r2、奥巴马 r2 弱) | ≥ 14 / 18 | **否** |
| 事业「专业 / 幕后」误判 | 12 / 18 | **12 / 18** | ≤ 3 / 18 | **否** |
| 对照组严重误报 | 0 | 0 | 0 | 是 |
| 对照组轻度误报 | 6 | **3**(Bush 2、Zidane 1) | ≤ 2 | **否** |
| 严重冲突 | 15 / 72 | **15 / 72**(事业 12、父母 3) | ≤ 5 / 72 | **否** |
| 读反 | 1(轻) | 2(轻) | — | — |
| 通过(含弱) | 50 | 53 | — | — |
| 两次都通过的格子 | 22 / 36 | 22 / 36 | — | — |
| 排查记录 5 份 × 2 | 8 / 10 | 8 / 10(泰勒事业 0 / 2) | — | — |
| 新增 4 位严重冲突 | 6 / 32 | 6 / 32(Monroe 父母 2、Piaf 父母 1、Garland 事业 2、Kahlo 事业 1) | — | — |
| 其余领域 | — | 父母严重 3 → 3;婚姻误报 1 → 0、读反 0 → 1(轻);健康读反 1 → 1、误报 3 → 2(全部轻) | 不比第二轮差 | 是(持平) |
| 禁句 | 0 | 0 | 0 | 是 |
| 性别未知时婚恋题用他 / 她 | 0 | 0 | — | — |
| must_not 原文(筛网) | 16 | 9 | — | — |
### 纠正追问(第三轮)
8 / 8 份先认下、点名上一轮哪句读偏、只列对得上的几条,并写出盘分不出「人不在」还是「人在但不管」。残留同第二轮:Garland r1「这一条说的是这条线本身是空的、接不上的」、Piaf r2「计都传统上就是断开、不接」把普通配置说得偏重。
### 读出来的东西(第三轮)
1. **开场规则(T5)有效**:对照组开场先下「距离 / 不能硬扛」结论的轻度误报从 6 份降到 3 份,剩下 3 份里 2 份在段中而非开场。
2. **事业题没有改善,原因不在措辞**:模型按 T4 的「星的本性」去取行业,但这几张盘上 10 宫、10 宫主、AmK 落到的是水星、木星、土星(分析、顾问、组织),按清单的对照表本来就得不出「表演 / 竞技 / 政治」;清单列的公众型依据(太阳或 10 宫主强在角宫、AL / A10 落角宫)在乔布斯、布什、齐达内盘上也不成立,模型照「没有依据就偏幕后」写成了专业型。泰勒、Garland 虽然 AL 落 10 宫,模型仍以 10 宫主的星性定行业。要过线需要产品与占星顾问定事业口径(例如 D10 的权重、AL 落 10 宫与入旺星对「公众型」的分量、金星 / 月亮作为表演类指标的取法),不是改措辞能解决的。
3. **传统格局栏没有被滥用**:6 份提到,都只作力量说明;但也没有因此把奥巴马、乔布斯读成公众型。
4. **父母题母亲一侧的反向安慰仍在**(Monroe 2、Piaf 1,与第二轮相同的三份):开场规则没有覆盖「母亲受冲两个以上仍写近、有人管」这一类,属于 `AFFLICTION_RANGE_RULE` 第 2 条执行不稳,需另议。
5. 成本:72 份墙钟 1,249 s(并发 4);单份中位 61 s、最长 108 s;输入 3,880,129 token(缓存 3,396,224,约 88%),输出 989,525(推理 889,561);查卡 10 次。
## 真机清单(给产品,staging 部署后)
每条都在新会话里问,档案不填性别;看三件事(10-02 口径):受冲时是不是写成「压力 / 距离的迹象 + 现实里可能的范围」而不是替你下结论、是不是只请你说一次实际情况、有没有预设处境。
1. **父母题**:问「我和父母关系如何,他们怎么对待我?」。看:盘上受冲多的一方,是不是写「这条线有距离的迹象」+ 括号依据 + 「现实里可能是……也可能是……」,而不是直接说「他不常在你身边」或反过来「她一直很近、照顾很实」;段末是否只有一句「实际是哪一种,告诉我一句」;全篇只问一次。**再追问一句**「我爸其实一直都在,挺好的」(或按你的实际情况反着说),看回答是否先认下、只对上真正对得上的几条,并直说盘分不出的部分。
2. **婚姻题**:问「我的婚姻和感情会是什么样?」(已婚未婚都可以)。看:有没有默认你已婚或有伴侣;有没有用「他 / 她」称伴侣;受冲时是不是写「感情这条线上有波折的迹象」+ 范围,而不是「可能不止一段」;有没有写「关系稳」「能走下去」这类安慰。
3. **健康题**:问「我的身体底子怎么样,健康上要注意什么?」。看:受冲多时是不是「身体这条线有压力的迹象」+ 范围,开场有没有「底子不差 / 能用」;有没有诊断、病名;结尾是否有「不是医疗意见」。
4. **事业题**:问「我的事业会往什么方向走,能做到什么程度?」。看:有没有「面试」「升职」「投简历」;开场是不是先讲事业形态(公众型 / 幕后型、靠什么出头);是不是不论盘面都写成「专业型 / 顾问 / 幕后」。
## 成本(一次全量)
| 项 | 数 |
| --- | --- |
| 份数 | 72(9 × 4 × 2) |
| 墙钟 | 664 s,并发 6;单份中位 54 s,最长 87 s |
| 输入 token | 3,480,792,其中命中缓存 3,187,584(约 92%) |
| 输出 token | 761,012,其中推理 664,649 |
| 单份平均 | 输入约 48k、输出约 10.6k |
| 查卡工具 | 72 份里 19 次调用了 `read-consultation-evidence` |