ADR-008 战略层与架构层关于结构化认知输出的对齐
决策摘要
战略白皮书第五节"用户产品"段直接承接架构文档第 4 节 StructuredCognitionResult 的定义——10 个认知要素 + 7 任务类型动态组合机制 + "画像不裁剪事实空间"不变量。
战略层声明产品契约(10 要素 + 动态组合机制 + 战略不变量),不展开各类任务的具体要素清单(那是 L2 产品定义层的事)。
同时提议在 governance/workstreams/finbayes-arch-rewrite/ 工作流补充一份独立 ADR 专门定义 StructuredCognitionResult 作为架构层契约(架构 §4 是核心设计但没有独立 ADR,是 governance gap)。
上下文
用户深度反馈指出,第五节"用户产品"段薄弱、不足以指导下游 L2 产品定义文档,特别是缺失结构化认知输出——这恰恰是 FinBayes 与喊单产品、与通用 AI 的输出形态根本区别,是工程化落地版本的核心基础之一。
本工作流期间的架构文档调研发现:
- 架构文档第 4 节定义了 StructuredCognitionResult 作为核心输出对象
- 包含 10 个认知要素:结论 / 倾向(条件化)、依据、多视角、反方证据、成立条件、失效条件、不确定性 / 信息缺口、来源与时间戳、可继续追问项、历史判断链接
- 按 7 类任务类型(解释 / 分析 / 比较 / 复盘 / 风险识别 / 交易准备 / 决策辅助)动态组合相应要素,不固化字段表
- L2 产品定义 §7 表 7 已完整承接(产品定义 100% 与架构对齐)
- L1 战略白皮书(v2 §5)未明确承接——只用产品语言"想清楚 / 看全面 / 看本质",没出现"StructuredCognitionResult"术语或具体要素清单
- 架构 §13 强调战略不变量"画像不裁剪事实空间"在输出形态层的落地:反方证据、关键风险、失效条件按事实空间生成,不因用户偏好被省略
- 架构文档没有专门的 StructuredCognitionResult 独立 ADR——相关决策分散在 ADR-004(任务识别策略)、ADR-008 架构层(LLM Provider 接口抽象)、ADR-010(输出端凭证过滤)
本 ADR 解决两件事:
- 让战略白皮书第五节用户产品段与架构 §4 + 产品定义 §7 在结构化认知输出层面对齐
- 提议在架构层补充独立 ADR 把 StructuredCognitionResult 作为架构层契约正式锁定
决策详情
战略白皮书第五节用户产品段的承接内容
战略层应承接以下三件事,不多也不少:
1. 10 个认知要素的完整列表(直接列出):
| # | 要素 | 含义 |
|---|---|---|
| 1 | 结论 / 倾向(条件化) | 不是封闭的开多 / 开空型答案,而是带成立条件的判断 |
| 2 | 依据 | 支撑结论的事实材料、数据、逻辑链 |
| 3 | 多视角 | 对同一问题的不同合理观点 |
| 4 | 反方证据 | 与结论相反方向的证据和观点 |
| 5 | 成立条件 | 结论在什么前提下成立 |
| 6 | 失效条件 | 结论在什么市场变化下不再成立 |
| 7 | 不确定性 / 信息缺口 | 现有信息不足以回答的部分 |
| 8 | 来源与时间戳 | 每条信息的来源和时效性 |
| 9 | 可继续追问项 | 用户可以基于本次输出继续深入的方向 |
| 10 | 历史判断链接 | 与用户过往判断的关联(如果有) |
2. 动态组合机制的说明:
战略层说清楚"这 10 个要素不是固化字段表——FinBayes 按用户提问的任务类型动态组合相应要素",引用 7 类任务(解释 / 分析 / 比较 / 复盘 / 风险识别 / 交易准备 / 决策辅助)作为说明,不展开任务-要素映射表——映射表是 L2 产品定义的事。
3. 战略不变量"画像不裁剪事实空间"的落地:
战略层显式声明:反方证据、关键风险、失效条件按事实空间生成,不因用户偏好被省略。即便用户长期表现为某种倾向,FinBayes 的输出仍保留完整的反方和失效条件。这条不变量在第九节用户主权与不变量中完整展开。
战略层与下位的边界
| 层级 | 承担的内容 |
|---|---|
| L1 战略层(本白皮书第五节) | 10 要素列表 + 动态组合机制声明 + 战略不变量"画像不裁剪事实空间" + 与其他工具输出形态的根本区别 |
| L2 产品定义层 | 7 任务类型与 10 要素的具体映射表(产品定义 §7 表 7 已完整覆盖) |
| L3 架构层(架构 §4 / §6 / §13) | StructuredCognitionResult 对象的工程定义、要素的具体 Schema、任务识别的工程实现、不变量在工程层的落地机制 |
战略层不展开:任务-要素映射的具体表格、要素的 Schema 定义、工程实现细节。
提议在架构层补独立 ADR
架构 §4 是 FinBayes 的核心输出设计,但没有独立 ADR 锁定为架构层契约——这是 governance gap。本 ADR 提议:
- 在
governance/workstreams/finbayes-arch-rewrite/decisions/下补充一份 ADR(建议编号 ADR-FinBayes-Arch-XXX,具体编号由架构工作流分配) - 题目:StructuredCognitionResult 作为 FinBayes 架构层核心输出契约
- 内容:把架构 §4 的设计正式锁定为架构层 ADR(10 要素定义、7 任务类型映射机制、动态组合原则、与战略不变量"画像不裁剪事实空间"的关系)
- 承接方:架构文档工作流维护者
本 ADR 不强制架构层立即补 ADR,但作为悬而未决问题登记到本工作流的 status.md(详见悬而未决问题)。
决策理由
为什么战略层必须承接结构化认知输出
- 结构化认知输出是 FinBayes 与喊单产品、通用 AI 的输出形态根本区别——这是核心差异化(ADR-006 / ADR-007 + 第四节核心优势已论证),不是工程细节
- 战略层不能与下位脱节——v2 战略白皮书与架构 §4 / 产品定义 §7 在此点的脱节是 L1 ↔ L2 / L3 governance 失衡
- L2 产品定义层将基于战略层重组:用户已明确接受 L2 大改,战略层必须给 L2 清晰的契约依据
为什么列出 10 要素而不省略
- v2 战略白皮书省略具体要素(用"想清楚 / 看全面 / 看本质"代替),结果 L2 产品定义在工程化时只能反向从架构猜——这是 governance 风险
- 列出 10 要素让 L2 产品定义有清晰的承接依据,下游不需要从架构反向解读战略层意图
为什么不展开任务-要素映射
- 任务-要素映射是 L2 产品定义层的具体契约(产品定义 §7 表 7 已完整覆盖)
- 战略层展开映射会侵蚀 L2 的层级职责,且会让战略白皮书膨胀失焦
- 战略层只需声明"动态组合机制"作为原则即可
为什么强调"画像不裁剪事实空间"
- 这是战略不变量在输出形态层的硬约束(架构 §13 已强调)
- 若战略层不显式声明,下游可能在工程化时被产品体验诉求(个性化、贴合用户偏好)拉走,损害不变量
- 战略层声明给下游一个不可妥协的产品契约
与其他 ADR 的关系
- 补充 ADR-003 方法论组合:结构化认知输出是 Strategy Cascade Core Capabilities 层的核心契约
- 补充 ADR-004 十节目录骨架:第五节用户产品段按本 ADR 大幅扩展
- 联动 ADR-006 用户定义与价值立场:结构化认知输出是"FinBayes 选择长期路径"价值选择的产品形态落实
- 联动 ADR-007 金融认知体系:结构化认知输出是认知体系在用户产品层的具体表达形态
应用纪律(第五节用户产品段扩展时的检查清单)
- 列出 10 个认知要素的完整表
- 说明动态组合机制 + 引用 7 类任务作为说明(不展开映射表)
- 显式写"画像不裁剪事实空间"作为战略不变量
- 写"具体任务-要素映射由 L2 产品定义层承接"作为边界声明
- 写"具体 Schema 和工程实现由架构文档承接"作为边界声明
- 与喊单产品、通用 AI 的输出形态对照(呼应第四节)
后果
正面
- 战略白皮书与架构 §4 + 产品定义 §7 在结构化认知输出层面对齐
- L1 ↔ L2 / L3 跨层级 governance 完整
- L2 产品定义有清晰的战略层契约依据
- 战略不变量"画像不裁剪事实空间"在战略层显式声明,给下游硬约束
负面
- 第五节用户产品段大幅扩展(约 30 行 → 约 140 行)
- 架构层补独立 ADR 是本 ADR 的衍生工作,需要 finbayes-arch-rewrite 工作流承接
- 10 要素 + 7 任务类型作为战略层契约后,未来如需调整需要走 ADR 升级流程
中性
- L2 产品定义现状(已 100% 对齐架构)保持不变,本 ADR 不引发 L2 修订
- 架构 §4 的核心设计保持不变,本 ADR 只是反向把战略层补齐到架构层水平
后续动作
- 第五节用户产品段大幅扩展,应用本 ADR 检查清单
- 在 status.md 悬而未决问题中登记"架构层补独立 ADR for StructuredCognitionResult"
- 在第九节用户主权与不变量起草时呼应"画像不裁剪事实空间"
- 提议本 workstream 收尾时把 ADR 升级提议(架构层补独立 ADR)作为对架构工作流的 follow-up 输出