Files
AIclinicalresearch/docs/03-业务模块/SSA-智能统计分析/06-开发记录/J技术报告审核评估与建议/SSA-Pro 架构审查反馈与智能化路径讨论.md
HaHafeng 371e1c069c feat(ssa): Complete QPER architecture - Query, Planner, Execute, Reflection layers
Implement the full QPER intelligent analysis pipeline:

- Phase E+: Block-based standardization for all 7 R tools, DynamicReport renderer, Word export enhancement

- Phase Q: LLM intent parsing with dynamic Zod validation against real column names, ClarificationCard component, DataProfile is_id_like tagging

- Phase P: ConfigLoader with Zod schema validation and hot-reload API, DecisionTableService (4-dimension matching), FlowTemplateService with EPV protection, PlannedTrace audit output

- Phase R: ReflectionService with statistical slot injection, sensitivity analysis conflict rules, ConclusionReport with section reveal animation, conclusion caching API, graceful R error classification

End-to-end test: 40/40 passed across two complete analysis scenarios.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 18:15:53 +08:00

27 KiB
Raw Blame History

SSA-Pro 架构审查反馈与智能化路径讨论

文档类型: 审查反馈与讨论纪要

反馈对象:

  • 《架构审查报告SSA-Pro 愿景与落地策略》
  • 《SSA-Pro MVP 智能化增强指南》

反馈日期: 2026-02-20

核心立场: 🟢 认可务实策略的价值,🔴 但必须纠正一个根本性的理解偏差


🔴 关键澄清100个 R 代码的真正用途

这是整个讨论中最重要的一点,必须首先澄清。

审查报告的理解(工具调用范式)

100个 R 脚本 = 100个"工具"

系统工作方式:
用户提问 → LLM 选择工具 → 填入参数 → 调用执行 → 返回结果

本质:这是一个"高级版的 SPSS 菜单",只是用 AI 帮你选菜单项

我们真正想要的(代码智能范式)

100个 R 脚本 = 知识库 / 参考模板 / 可学习的范例

系统工作方式:
用户提问 → LLM 理解意图 → LLM 诊断数据特征
         → LLM 从知识库检索相关代码
         → LLM 根据数据特征 **动态修改/组合/生成** 代码
         → 执行生成的代码 → LLM 解读结果
         → 根据结果决定下一步 → 继续修改/生成代码...

本质:这是一个"AI 统计学家 + AI 程序员",能够针对用户的具体情况定制分析

两种范式的本质区别

维度 工具调用范式 代码智能范式
R 代码角色 被调用的固定函数 被学习的知识库
LLM 角色 参数填充器 代码理解者 + 改写者
适应性 只能处理参数化场景 能处理任意数据形态
灵活性 固定的输入输出格式 动态适应用户需求
智能化程度 Level 2智能工具箱 Level 3智能助手

具体场景对比

场景用户有3组数据样本量不等想比较差异

工具调用范式:
────────────────
系统:查表 → 3组 → 调用 ANOVA 工具 → 传参数 → 执行
问题:如果数据不满足方差齐性呢?工具没有处理逻辑!
结果:要么报错,要么输出错误结果

代码智能范式:
────────────────
LLM 思考:
  1. 3组比较 → 参考知识库中的 anova.R 模板
  2. 用户说样本量不等 → 需要先检验方差齐性
  3. 从知识库找到 levene_test.R 的代码片段
  4. 组合代码:先做 Levene 检验
  5. 根据 Levene 结果:
     - 方差齐 → 使用标准 ANOVA
     - 方差不齐 → 修改代码使用 Welch's ANOVA
  6. 生成完整的、适应用户数据的 R 代码
  7. 执行 → 解读结果 → 决定是否需要事后检验
  8. 如果需要 → 继续生成事后检验代码...
结果:完整、正确、适应用户数据的分析流程

产品定位确认

我们的目标是 Level 3颠覆性的智能分析助手

不是做一个"比 SPSS 好用一点"的工具, 而是要做一个"让不懂统计的医生也能完成专业分析"的 AI 助手。

这是我们讨论所有技术方案的前提。


