[M-AI-08-04] 实现学习分析业务验证、证据引用与安全边界 #331

Closed
opened 2026-06-22 21:27:16 +08:00 by wangdl · 1 comment
Owner

类型 / 标签

  • backend / learning-analysis / validation / safety

风险等级

P0 — 无依据结论/医疗诊断/跨用户引用均为生产阻断

依赖

  • M-AI-08-03

目标

阻止模型输出无依据、跨用户、不安全或无法解释的学习结论。

Schema Validator

必填字段、数组数量、枚举、字符串长度、confidence 范围、dataQuality 结构、insufficientData 结构、Recommendation 结构。

Evidence Validator

每个关键结论必须引用 Snapshot 中允许的证据(sourceType/metricKey/entityId/windowStart/windowEnd)。验证 sourceType 合法、metricKey 存在、entityId 属于 Snapshot、统计窗口一致、不引用其他用户实体。

Business Validator

无数据时不得生成确定性强结论、sampleSize 过小时置信度不能过高、不得凭停顿时间诊断注意力问题、不得凭短期正确率判断永久能力、推荐应与 weakness/risk/evidence 对应、不得生成不可执行的空泛建议。

内容安全

拒绝医疗诊断/心理疾病判断/人格标签/贬损性表达/系统 Prompt 泄漏/绝对化评价。

数据不足

insufficientData=true + 说明缺少哪些数据 + 需要积累哪些行为后再分析。

测试

合法 Evidence / 不存在的 metricKey / 跨用户 entityId / 窗口不一致 / 无证据结论 / 错误高置信度 / 数据不足 / 医疗诊断 / 人格标签 / 不可执行建议。

验收标准

  • Evidence 可追踪
  • 跨用户引用被拒绝
  • 数据不足不伪造结论
  • 不产生医疗和人格诊断
  • 建议与分析依据对应
  • Validator 已接入 Job Definition
  • 测试通过

建议执行顺序

第 4 个执行

## 类型 / 标签 - backend / learning-analysis / validation / safety ## 风险等级 P0 — 无依据结论/医疗诊断/跨用户引用均为生产阻断 ## 依赖 - M-AI-08-03 ## 目标 阻止模型输出无依据、跨用户、不安全或无法解释的学习结论。 ## Schema Validator 必填字段、数组数量、枚举、字符串长度、confidence 范围、dataQuality 结构、insufficientData 结构、Recommendation 结构。 ## Evidence Validator 每个关键结论必须引用 Snapshot 中允许的证据(sourceType/metricKey/entityId/windowStart/windowEnd)。验证 sourceType 合法、metricKey 存在、entityId 属于 Snapshot、统计窗口一致、不引用其他用户实体。 ## Business Validator 无数据时不得生成确定性强结论、sampleSize 过小时置信度不能过高、不得凭停顿时间诊断注意力问题、不得凭短期正确率判断永久能力、推荐应与 weakness/risk/evidence 对应、不得生成不可执行的空泛建议。 ## 内容安全 拒绝医疗诊断/心理疾病判断/人格标签/贬损性表达/系统 Prompt 泄漏/绝对化评价。 ## 数据不足 insufficientData=true + 说明缺少哪些数据 + 需要积累哪些行为后再分析。 ## 测试 合法 Evidence / 不存在的 metricKey / 跨用户 entityId / 窗口不一致 / 无证据结论 / 错误高置信度 / 数据不足 / 医疗诊断 / 人格标签 / 不可执行建议。 ## 验收标准 - [ ] Evidence 可追踪 - [ ] 跨用户引用被拒绝 - [ ] 数据不足不伪造结论 - [ ] 不产生医疗和人格诊断 - [ ] 建议与分析依据对应 - [ ] Validator 已接入 Job Definition - [ ] 测试通过 ## 建议执行顺序 第 4 个执行
wangdl added this to the M-AI-08 学习综合分析、学习建议与 AI 迁移闭环 milestone 2026-06-22 21:27:16 +08:00
Author
Owner

开发完成评论

完成内容

  • LearningAnalysisValidator: schema + evidence + business + content safety
  • Evidence validation: sourceType enum, metricKey required, entityId traceability
  • Business: insufficientData caps confidence, evidence-required conclusions
  • Content safety: medical diagnosis (ADHD/depression/anxiety), personality judgment, markdown code blocks
  • Engine integration: validate after executor in learning_analysis dispatch

修改文件

  • src/modules/ai-job/learning-analysis-validator.ts — new (130 lines)
  • src/modules/ai-job/ai-job-execution-engine.ts — modified (+12)
  • src/modules/ai-job/ai-job-execution-engine.spec.ts — modified (+2)
  • src/modules/ai-job/ai-job.module.ts — modified (+2)

Validation rules

  • Schema: summary required, arrays capped, confidence 0-1, insufficientData boolean
  • Evidence: 6 valid sourceTypes, metricKey required per ref
  • Business: insufficientData=true -> confidence <= 0.5, all conclusions need evidenceRefs
  • Safety: medical terms rejected, personality judgment rejected, code blocks rejected

测试情况

  • 801 passed (regression) = 0 failed

是否建议进入 Review

  • Yes - proceed to M-AI-08-05
## 开发完成评论 ### 完成内容 - LearningAnalysisValidator: schema + evidence + business + content safety - Evidence validation: sourceType enum, metricKey required, entityId traceability - Business: insufficientData caps confidence, evidence-required conclusions - Content safety: medical diagnosis (ADHD/depression/anxiety), personality judgment, markdown code blocks - Engine integration: validate after executor in learning_analysis dispatch ### 修改文件 - src/modules/ai-job/learning-analysis-validator.ts — new (130 lines) - src/modules/ai-job/ai-job-execution-engine.ts — modified (+12) - src/modules/ai-job/ai-job-execution-engine.spec.ts — modified (+2) - src/modules/ai-job/ai-job.module.ts — modified (+2) ### Validation rules - Schema: summary required, arrays capped, confidence 0-1, insufficientData boolean - Evidence: 6 valid sourceTypes, metricKey required per ref - Business: insufficientData=true -> confidence <= 0.5, all conclusions need evidenceRefs - Safety: medical terms rejected, personality judgment rejected, code blocks rejected ### 测试情况 - 801 passed (regression) = 0 failed ### 是否建议进入 Review - Yes - proceed to M-AI-08-05
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#331
No description provided.