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

6.9 KiB
Raw Blame History

SSA-Pro 智能化演进路径评估Tool Calling vs Agentic Code Gen

评估目标: 对比「工具调用范式 (Tool Calling)」与「靶向动态代码生成范式 (Agentic Code Gen)」在临床科研场景下的真实用户价值差异。 核心结论: 对于 90% 的标准临床科研需求,工具调用范式能在“合规性”和“可复现性”上提供绝对保障,是 MVP 的不二之选。而引入“错误反馈与动态自愈”的代码生成范式,是应对极度复杂/脏数据的未来终极形态V2.0 目标)。

1. 概念对齐与场景设定

  • 路线 ATool Calling / 专家静态工具库模式):系统内置 100+ 经过严格验证的 R 脚本含宏脚本。LLM 负责“听懂人话、提取列名、排兵布阵(串联 5 个工具)、填入静态的 JSON 参数”R 引擎负责“傻瓜式执行”。代码本体绝对不允许被修改。
  • 路线 BAgentic Code Gen / 靶向动态自愈模式 - 研发团队的终极设想):系统把 100+ 脚本作为基座。LLM 负责“理解意图、串联工具”。如果直接运行报错,系统会将错误日志 (Error Log) 和数据片段反馈给 LLMLLM 像真实的程序员一样,针对性地修改这 100 个工具中的代码细节或参数(例如:自动补写一段剔除极端值的 R 代码),反复试错,直到顺利跑出结果。

2. 核心命题解答:用户的感知差异大吗?

结论:在“成功跑通”的情况下,用户感知差异不大;但在“遇到异常数据”时,路线 B 展现出极强的韧性,而路线 A 具有极高的合规安全性。

2.1 临床医生的“第一性原理”需求是什么?

医生使用统计软件(无论是 SPSS 还是未来的 AI 工具)的终极目的只有三个:

  1. 拿到经得起审稿人推敲的 P 值。
  2. 拿到可以直接贴进 SCI 论文的图表三线表、KM曲线、森林图
  3. 不用自己去记复杂的统计学前提条件(如方差齐性)。

2.2 场景模拟:“我的数据里有几个病人的血压值录入成了‘未知’,帮我做个 T 检验”

  • 如果是路线 A (组合工具)LLM 生成了 JSON。R 引擎调用固定脚本,读到“未知”这个字符串时,严格报错。系统提示用户:“您的数据存在非法字符,请清洗后再试”。(体验略有挫折,但绝对严谨)。
  • 如果是路线 B (靶向自愈代码)LLM 生成了代码并执行 -> R 引擎报错 Error: non-numeric argument -> LLM 拿到报错,立刻反应过来,动态修改代码,加上一句 df <- df[df$血压 != '未知', ] -> 再次执行 -> 成功出结果。体验极佳AI 自动擦屁股)。

【用户感知与隐患对比】

  • 体验上:路线 B 像一个真正的高级助理,帮医生把脏活累活干完了。
  • 隐患上:路线 B 悄悄剔除了样本,如果这不符合医学上的“意向性分析 (ITT) 原则”,擅自删数据会构成学术不端。而路线 A 强制报错,逼迫医生自己决定怎么处理缺失值,保住了学术红线。

3. 系统性对比矩阵 (Systematic Evaluation)

基于团队对路线 B 的深刻理解,我们从商业产品必须考虑的五个维度进行深度对比:

评估维度 路线 ATool Calling (当前计划) 路线 BAgentic Code Gen (团队终极愿景) 谁更满足医疗场景?
结果的权威性与合规度 极高。底层是统计算法专家千锤百炼的代码P 值绝对可靠。 中等。大模型动态改代码,可能为了“让程序不报错”而采用错误的统计妥协(如暴力删数据)。 🏆 路线 A 胜 (医疗是容错率为0的行业)
可复现性 (Reproducibility) 100%。昨天跑和今天跑,调用的工具和底层代码绝对一致。 较低。LLM 的纠错路径可能每次不同导致生成的修正代码不一致P 值微调。 🏆 路线 A 胜 (科研最讲究可复现)
异常自愈与韧性 (Self-healing) 较弱。遇到预设之外的脏数据,只能中断并报错给用户。 极强。LLM 能够根据 Error Log 靶向修改代码,自动克服各种奇怪的运行时错误。 🏆 路线 B 胜 (极其惊艳的技术能力)
审计与排错成本 极低。如果是由于工具 Bug明确指向 ST_T_TEST 的某一行。 极高。动态生成的孤品代码,报错后难以定位是 LLM 改错了还是数据有问题。 🏆 路线 A 胜
响应延迟 (Latency) 极快 (毫秒级推理 JSON + 单次运行即出结果)。 很慢 (如果陷入报错->修代码->再跑的循环,可能需要数十秒甚至数分钟)。 🏆 路线 A 胜

4. 路线 A 能满足大部分需求吗?

能,能满足 90% 以上的标准临床科研需求。

医学统计是一门高度标准化、八股文化的学科。全球顶尖的医学期刊(如 Lancet, JAMA对统计方法的报告都有严格的规范如 CONSORT 声明)。

  • 基线总是 Table 1。
  • 疗效对比总是 T 检验/卡方/非参数。
  • 风险因素总是 Logistic 回归或 Cox 回归。
  • 生存分析总是 KM 曲线加 Log-rank。

这 100+ 个工具,本质上就是医学统计学的“元素周期表”。只要 LLM 的“智商”足够高,能准确地在元素周期表里挑选出正确的元素并排列组合(比如:清洗 -> PSM匹配 -> Table1 -> Cox回归就足以应对绝大多数医生的日常科研。

5. 结论与团队沟通建议

不要觉得“做工具调用”就是低级。团队设想的“基于错误反馈靶向修改代码”是非常成熟且高级的 Agentic 思维,这绝对是数据科学 AI 的未来。

但真正的医疗产品价值,不仅在于底层技术有多“炫技”,更在于给用户的交付物有多“靠谱”。 ### 对团队的最终融合建议:

  1. MVP 阶段(现在):死磕 路线 A (Tool Calling)。把 100 个工具的入参、出参、护栏打磨到极致。让 Planner (LLM) 变成一个最聪明的“全科主任医师”,精准地给患者(数据)开出正确的“检查单(工具组合)”。
  2. V2.0 阶段(未来的路线 B 融合):采用**“受限的自愈生成”**。
    • 在数据清洗Data Wrangling环节:允许使用路线 B。当数据格式不对时让 LLM 根据 Error Log 动态生成 R 代码去清洗数据。
    • 在核心统计检验Core Stats环节:依然死守路线 A。绝对禁止 LLM 动态修改计算 P 值的核心函数逻辑。

您可以告诉团队:“排列组合 5 个高级工具,对用户来说魔法感已经拉满;而把你们设想的‘动态纠错修改’能力,克制地用在外围的数据清洗上,这是我们在【极客技术】与【医疗严谨性】之间找到的最完美的平衡点。”