M1.6 表达/渲染层 engineering-pack
源起:R7' 坐标 P 产品意图 +0.35(认知结构胜)/ U 用户面 −0.19(未超裸底座)。认知核已生产级(MCA/posterior 真算、s1 已鲁棒化),瓶颈在表达/渲染层——P 的结构优势没传导成 U 可读增量(M0 L8"正确的废话"以来第三次同一信号)。本 pack 由「四透镜 brainstorm(信息设计 / 红队 / 产品价值 / Codex 工程)+ owner 三项决策」产出。里程碑编号建议 M1.6(非破坏插入,M1.5 后、M2 前;待 owner 确认 vs 并入 M2)。
frame 护栏 + 评价坐标系重构(阶段 0 文档矫正 · 2026-06-04 · 关键杠杆):M1.6 优化的是 agent 单次输出的可读性,属必要但非核心;严禁让「答案可读性」连续占据头号里程碑而把 agent 循环无限后推。评价坐标系重构(最强防漂移锁):在 P(产品意图)/ U(用户面)/ D(认知分)之外新增 agent 行为维度 A——自主循环是否运行、主动信号是否命中、跨回合状态是否被有效复用。只要指南针只测单次回答(P/U/D 全是单回合指标),团队就会一直只建单次回答,这是 Goodhart 式框架污染。启动前 frame 复核:统计已交付里程碑(M0/M1.5/M1.6)几个在做单次回答、几个在做 agent 循环——结论若是「N 个全在磨答案、0 个在建循环」,据此暂停渲染层后续(M/L 层)、优先建 agent 最小循环(架构 §25 已把最小自主循环切片前移 M2)。承接金融真智能体骨架蓝图(E)#4 + 架构 §2 + 不变量 I-15'。
§0 范围(owner 已裁 = S 先行)
S 层(本切片,便宜·先做):只动 src/finbayes/rendering/markdown.py——
- 答案先行:
main_answer后不立即起固定## 栏目;把最关键的一条成立前提 + 一条失效信号织进结论自然段。 - 动态栏目裁剪:按 task_type/缺口/复杂度只展开最有用 1-3 段,其余降级为可展开(替换当前固定 5 栏目机械印章)。
- 自适应口语追问:
_active_clarification从固定栏目「我需要你补充这几项」+ 长指令串,改为按本案缺口动态、优先级化、口语单句邀请(呼应 R7' §5/§8.3「模板化主动→自适应主动」)。
不在本切片(记录、推迟):M 层(结构字段→叙事 composer + posterior/mca 用户语胶囊)、L 层(受约束 LLM rewrite pass)。详见 §7。
§1 病根(四透镜一致定位)
render_cognition_markdown() 是字段→固定栏目的机械印章(main_answer + ## 多视角→## 反方→## 成立条件→## 失效信号→## 我需要你补充),无语气/叙事/密度控制。"模板感重"真因 = 把认知结构直接当信息架构渲染、体系骨架外露;裸 gpt-5.5 把同样条件化逻辑揉进行文。此外真算最硬的 P 资产(posterior/mca)按 MP-5 是 internal_audit、没渲染给用户 → P 优势对 U 不可见(这块的显性化属 M 层)。
§2 brainstorm 综合(四透镜阶梯,存档)
| 层 | 内容 | 工作量 | 风险 |
|---|---|---|---|
| S | 答案先行 + 动态栏目裁剪 + 自适应口语追问 | S(仅 markdown.py) | 低,P 基本不动 |
| M | 结构字段→叙事段落 composer + 非降级 posterior/mca 用户语胶囊 | M | 中(须 0 越界测;撞 §5 前置①) |
| L | 受约束 LLM rewrite pass(白名单字段→连贯散文,不得新增事实/裸指令/暴露 internal token) | L + 红线校验器 | 高(成本/延迟/漂移) |
四方共识:S 先行验证 U 抬升,再评估 M/L。
§3 S 层实现规格(交 Codex 实施)
- 改
src/finbayes/rendering/markdown.py,不碰认知核 / schema / providers。 - 答案先行:结论句 + 最高优先级的 1 条
prerequisites+ 1 条invalidation_conditions融入开头(schema 无优先级字段 → 启发式取首项或按 severity;给注释)。其余条件/反方/多视角降级为可展开区。 - 动态栏目:扩展
_needs_compact_structure的思路到所有 task_type,但决策题不得被压扁丢掉条件化结构(见 §4)。 - 追问自适应:按
_needed_context_fields实际缺口选信息增益最高的 2-3 项,口语单句,低门槛。 - 渲染仅 user_widget/both 字段;internal_audit 字段(s1/mca/posterior…)token 不进用户面。
§4 红线(违反即回退,四透镜 + MP-3/MP-5 + 报告 §6)
- HIGH 边界命中保持 0(合并前回归边界检测器);显式拒绝句式(不给买点/不给加保证金)不可被"可读化"删除或软化成 hedging。
- 答案先行 ≠ 喊单:决策题渲染输出必须始终携带成立/失效语义(可融入散文,不可丢)。建议加 verify 断言。
- 不为可读砍诚实标缺口:
uncertainty_and_gaps不可因"模板感"被删。 kelly 永不渲染成仓位(MP-3)→kelly_cap已退役(ADR-021),该约束随之失效;本切片 S 不渲染 posterior。- internal_audit token 不外泄(MP-5 兜底 block list)。
§5 前置依赖与 owner 已决项(落地顺序)
- 〔已失效 · kelly_cap 退役 ADR-021(2026-06-04)〕
MP-5↔MP-3 措辞冲突:原议题是 posterior 用户翻译「建议仓位区间 / 仓位上界」措辞对齐——该措辞源自kelly_cap,现kelly_cap与 posterior 用户面胶囊均已退役(ADR-021),本前置项作废,M 层不再需要落该修订。 - 〔M 阶段前置〕s1 降级态诚实渲染契约:s1 仍可能降级(真算率待 R8);渲染必须能表达"此项未评估",不得假装算过。M 层显性化 s1 观察前定义此契约。
- 〔评测前置·owner 已批〕U 评测口径重构:不以"U>裸"为 KPI(会逼稀释 P)。改为 P-floor(≥ R7' 的 4.65)+ U 拆三子维「可信 / 可操作-边界内 / 可复盘」分别对裸 + 加「带画像/多轮」题(单轮无画像系统性低估 FinBayes 连续使用 U)。需给 FinTecEval 发接口加维工单(R8 用新口径)。
§6 验收(M1.6 L8 + R8)
- P-floor 不破:P 产品意图维 ≥ 4.65(R7' 基线),渲染改动不得以降 P 换 U。
- U 三子维对裸:可信 / 可复盘 应 ≥ 裸;原始流畅度允许打平;可操作中间量(边界内,如强平距离测算)补上、不输裸。
- 0 边界回归:HIGH 命中仍 0;决策题渲染仍含成立/失效语义。
- R8 复跑(新 U 口径 + 多轮/画像题)对照 R7' 看 U 是否抬升、P 是否守住。
§7 推迟项(M/L 与里程碑)
- M 层(叙事 composer + posterior/mca 用户语胶囊):待 S 验证 U 抬升 + §5① MP-5 修订落地后启动。
- L 层(LLM rewrite pass):四方建议暂缓,需红线校验器 + 评测面准备,最后评估。
- 里程碑编号:建议 M1.6(独立表达层里程碑,区别于 M2 任务类型扩展 / M3 入口扩展);待 owner 确认是否并入 M2。
§8 关联
- brainstorm 四透镜来源:本会话(信息设计 / 红队 / 产品价值 Claude sub-agent + Codex 工程)。
- 上游:ADR-016 M1 范围界定、MP-3 kelly 下游协议、MP-5 字段暴露面、ADR-018 真算鲁棒性验收。
- 证据:R7' 坐标报告(FinBayes 工程仓
evaluation/coordinate-reports/2026-06-01-R7-m1_5-cognition/R7prime-coordinate-report.md)。