-
feat: P4.4 原生确认单 —— S1 生产线全线打通 · b6868af6
主管在召回池点「移交助手」→ 助手出确认单 → 点确认 → 100 条落到 12 位客服名下。 本地真实数据端到端跑通。 ## 批次规模:助手自己定,不问主管(产品定调) 上一刀留的问题:target 不传时取"团队剩余容量之和"= 17 人 × 50 = **850**, 而 T5 说的是「宁可 100 人做透」。
⚠ ️ **「团队还能吃多少」不是「这批该分多少」**。 新增 `DEFAULT_BATCH_SIZE = 100`,依据就是 T5 那句话本身(教条给的口径,不是拍的), 再被两个上限夹住:团队剩余容量、候选总数。⭐ 助手**按默认值直出,不问**(T13);主管要改自己说"这批只要 60 人"。 原先 systemExtra 里写的"主动问主管这批想做多少人"是违 T13 的,已删。 ## propose_assignment 从 MCP 改成本地工具 + 侧信道⚠ ️ MCP 工具的返回值会**原样回灌进模型上下文** —— 确认单含几百个 planId (一批 850 人 ≈ 12k token),而模型对它唯一要做的事是"转述一句话"。 改成 assistant 的本地工具:肥载荷走 `onSideEvent` 直接推前端, **回给模型的只有摘要 + 三句要它原话转述的依据**,一个 planId 都没有。⛔ 也不能让模型在 tool_call 参数里写这些 id —— 那些参数是模型生成的,同样是它在编。 `requestId` 由**服务端在此铸造**(D-2),随卡片下发、确认时原样回传。 ## 确认单必须是原生组件 artifact 跑在 `sandbox="allow-scripts"` 的 iframe、CSP `connect-src 'none'`, **卡片内不可能发出写请求**。分岔记牢:只读展示用 artifact,可交互用原生组件。 三层:汇总 → 按客服(可折叠看患者明细)→ 微调 + 确认。 · 助手窗只有 400px,**不用 table**(横向撑爆),用卡片列表 ·⭐ T15:溢出转铺平**显式可见**(每人一个「铺平 N」角标)—— 主管要看见发生了什么,而不是只看到结果 · 已满被跳过的人**仍然列出来** —— 他不是被漏了,是已经满了 · 微调**只有两项**(T13):时效、指定客服(后者回对话说)。多一项就违教条,评审按这条卡 · 三句依据(selectionNote / capacityNote / rosterNote)原样展示,前端不改写🔴 **确认成功后必须往消息流注入一条文本块**: `toApiMessage` 只回传文本块(工具块不回传,模型自行重新决策)—— 不注入的话下一轮主管说「刚才那批改成 5 天」,模型手里没有"那批"的任何痕迹, 会当成新需求重新提议一次。改动极小但极易漏,漏了会被当成模型能力问题。 ## assistant-store 的消费纪律 `pending` 用 seq 自增而不是"消费完置空":置空要消费方回写 store,那是双向数据流, StrictMode 双执行下会变成发一次跑两次、或一次都不跑。 只在 widget 变体消费(/assistant 整页可能同时开着,两处都消费会发两遍)。 ## 一个自己制造又自己修掉的矛盾 上一刀我在 systemExtra 里加了「原生确认单尚未上线,别提不存在的按钮」—— 这一刀把卡片做出来之后,那条约束当场过时,助手正指着自己上面的按钮说"界面上没有"。 已改成「确认单是一张真卡片,就在你这条消息里;不要复述明细,不要说界面上没有按钮」。⚠ ️ 教训:提示词里写"当前还没有 X"这类**会过期的事实**,做完 X 必须回来改。 ## 端到端实测(本地 2,695 条召回池) 点移交 → 助手开窗 → propose_assignment → 卡片渲染「确认分配 100 条」 点确认 → 卡片切终态「✓ 已分配 · 批次 #f27ef359」 落库:批次 f27ef359 / 100 条 / 12 位客服 / 到期 2026-08-05 / confirmed 策略 90 dedicated + 5 spread_overflow + 5 spread_no_dedicated 快照 dedicated 90 条都有专属快照;spread_no_dedicated 5 条没有(本就没专属,正确) 100 条全有 priority_score 快照 注入文本块「已确认分配:批次 #f27ef359 · 100 条 · 12 位客服 · 3 天有效」✅ 跟踪:列表 createdBy 832 → **康慧捧**(姓名已解析); 详情 agentStats 之和 = 100 = planned,untouched 99✅ 877 单测通过,测试数据已清理。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed