M1.5 认知核实化 engineering-pack(s1 / MCA / posterior 真算)
状态 = draft(主控拟案,待 owner review)。承接 ADR-016 M1=状态化 only,认知核实化拆 M1.5。本 pack 把 M0 遗留的确定性占位(deterministic-fill)认知字段变成真实计算。M1.5 在 M1 之后、M2 之前。
frame 护栏(阶段 0 文档矫正 · 2026-06-04):M1.5 提升的是 agent 在一次循环内产出的认知质量(把占位字段换真算)——它不推进 agent 的循环 / 状态 / 自主性,也不得被解读为「FinBayes 的工程重心是单次回答」。s1 / MCA / posterior 算真,只有当这些字段被 agent 循环消费(如 posterior / 失效条件进入主动信号触发逻辑、进入到期对账)时,才转化为 agent 能力;孤立加深字段而不接入循环,是金融真智能体骨架蓝图判定的框架偏移。优先级提醒:投入 M1.5 打磨单次回答前,先确认 agent 最小自主循环(架构 §25 已前移 M2)是否已端到端可见;若否,M2 的 agent 行为门优先于继续加深字段。验收口径从纯「单次回答认知分(D 维度)」扩展到「这些更深字段是否真被 agent 循环消费」。承接架构 §2 agent 本体不变量 + 不变量 I-15'。
§0 范围(严格照 ADR-016 §0.2/§4,不扩不缩)
含(四项):
- MCA 多桶裁决:7 轴打档 → 8 桶裁决 → worst_axis 收敛(替换 M0 全
B1/L1..K1写死)。 - s1 叙事-数字一致性完整子流程:mode 多选 + 8 字段输出契约 + 反向触发收敛(替换 M0
_s1()占位)。 - posterior 真算:多情景 → 双峰拟合(替换 M0
fit_method="m0-deterministic-fill"写死;kelly_cap已退役 ADR-021)。 - tag_version 锁
mca-v1.0(替换 M0"m0")。
不含(划界):状态机 / Session / Watchlist / Judgment / 两步写入(= M1,已完成);密度/任务粒度(= M2);动态画像(= M2,静默写入见 ADR-007 §6);MCA 轴 4(N) 的自动数据通路(v1 走人工标注,见 §3.1)。
§1 现状基线(M0 假填的确切位置)
src/finbayes/cognition/synthesis.py 三处函数返回与输入无关的写死常量(M1.5 要替换的就是它们;Pydantic schema 已就绪、字段齐全、validator 已在,M1.5 是"填真值"不是"改 schema"):
| 字段 | M0 现状(synthesis.py) | 证据 |
|---|---|---|
mca_bucket | _mca_bucket() 全返回 L1/D1/F1/N1/C1/I1/K1 + B1 + tag_version="m0" | 与问题无关,纯默认桶 |
s1 | _s1() 返回 coupling_strength=0.62/confidence=0.74/narratives=["deterministic M0 narrative"]/loop_count=1,method="hash-stable" | 纯占位 |
posterior | fit_method="m0-deterministic-fill",mode_a(0.04,w0.60)/mode_b(-0.03,w0.40) | 写死数字(kelly_cap 已退役 ADR-021) |
叙事字段(main_answer 等)= 真 LLM 产出;上述认知字段 = 确定性兜底。模块 docstring 已自陈"deterministic scaffolding fills schema fields M0 has not implemented as real inference yet"。
§2 总基调(doc 已锁,M1.5 照此,不另起炉灶)
认知体系研究工作流反复锁定同一范式(mechanisms-v1 §二):
- LLM 产元素 + 综合层 Python 产结构。posterior 明确锁 M7.uq 选项 b(多情景→后处理拟合),不引 PyMC、不让 LLM 直输分布参数、不上显式贝叶斯模块。s1 抽取走"四要素模板 + self-consistency n=5"。MCA 7 轴走 LLM 打档 + 规则裁桶。
- v1 不追外部实时数据通路:真算以 LLM 推断为主;MCA 轴 4(N 国家队/非市场参与者)走人工标注 + 季度校准(数据不公开);不接行情/链上实时数据(留后续里程碑 + 挂 ADR-014 触发器)。
- 沿用既有 provider 抽象 + asyncio(ADR-008/ADR-005),不引新三方依赖。
§3 三块真算规格
§3.1 MCA 多桶裁决(先做,是 s1/posterior 的上游)
- 输入:当前问题 + fin_object + market 上下文。
- 算法(v1,受契约现状约束 — 主控补读 mca-buckets.yaml 后更正):契约没有「7 轴组合 → 桶」的确定性裁决表(完整子系统裁决 = DA-6,未立;8 桶是带 archetype 的命名市场状态,如"发达机构基线 / A 股政策出清 / EM 主权危机",非 7 轴的纯函数)。故 v1 走总基调(LLM 产结构):一次 LLM 调用产出
{7 轴档位 + bucket_label(B1–B7)}(桶按 mca-buckets.yaml 桶语义自然语言判定);Python 后处理只做worst_axis = MP-2 priority(N3>F3>C3>L3>K3>I3>D3),并列时按桶位字典序选小(mca-classifier §7/§184)。tag_version="mca-v1.0"。 - 轴 4(N):LLM 可产 N1/N2;N3(国家队战术 / 准政策信号)= half-manual review layer(mca-buckets.yaml
axis_4.half_manual_review_layer: N3+ Phase 7 SLA)——v1 若 LLM 判 N3,须标"待人工复核",不直采为已确认档位。 - 输出:填真实
MCABucket(随输入变化、非常量),tag_version="mca-v1.0"。 - ✅ 主控核查发现的 doc 不一致(已于 2026-06-01 doc-hygiene 闭环):(a) 我本节原写"规则裁出 8 桶"为乐观表述,已更正——契约无该规则;(b)
mca-classifier.md §9把 MCA 自动推理标在"M1",早于 ADR-016 插入 M1.5,属 stale 标签,以 ADR-016 为准 = MCA 真算属 M1.5;(c) §9 "轴 4 机构集中度自动推理"与契约(axis_4 = non_market_actor)+ mechanisms-v1(N3 走人工)措辞冲突,以契约 + mechanisms-v1 为准。修复:mca-classifier.md §9已加「实现现状对齐」注(指明 MCA 真算实落 M1.5-C19e461e7、一次 LLM 调用产 7 轴 + 桶、非逐轴 fixture 毕业)+ 行内更正「轴 4 = 非市场参与者注入,按 §6/§7 走半人工标注、不在自动列」。
§3.2 s1 叙事-数字一致性(中游,消费 M5/M6/M7 信号做横切裁决,不产新事实层)
- 输入:叙事侧(main_answer 等推理)+ 数字侧(情景/数据引用)。
- 4 失败模式 + 1 二阶(可多选):mode-a 远期外推 / mode-b 源端数字缺失 / mode-c 叙事-数据脱节 / mode-d 计量口径不可比 / degraded-attention(无基本面锚二阶分支)。
- 8 字段输出契约:mode / coupling-direction / coupling-strength / evidence(numbers+narrative+degraded+metadata) / falsification / backtrigger / confidence —— 对应
NarrativeNumberConsistency。 - 可证伪条件抽取:
{quantitative-target, time-horizon, observable-source, falsification-threshold}四要素;self-consistency n=5 采样,保留出现 ≥3 次者。 - 收敛:反向触发回路硬上限 N=3;hash 一致或 confidence 变化 ≤5% 软收敛;矛盾抖动 → 矛盾归档多模态输出。
ConvergenceFlag(loop_count ≤ 3)已支持。(实现深度见 §7 岔路 B)。
§3.3 posterior(下游;kelly_cap 已退役 ADR-021)
kelly_cap 已退役(ADR-021,2026-06-04):owner 定调其无用且误导,已从代码(FinBayes
684d69d)与 schema 移除。本节保留 posterior 双峰真算规格,kelly_cap 相关步骤 / 下游消费 / 评测项一并失效。
- posterior 路径(M7.uq 选项 b):(i) LLM 产 ≥5 组独立情景(概率/收益率/触发条件三元组 JSON);(ii) 综合层 GMM/KDE k=2 聚类 + 尾宽估计 →
BimodalPosterior{mode_a, mode_b, weights, tail_width}。 kelly_cap已退役(ADR-021):原为综合层一次产出的"认知层凯利上界估计",现从 schema 与代码移除;posterior 双峰分布(mode_a / mode_b / tail_width)保留,本条不再实施。- task_type 约束(tasks-fields-mapping.yaml):posterior 仅
trade_decision_aidrequired,其余 6 类 optional,explanation excluded。
§4 实施顺序(建议切片)
- M1.5-C1 MCA 真算(上游先行:s1 backtrigger 读市场结构、posterior 受桶位影响都依赖它)。
- M1.5-C2 s1 子流程(先单轮 or 真回路见 §7 岔路 B)。
- M1.5-C3 posterior 真算 + reader 接线(
kelly_cap已退役 ADR-021)。 - 每切片:Codex 实施 + 主控独立 verify(pytest/ruff/边界/真值非占位断言);保持既有契约 validator 全绿。
§5 边界与不变量(硬,真算时绝不能碰)
- I-01' 认知不替执行(cognition-output-spec):硬线在"执行动作"——真算 posterior 绝不渲染成喊单/仓位指令/替用户决定。(
kelly_cap已退役 ADR-021。) - 不引入交易执行字段(order/place/execute/account);不读写密钥;认知层 system prompt 的边界骨架不破坏。
- 真值替换后,既有 schema validator(
_enforce_*系列)必须仍全绿;不放宽 M0 已锁的约束(原kelly_cap上界约束已随 ADR-021 退役移除)。
§6 验收(ADR-016 §4:认知净增量 > M0)
- L5 维度评测(D 维度,FinTecEval):s1/mca/posterior 真算后,核心场景的底线净增量须较 M0 可测提升(M0 这三块占位 → 认知深度增量≈0;M1.5 是兑现"认知内核净增量"的里程碑)。
- 真值非占位断言(L2):测试断言这三块输出随输入变化(不再是常量)、
fit_method ≠ "m0-deterministic-fill"、tag_version="mca-v1.0"。 - L8:owner 在核心决策场景上 vibe-check 认知是否真的"更懂"(区别于 M1 的状态 vibe-check)。
- 证据交 FinTecEval
runs/,对照 M0 R4/R5/R6 坐标看净增量。
§6.1 工程纪律:真算切片 LLM 输出抖动鲁棒性(强制,ADR-018)
R7 暴露:M1.5 三块真算离线 125 测试全绿,但真 gpt-5.5 上 21/21 零输出——根因是离线 fake 全返回规范 JSON,与真 LLM 输出分布有系统性偏差(枚举带注解 / list 字段返回单 object / optional 返回 object),且单字段解析失败击穿整条链。这是真算切片的系统性盲点,不是偶发 bug。 ADR-018 把以下定为真算切片强制验收项(done 充要):
- 抖动 fixture 强制:fake/stub 对每个真算字段注入≥1 真实抖动样本 + 断言归一化/coerce 后通过;仅规范 JSON 的离线全绿不算验收。
- 容错解析:归一化/类型 coerce,不假设规范形态。
- 单点不击穿 + 诚实降级:任一字段抖动不得零输出;降级须可识别为"未评估"(显式 tag/空值+置信0),不得伪装成真实结果常量。
- 异常纪律:内容解析失败抛领域异常纳入重试;裸
ValueError只留编程契约。 - 真 provider live 烟测 = 合并/送评前硬门:离线不可替代真实 LLM 验证。
§7 待 owner / 实施前决断的岔路(摆证据,未拍板)
- A · 总基调确认:§2"LLM+后处理、不引数值/贝叶斯引擎、v1 零外部数据"是文档强默认。请 owner 确认无异议(尤其 s1 mode-c"叙事-数据脱节"在零外部数据下会退化为"LLM 自评一致性",可接受度需 owner 认可)。
- B · s1 反向触发回路深度:真跑 N=3 迭代回路(多次 LLM 调用 + TaskGroup join,§5.4 P0-5 架构作用域待定)vs M1.5 先单轮 +
convergence_flag诚实标loop_count=1, converged=false-when-unstable,真回路留 C2.1。倾向后者(先单轮,防过度工程),待 owner 定。 - C · MCA 裁决规则层级:落 MP-2 简版排序(已签、§7 对齐)即可,还是必须等 DA-6 完整子系统裁决?倾向 MP-2 简版(DA-6 未立,不阻塞)。
- D · 切片粒度:§4 三切片 vs 合并(MCA+s1 一切片、posterior 一切片)。倾向三切片(MCA 上游需先稳)。
§8 关联
- 上位:ADR-016 M1.5 拆分、MP-3 kelly_cap 协议。
- 认知体系定义:mechanisms-v1(8 机制 + M7.uq + 收敛准则)、s1 叙事-数字一致性子流程。
- 契约:mca-buckets.yaml、tasks-fields-mapping.yaml、cognition-output-spec(I-01' 操作化)。
- 待补读(实施前):
subsystems/mca-classifier.md §7/§9、m0-walking-skeleton.md §3.5、milestone-field-evolution-matrix.md。