跳到主要内容

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——

  1. 答案先行main_answer 后不立即起固定 ## 栏目;把最关键的一条成立前提 + 一条失效信号织进结论自然段。
  2. 动态栏目裁剪:按 task_type/缺口/复杂度只展开最有用 1-3 段,其余降级为可展开(替换当前固定 5 栏目机械印章)。
  3. 自适应口语追问_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 已决项(落地顺序)

  1. 〔已失效 · kelly_cap 退役 ADR-021(2026-06-04)〕 MP-5↔MP-3 措辞冲突:原议题是 posterior 用户翻译「建议仓位区间 / 仓位上界」措辞对齐——该措辞源自 kelly_cap,现 kelly_cap 与 posterior 用户面胶囊均已退役(ADR-021),本前置项作废,M 层不再需要落该修订。
  2. 〔M 阶段前置〕s1 降级态诚实渲染契约:s1 仍可能降级(真算率待 R8);渲染必须能表达"此项未评估",不得假装算过。M 层显性化 s1 观察前定义此契约。
  3. 〔评测前置·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 关联