第二十四篇 Self-Maintenance
第74章 Diagnosis
第72章 Detection 解决的是:
有没有异常?
第73章 Risk 与 Conflict 解决的是:
可能有什么风险?
有没有冲突?
哪个问题应该优先处理?
第74章 Diagnosis 则进一步解决:
问题在哪里?
问题是什么?
为什么发生?
影响了什么?
依赖链中哪一个环节出现问题?
因此,自我维护过程进一步形成:
Detection
↓
Risk / Conflict
↓
Diagnosis
↓
Decision
↓
Repair
↓
Verification
Diagnosis 不直接执行修复,而是为后面的 Repair 提供问题定位和原因依据。
1. Diagnosis
1.1 Diagnosis 定义
Diagnosis(诊断)是 SAI/ICAI 根据 Detection Result、Risk、Conflict、状态、依赖、历史记录、行为结果和相关事实,对异常进行定位、分析原因、判断影响范围并形成结构化诊断结果的机制。
核心关系:
DetectionResult
↓
Diagnosis
↓
Problem
↓
Cause
↓
Impact
↓
DiagnosisResult
例如:
Detection:
Motor_A.temperature = 95℃
状态 = ABNORMAL
Diagnosis 不应该直接写:
Motor_A 已损坏
因为检测结果只能证明:
temperature > allowed_max
诊断需要继续检查:
温度异常
↓
读取 Motor_A 状态
↓
读取运行时间
↓
读取负载
↓
检查 CoolingSystem
↓
检查 Sensor
↓
检查历史经验
↓
形成原因判断
最终可能得到:
Diagnosis:
CoolingSystem unavailable
或者:
Diagnosis:
High load caused temperature increase
因此:
Detection = 发现
Diagnosis = 定位与原因分析
2. 问题定位
Diagnosis 的第一步是Problem Localization(问题定位)。
Detection 可能只发现:
System = ABNORMAL
但这个结果范围太大。
Diagnosis 需要逐层缩小范围:
System
↓
Module
↓
Object
↓
Property
↓
State
↓
Behavior
↓
Action
↓
具体问题
例如:
System
↓
Device Module
↓
Motor_A
↓
Temperature
↓
95℃
最终定位:
Problem Target = Motor_A.temperature
2.1 问题定位结构
ProblemLocation
{
system
module
object
property
state
behavior
action
location
}
例如:
ProblemLocation
{
system: "FactorySystem",
module: "DeviceModule",
object: "Motor_A",
property: "temperature",
state: "ABNORMAL",
behavior: "RUNNING",
action: "ROTATE"
}
2.2 定位过程
DetectionResult
↓
Target Identification
↓
Module Check
↓
Object Check
↓
Property Check
↓
State Check
↓
Behavior Check
↓
Problem Location
定位的目标是:
从“系统异常”
缩小到
“哪个对象”
再缩小到
“哪个属性/状态/行为”
2.3 问题定位不能等于原因
例如:
Motor_A.temperature = 95℃
可以定位:
Problem:
Motor_A.temperature abnormal
但是:
Cause:
Cooling failure
还不能仅凭这一条信息确认。
因此:
Problem Location ≠ Root Cause
3. 原因分析
完成问题定位后,Diagnosis 进入 Cause Analysis(原因分析)。
核心问题:
为什么出现这个问题?
3.1 原因来源
原因分析可以使用:
Fact
State
Rule
Relation
Behavior
Action
Feedback
Experience
Memory
Dependency
History
形成:
Problem
↓
Related Information
↓
Comparison
↓
Cause Candidates
↓
Cause Evaluation
↓
Possible Cause
3.2 原因候选
例如:
Problem:
Motor_A.temperature = 95℃
可能存在:
Cause_A:
Motor load too high
Cause_B:
Cooling system unavailable
Cause_C:
Temperature sensor error
Cause_D:
Motor running time too long
Diagnosis 不应该立即选择一个原因。
先形成:
CauseCandidate
{
id
problem
cause
evidence
relation
score
state
}
例如:
CauseCandidate
{
id: "CC001",
problem: "Motor_A.temperature",
cause: "CoolingSystem unavailable",
evidence: [
"CoolingSystem.state = ERROR",
"Motor_A.temperature > 80"
],
score: 0.90,
state: "SUPPORTED"
}
3.3 原因与结果
需要区分:
Cause → Problem
例如:
CoolingSystem ERROR
↓
Cooling unavailable
↓
Motor temperature increases
↓
Motor temperature = 95℃
诊断就是在建立这种因果路径。
Cause
↓
Intermediate State
↓
Problem
3.4 根因与直接原因
可以区分:
Direct Cause
Root Cause
例如:
Sensor_A ERROR
↓
Temperature value abnormal
↓
Detection reports overheating
直接原因可能是:
Temperature value abnormal
更深层原因可能是:
Sensor_A communication failure
所以 Diagnosis 可以继续向依赖链追踪:
Problem
↓
Direct Cause
↓
Related Cause
↓
Root Cause Candidate
4. 状态分析
Diagnosis 必须分析问题发生前后的状态。
因为很多异常并不是孤立出现的,而是由状态变化产生。
基本模型:
Previous State
↓
State Change
↓
Current State
↓
Abnormal State
例如:
Motor_A
READY
↓
RUNNING
↓
temperature = 65℃
↓
temperature = 95℃
↓
ERROR
Diagnosis 可以发现:
正常状态
→ 高温状态
→ 错误状态
4.1 状态分析结构
StateAnalysis
{
object
previous_state
current_state
expected_state
state_changes
abnormal_state
duration
related_events
}
例如:
StateAnalysis
{
object: "Motor_A",
previous_state: "RUNNING",
current_state: "ERROR",
expected_state: "RUNNING",
state_changes: [
"temperature_high",
"overheat",
"error"
],
abnormal_state: "ERROR",
duration: 35
}
4.2 状态序列
Diagnosis 可以检查状态顺序:
READY
↓
RUNNING
↓
OVERHEAT
↓
ERROR
如果系统规定:
READY → RUNNING → STOPPED
却出现:
READY → ERROR
则可以形成:
Unexpected State Transition
状态分析因此不仅检查:
Current State
还检查:
State History
4.3 状态与原因
例如:
Motor_A
RUNNING
↓
temperature 95℃
↓
ERROR
Diagnosis 可以将:
Temperature abnormal
与:
ERROR
建立关系:
temperature_high
↓
overheat
↓
ERROR
形成诊断链。
5. 依赖分析
现代 SAI/ICAI 系统由多个模块、对象和设备组成,因此一个异常可能不是自身产生,而是依赖对象产生。
这就需要 Dependency Analysis(依赖分析)。
5.1 依赖关系
例如:
LearningEngine
↓
Memory
↓
Storage
如果:
Storage = ERROR
那么可能出现:
Memory = UNAVAILABLE
进一步:
LearningEngine = PARTIAL
因此:
表面问题
LearningEngine异常
可能根因
Storage异常
5.2 Dependency Graph
可以建立:
Dependency Graph
LearningEngine
│
↓
Memory
│
↓
Storage
设备系统也可以:
Motor
│
├── Controller
│
├── Power
│
├── Sensor
│
└── Cooling
如果 Motor 出现:
OVERHEAT
Diagnosis 可以检查:
Cooling
Sensor
Power
Controller
Load
5.3 DependencyAnalysis
结构:
DependencyAnalysis
{
target
dependency
dependency_type
dependency_state
relation
impact
state
}
例如:
DependencyAnalysis
{
target: "Motor_A",
dependency: "Cooling_A",
dependency_type: "REQUIRED",
dependency_state: "ERROR",
relation: "depends_on",
impact: "HIGH",
state: "ABNORMAL"
}
5.4 依赖链诊断
完整过程:
Problem
↓
Check Direct Dependency
↓
Dependency State
↓
Check Dependency's Dependency
↓
Continue
↓
Root Cause Candidate
例如:
LearningEngine
↓
Memory
↓
Storage
↓
Disk
如果:
Disk = FULL
可能形成:
Disk FULL
↓
Storage WRITE FAILED
↓
Memory UPDATE FAILED
↓
LearningEngine UPDATE FAILED
这就是典型的依赖链。
6. Diagnosis Result
Diagnosis 最终需要形成结构化的 Diagnosis Result。
6.1 DiagnosisResult
DiagnosisResult
{
id
detection_id
target
problem
location
state_analysis
causes
dependencies
impact
risk
conclusion
confidence
state
created_at
updated_at
}
例如:
DiagnosisResult
{
id: "DR001",
detection_id: "D001",
target: "Motor_A",
problem: {
property: "temperature",
value: 95
},
location: {
module: "DeviceModule",
object: "Motor_A",
property: "temperature"
},
state_analysis: {
previous: "RUNNING",
current: "ERROR"
},
causes: [
{
cause: "Cooling_A unavailable",
score: 0.90
}
],
dependencies: [
{
object: "Cooling_A",
state: "ERROR"
}
],
impact: "Motor may stop",
risk: "CRITICAL",
conclusion: "Cooling_A failure is primary cause candidate",
confidence: 0.90,
state: "SUPPORTED"
}
6.2 Diagnosis 状态
可以定义:
NEW
ANALYZING
LOCATED
SUPPORTED
CONFIRMED
UNCERTAIN
CONFLICT
UNRESOLVED
FAILED
其中:
LOCATED
表示已经找到问题位置。
SUPPORTED
表示原因存在充分支持证据,但仍可能需要进一步验证。
CONFIRMED
表示原因已经通过系统规定的确认条件。
UNCERTAIN
表示存在多个可能原因,但无法确定。
CONFLICT
表示不同诊断证据互相矛盾。
UNRESOLVED
表示当前无法完成诊断。
Diagnosis 完整案例
继续使用前面 Motor_A 的案例。
当前:
Motor_A.temperature = 95℃
第一步:Detection
DetectionResult
target = Motor_A
property = temperature
expected = <= 80
actual = 95
state = ABNORMAL
第二步:Risk
Risk
event = motor_overheat
probability = 0.90
impact = 0.90
RiskScore = 0.81
level = CRITICAL
第三步:问题定位
检查:
System
↓
DeviceModule
↓
Motor_A
↓
temperature
得到:
ProblemLocation = Motor_A.temperature
第四步:状态分析
历史状态:
READY
↓
RUNNING
↓
temperature_high
↓
ERROR
得到:
Current State = ERROR
Previous State = RUNNING
第五步:原因候选
检查:
Load
Cooling
Sensor
Power
Controller
发现:
Cooling_A.state = ERROR
同时:
Motor_A.temperature = 95℃
建立:
Cooling_A ERROR
↓
Cooling unavailable
↓
Motor_A temperature increases
↓
Motor_A ERROR
第六步:依赖分析
发现:
Motor_A
↓ depends_on
Cooling_A
而:
Cooling_A = ERROR
因此:
Dependency Impact = HIGH
第七步:Diagnosis Result
最终:
DiagnosisResult
Problem:
Motor_A.temperature abnormal
Location:
Motor_A.temperature
Current State:
ERROR
Primary Cause Candidate:
Cooling_A ERROR
Dependency:
Motor_A → Cooling_A
Risk:
CRITICAL
State:
SUPPORTED
此时系统还没有执行修复。
下一步应该进入:
DiagnosisResult
↓
Decision
↓
Repair
如果修复完成:
Repair
↓
Verification
↓
Detection
重新检测:
Motor_A.temperature = 65℃
Motor_A.state = RUNNING
才可以确认:
Repair = SUCCESS
Detection、Risk、Conflict、Diagnosis 的完整关系
到第74章为止,自我维护链条已经非常清晰:
Detection
↓
发现异常
↓
Risk
↓
判断潜在影响
↓
Conflict
↓
判断是否存在矛盾
↓
Priority
↓
确定处理优先级
↓
Diagnosis
↓
定位问题、分析原因
↓
Decision
↓
选择处理方案
↓
Repair
↓
执行修复
↓
Verification
↓
重新检测
其中 Diagnosis 位于:
发现问题
↓
理解问题
↓
解决问题
中的理解问题阶段。
本章核心模型
DetectionResult
↓
Problem Localization
↓
State Analysis
↓
Cause Analysis
↓
Dependency Analysis
↓
Cause Evaluation
↓
DiagnosisResult
完整自我维护闭环:
Detection
↓
Risk
↓
Conflict
↓
Priority
↓
Diagnosis
↓
Decision
↓
Repair
↓
Verification
↓
Detection
本章核心定义
Diagnosis 是 SAI/ICAI 在检测发现异常之后,通过问题定位、状态分析、原因分析和依赖分析,对异常发生的位置、原因、影响和相关依赖进行结构化判断,并形成可供 Decision 与 Repair 使用的 Diagnosis Result 的机制。
核心关系:
Detection = 哪里异常?
Risk = 可能造成什么?
Conflict = 什么发生了矛盾?
Diagnosis = 为什么异常?
Decision = 应该怎么办?
Repair = 执行什么修复?
Verification = 修复是否成功?
最终形成:
Detection
↓
Risk / Conflict
↓
Diagnosis
↓
Decision
↓
Repair
↓
Verification
这使 Diagnosis 成为 ICAI 自我维护体系中从“发现问题”进入“解决问题”的关键桥梁。