fix(rectification): surface dropped probes and filter tools by the decision
Silent unrenderable discriminators, a missing question-contract golden, and a always-on tool table were hiding fail-closed drops behind the prompt wall. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6397,6 +6397,22 @@
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-422 | 丢题不可见、契约无 golden、工具表与提示词重复
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-28
|
||||
- 最近更新:2026-08-28
|
||||
- 影响面:`completeStyleOptions` / `isRenderableProbe`、GET `current_question`、Mastra Agent 工具表、`contracts/probe-question-v1.json`
|
||||
- 用户现象:区分探针因外貌词、标签不足或无法渲染被静默丢掉,界面和工具投影都看不到原因。选择题 schema 坏了时 `current_question` 变成 `null`,模型继续自拟题。采集阶段的提示词重复 Skill 里已有的外貌/财务禁令和工具调用表。
|
||||
- 触发条件:varga 风格标签含禁词或不足两项;已持久化 Focus 的 choice schema 缺四选项;`proposeAllowed` 为 false 时模型仍看到 `offer-candidates`。
|
||||
- 根因:选项补全和可渲染检查只返回成功数组或 `null`,没有 `reason`。读路径把坏 schema 当成「没有题」。Agent 工具表不看 `decideFromDossier`。TS/Python 合同没有 byte-equal golden。`uniquify` 曾用 `answer_class` 当可见后缀。
|
||||
- 修复:补全/可渲染返回 `{ ok, options|reason }`。`inspectDiscriminatorProbes` 把丢题写入 `decision.droppedProbes` 和 receipt `dropped_probes`。GET/`turn_decision` 对坏选择题返回 `{ unrenderable: true, reason }`,采集类 Focus 仍为 `null`。`createRectificationV9AgentTools(ctx, decision)` 按 phase / `proposeAllowed` / `selectionAllowed` / `canConfirmExactMinute` 过滤工具。合同 golden 在 `contracts/probe-question-v1.json`,引擎 client 拒不匹配的 `question_contract_version`。重复标签用 `·2` 而不是 `weak_yes`。Mastra 提示词删掉已由代码执行的外貌/财务/工具禁令,Skill 保持 10.0.13。`lib/birth-time-*` 仍被 `app/` 与 `components/` 的 guided/journey/intake 与 `/api/birth-time-journey`、`/api/birth-time-guide` 引用,本批不删。
|
||||
- 验证:`rectification-probe-question-contract` 锁定 result type、index uniquify、golden bytes、forbidden_copy 丢题。Python `test_probe_question_contract` 同样对齐 golden。`rectification-answer-choice` 锁定坏 schema 为 unrenderable、采集 Focus 仍 null。`rectification-v10-tool-contract` 锁定 `proposeAllowed` 为 false 时没有 `offer-candidates`。`rectification-v9-engine-contract` 锁定错误合同版本 fail-closed。`rectification-v9-agent` / `rectification-agentic-entry` 锁定瘦身后的提示词。
|
||||
- 防复发:不得把 `completeStyleOptions` / `isRenderableProbe` 改回只返回数组或 boolean。不得把坏选择题投影成 `current_question: null`。不得在无决策时按 phase 过滤工具后,再把 `offer-candidates` 写进提示词禁令。不得用 `answer_class` 当可见标签后缀。不得在本路径删除仍被 journey/guide UI 引用的 `birth-time-*`。不得把 Skill 升出版本。
|
||||
- 相关记录:BUG-403、BUG-421、#42
|
||||
- 复发自:BUG-403(动态四选项合同未贯穿丢题原因)
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-410 | 训练已齐仍因家人/职业方法层停在采集,Agent 只确认后截断
|
||||
|
||||
- 状态:resolved
|
||||
|
||||
Reference in New Issue
Block a user