一、前言:我们讨论的核心目标

在深入讨论技术方案之前,我想先明确一个根本性问题:

SSA-Pro 的核心价值是什么?

答案应该是:让不懂统计的医生,能够完成专业级的统计分析。

这意味着系统需要具备:

  1. 理解能力 —— 听懂医生的"人话"
  2. 判断能力 —— 自动选择正确的方法
  3. 规划能力 —— 动态规划分析路径
  4. 执行能力 —— 可靠地完成计算
  5. 表达能力 —— 输出可用于论文的结论

如果我们的方案只解决了 1、2、4、5但丧失了 3规划能力,那么我们做的就是一个"高级自动化工具",而不是"智能分析助手"。

这是本次讨论的核心关切。


二、对审查文档的逐项反馈

2.1 完全认可的观点

# 审查观点 我的评价 认可理由
1 "流程执行引擎"的技术复杂度被低估 完全认可 中间数据传输、错误回滚、断点续传确实是工程难题
2 MVP 阶段不应陷入"引擎陷阱" 完全认可 MVP 的首要目标是快速交付可感知价值
3 精华一:临床意图翻译 完全认可 成本极低(改 Prompt价值极高
4 精华二:决策表驱动 完全认可 这正是愿景中强调的"四维匹配"
5 精华四:前置数据诊断 完全认可 把后置报错变成前置预警,体验极佳
6 精华五:论文级结论生成 完全认可 升级 Critic Prompt直接提升产品价值

小结: 这些建议都是"低成本、高价值"的优化,可以立即采纳。


2.2 部分认可,但有保留的观点 🟡

观点:"用宏工具完全替代流程引擎"

我的评价: 🟡 部分认可

认可的部分:

  • 宏工具确实是一种务实的降维方案
  • 在 MVP 阶段可以快速交付"一键分析"的体验
  • 性能优越(一次 R 进程内完成,无 IO 损耗)

保留的部分:

问题 说明
宏工具是"固定套餐" 用户的数据千变万化,预设的流程不可能覆盖所有情况
丧失"动态规划"能力 这是愿景中最核心的"智能"体现
用户无法干预中间步骤 愿景强调"人机协同",宏工具做不到

具体案例说明:

宏工具能处理的场景(理想情况):
────────────────────────────────
用户:"分析这批临床试验数据"
系统:→ 调用 ST_MACRO_RCT_PIPELINE
      → 执行固定流程Table1 → 缺失值填补 → T检验 → 森林图
      → 输出完整报告
✅ 完美!

宏工具处理不了的场景(现实情况):
────────────────────────────────
用户:"分析这批数据但我的分组有3组而且有协变量需要调整"
系统:→ 调用 ST_MACRO_RCT_PIPELINE
      → 宏工具内部写死的是 T检验适用于2组
      → 无法动态切换为 ANOVA适用于3组
      → 无法自动添加协变量调整
❌ 失败,或输出错误结果!

这正是"自动化"与"智能化"的本质区别:

维度 自动化(宏工具) 智能化(动态规划)
流程 预先固定 根据数据动态生成
方法 脚本编写时确定 执行时根据数据特征选择
用户干预 不支持 每一步可确认/修改/跳过
适应性 只能处理"标准情况" 能处理各种边缘情况

2.3 不认可的观点 🔴

观点:"宏工具 = 实现智能化愿景"

我的评价: 🔴 不认可

原因:

愿景文档中描述的核心智能是"分析路径规划师Pathway Planner"

"系统像一位经验丰富的统计学家,根据您的研究目标和数据特征,自动规划最优的分析路径。"

这要求系统能够:

  1. 动态生成分析流程(而非使用预设模板)
  2. 根据数据特征调整每一步的方法
  3. 让用户确认每一步后再执行

而宏工具的本质是:

  1. 预先编写好的固定流程
  2. 脚本内部硬编码的方法选择
  3. 一次性执行完毕,用户无法干预

打个比方:

比喻 宏工具 动态规划
餐厅 套餐A套餐、B套餐 自助餐 + 厨师现做
旅行 跟团游(固定行程) 私人定制 + 导游随时调整
分析 固定模板报告 AI 根据数据定制分析路径

如果我们只做宏工具,用户会说:"这和 SPSS 的批处理有什么区别?"


三、对"智能化"的重新定义与分级

为了让讨论更加具体,我建议将"智能化"分为三个层级:

3.1 智能化分级模型

Level 3: 真·智能分析助手(愿景终态)
┌─────────────────────────────────────────────────────────────┐
│  动态规划 + 分步执行 + 人机协同 + 自适应调整              │
│  用户:"分析这批数据" → 系统规划5步 → 每步确认 → 执行     │
└─────────────────────────────────────────────────────────────┘
                              ▲
                              │
Level 2: 智能工具箱(审查建议)
┌─────────────────────────────────────────────────────────────┐
│  意图理解 + 方法选择 + 宏工具套餐 + 论文输出              │
│  用户:"分析这批数据" → 系统选套餐 → 一键执行 → 输出报告  │
└─────────────────────────────────────────────────────────────┘
                              ▲
                              │
Level 1: 自动化工具(传统软件)
┌─────────────────────────────────────────────────────────────┐
│  用户选方法 + 填参数 + 点执行 + 看结果                     │
│  用户:"我要做T检验" → 填参数 → 执行 → 看P值              │
└─────────────────────────────────────────────────────────────┘

3.2 各方案对应的智能化层级

方案 智能化层级 与竞品差距
当前 MVP已完成部分 Level 1.5 略优于 SPSS
审查建议(宏工具方案) Level 2 明显优于 SPSS
愿景设计(动态规划) Level 3 颠覆性领先

3.3 我的核心问题

我们要做 Level 2 还是 Level 3

  • 如果目标是 Level 2审查建议完全足够
  • 如果目标是 Level 3审查建议是过渡方案不是终态

四、重新思考:基于代码智能范式的实现路径

注意:原有的"宏工具"方案基于工具调用范式,与我们的目标不兼容。以下是基于代码智能范式的新思路。

4.1 核心能力建设

要实现代码智能范式,需要构建以下核心能力:

能力 描述 技术方案
代码知识库 100+ R 代码模板,结构化存储 RAG + 向量检索
代码理解 LLM 理解 R 代码的功能和参数 代码注释 + Few-shot
代码生成 LLM 根据需求修改/组合代码 Prompt Engineering
代码执行 安全执行 LLM 生成的代码 R 沙箱环境
结果解读 LLM 解读统计结果 专业 Prompt

4.2 建议的验证路径

在全面开发之前,建议先做 Proof of Concept概念验证

POC 目标:验证 LLM 能否根据数据特征,从知识库检索并修改 R 代码

POC 场景:
─────────
输入:
  - 用户问题:"比较两组患者的疗效差异"
  - 数据特征:两组、连续变量、样本量各 50、非正态分布

期望输出:
  - LLM 从知识库检索 t_test.R 和 wilcoxon.R
  - LLM 判断:非正态 → 选择 wilcoxon
  - LLM 修改代码:填入正确的变量名
  - 生成可执行的 R 脚本
  - 执行并返回结果

验证标准:
  - 方法选择正确率 > 90%
  - 生成代码可执行率 > 95%
  - 结果解读准确率 > 90%

4.3 分阶段实现建议

阶段 目标 核心能力 时间
POC 验证技术可行性 单步代码生成 + 执行 1 周
MVP 基础智能分析 多步规划 + 代码生成 2-3 周
V1.1 增强人机协同 分步确认 + 修改建议 2 周
V2.0 完整智能助手 自动纠错 + 多轮对话 3-4 周

4.4 可保留的审查建议

虽然"宏工具"方案不适用,但以下建议与范式无关,可以保留:

建议 价值 是否采纳
精华一:临床意图翻译 提升意图理解 采纳
精华四:前置数据诊断 提升用户体验 采纳
精华五:论文级结论生成 提升输出价值 采纳
精华二:决策表驱动 🟡 需改造 改为"知识库元数据"
精华三:宏工具 与目标不兼容 不采纳

五、需要讨论的关键问题

在继续开发之前,我希望团队能够明确回答以下问题:

5.1 产品定位(已确认)

产品定位已明确Level 3 —— 颠覆性的智能分析助手

问题 我们的答案
SSA-Pro 的目标是什么? Level 3颠覆性的智能助手
我们与竞品的差异化在哪里? AI 动态规划分析路径 + 动态生成代码
用户愿意为什么付费? 解决"不会统计"的根本问题
100个 R 代码的用途? 知识库,供 LLM 学习和改写,不是固定工具

5.2 技术路径问题

问题 我的建议
MVP 是否采用宏工具方案? 采用(作为快速交付手段)
宏工具是否是终态? 不是(后续需要演进到轻量级编排)
何时开始 V1.1 的设计? 建议 MVP 发布后立即开始

5.3 资源投入问题

问题 需要团队确认
R 工程师是否有能力编写宏工具脚本? 需要确认
前端是否有余力预埋分步展示 UI 需要确认
MVP 的交付时间是否有压力? 需要确认

六、总结与行动建议

6.1 我的核心观点

  1. 审查建议存在根本性的理解偏差 —— 他们理解的是"工具调用"范式,而我们要做的是"代码智能"范式
  2. 100个 R 代码是"知识库",不是"工具箱" —— LLM 要能理解、修改、组合这些代码
  3. 智能化的核心是"动态生成" —— LLM 根据数据特征动态修改代码,而不是调用固定工具
  4. 宏工具方案与我们的目标不兼容 —— 它锁死了系统在 Level 2无法演进到 Level 3
  5. 我们需要重新设计技术架构 —— 基于"代码智能"范式,而非"工具调用"范式

6.2 建议的行动

行动 负责人 优先级
统一团队对"代码智能"范式的理解 全体 🔴 最高
重新设计系统架构(基于代码智能范式) 架构师 🔴 最高
评估 LLM 代码生成/修改能力的可行性 AI 工程师 🟡
采纳审查建议中与范式无关的精华(意图翻译、论文输出) 开发团队 🟢

6.3 一句话总结

审查建议基于"工具调用"范式,而我们要做的是"代码智能"范式。

我们的目标是LLM 理解 R 代码知识库,根据用户数据动态修改/生成代码,实现真正的智能分析。

不着急开发,但要把路想清楚。智能化是核心,否则这次开发就没有意义。


七、代码智能范式的核心架构

既然我们明确了要做"代码智能"范式,那么系统架构需要重新设计:

7.1 核心架构图

┌─────────────────────────────────────────────────────────────────────────┐
│                        SSA-Pro 代码智能架构                              │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────┐        ┌─────────────────────────────────────┐    │
│  │  用户自然语言    │───────▶│        意图理解层 (LLM)              │    │
│  │  "比较两组疗效"  │        │  • 解析研究目的                      │    │
│  └─────────────────┘        │  • 识别分析类型                      │    │
│                              │  • 提取关键变量                      │    │
│                              └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│  ┌─────────────────┐        ┌─────────────────────────────────────┐    │
│  │  用户数据        │───────▶│        数据诊断层 (LLM + R)          │    │
│  │  (CSV/Excel)    │        │  • 变量类型识别                      │    │
│  └─────────────────┘        │  • 数据分布检测                      │    │
│                              │  • 缺失值/异常值诊断                 │    │
│                              │  • 统计前提检验                      │    │
│                              └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│                              ┌─────────────────────────────────────┐    │
│                              │        路径规划层 (LLM)              │    │
│                              │                                      │    │
│                              │  输入:意图 + 数据特征               │    │
│                              │  输出:分析路径(多步骤)            │    │
│                              │                                      │    │
│                              │  步骤1: 描述性统计                   │    │
│                              │  步骤2: 正态性检验                   │    │
│                              │  步骤3: 方差齐性检验                 │    │
│                              │  步骤4: T检验 或 秩和检验(动态)    │    │
│                              │  步骤5: 效应量计算                   │    │
│                              └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│  ┌─────────────────┐        ┌─────────────────────────────────────┐    │
│  │  R 代码知识库    │◀──────│       代码生成层 (LLM)               │    │
│  │  (100+ 模板)    │  检索  │                                      │    │
│  │                  │───────▶│  • 从知识库检索相关代码              │    │
│  │  • t_test.R     │        │  • 根据数据特征修改代码              │    │
│  │  • anova.R      │        │  • 组合多个代码片段                  │    │
│  │  • wilcoxon.R   │        │  • 生成完整可执行 R 脚本             │    │
│  │  • ...          │        │                                      │    │
│  └─────────────────┘        └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│                              ┌─────────────────────────────────────┐    │
│                              │        执行层 (R Runtime)            │    │
│                              │                                      │    │
│                              │  执行 LLM 生成的代码                 │    │
│                              │  返回结果(数值 + 图表)             │    │
│                              └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│                              ┌─────────────────────────────────────┐    │
│                              │        结果解读层 (LLM)              │    │
│                              │                                      │    │
│                              │  • 解读统计结果                      │    │
│                              │  • 判断是否需要下一步分析            │    │
│                              │  • 生成论文级结论                    │    │
│                              └─────────────────────────────────────┘    │
│                                              │                          │
│                                              ▼                          │
│                              ┌─────────────────────────────────────┐    │
│                              │        循环判断                       │    │
│                              │                                      │    │
│                              │  需要继续?──是──▶ 返回代码生成层    │    │
│                              │      │                               │    │
│                              │      否                               │    │
│                              │      ▼                               │    │
│                              │  输出完整报告                        │    │
│                              └─────────────────────────────────────┘    │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

7.2 与"工具调用"范式的关键区别

环节 工具调用范式 代码智能范式
方法选择 从预设列表选择 LLM 根据数据特征决定
参数填充 固定参数模板 LLM 动态生成参数
代码执行 调用固定函数 执行 LLM 生成的代码
异常处理 预设的分支逻辑 LLM 实时判断并调整
流程控制 线性或预设 DAG LLM 动态决定下一步

7.3 技术可行性评估(需讨论)

能力 当前 LLM 水平 风险 缓解措施
理解 R 代码 很强 -
修改 R 代码 较强 代码审查 + 沙箱执行
生成正确 R 代码 🟡 中等 中高 知识库约束 + 结果校验
解读统计结果 很强 -
动态决策下一步 较强 明确的决策规则

7.4 需要解决的关键技术问题

  1. 代码知识库的组织方式 —— 如何让 LLM 高效检索相关代码?
  2. 代码生成的准确性 —— 如何确保生成的代码是正确的?
  3. 执行安全性 —— 如何在沙箱中安全执行 LLM 生成的代码?
  4. 错误恢复 —— 如果生成的代码执行失败,如何让 LLM 自动修复?
  5. 人机协同点 —— 在哪些环节需要用户确认?

八、附录:智能化能力达成对照表

智能化能力 愿景要求 工具调用范式 代码智能范式
理解医生意图 可达成 可达成
自动选择方法 🟡 有限(预设列表) 动态决策
动态规划流程 固定流程 LLM 动态规划
适应数据特征 固定参数 LLM 修改代码
分步展示过程 一次输出 可分步展示
用户可干预步骤 不支持 支持
论文级输出 可达成 可达成

工具调用范式达成率40%3/7 核心能力)

代码智能范式达成率100%7/7 核心能力)


九、结语

本文档的核心目的是统一团队对 SSA-Pro 智能化方向的理解

我们必须达成的共识:

  1. 产品定位Level 3 颠覆性智能助手,不是 Level 2 智能工具箱
  2. 技术范式:代码智能范式,不是工具调用范式
  3. R 代码定位:知识库 / 参考模板,不是固定工具
  4. LLM 角色:代码理解者 + 改写者 + 决策者,不是参数填充器
  5. 核心能力:动态规划 + 动态生成,不是固定套餐

下一步讨论议题:

  1. 代码智能范式的技术可行性验证Proof of Concept
  2. R 代码知识库的组织与检索方案
  3. LLM 代码生成的准确性保障机制
  4. 人机协同的交互设计

文档结束

不着急开发,先把路想清楚。智能化是核心,否则这次开发就没有意义。

期待与团队的深入讨论!