第75章 Repair 与 Verification
在第72章 Detection 中,系统负责发现异常;
第73章 Risk 与 Conflict 负责判断风险与冲突;
第74章 Diagnosis 负责定位问题并分析原因。
因此,Diagnosis 完成以后,还不能认为问题已经解决。
必须继续进入:
Diagnosis
↓
Repair
↓
Repair Result
↓
Verification
↓
Verification Result
↓
正常 → 继续运行
失败 → 回滚 / 再诊断
Repair 负责改变系统状态,Verification 负责确认这种改变是否真正有效。
1. Repair
Repair 是 ICAI 自我维护体系中,针对已经发现并分析的问题执行修复操作的机制。
其核心不是简单地“修改一个值”,而是:
Diagnosis Result
↓
Repair Plan
↓
Repair Action
↓
Repair Execution
↓
Repair Result
Repair 的输入主要来自:
- DetectionResult
- Risk
- ConflictResult
- DiagnosisResult
- System State
- Module State
- Object State
- Dependency
- Memory
- Experience
- Rule
Repair 的基本目标是:
Abnormal State
↓
Repair
↓
Expected State
例如:
Storage.state = FULL
导致:
Memory.update()
失败。
Diagnosis 得到:
Problem = Memory Update Failure
Cause = Storage Full
那么 Repair 可以执行:
清理无效临时数据
↓
释放存储空间
↓
重新建立可写状态
Repair 并不直接等于成功。
必须产生:
RepairResult
然后交给 Verification。
2. 修复对象
Repair 的对象必须明确。
不能出现:
Repair(system)
这种过于模糊的操作。
应该明确:
System
Module
Object
Property
State
Relation
Rule
Behavior
Action
Storage
Connection
Device
Configuration
2.1 System 修复
系统级问题可以包括:
- 系统停止
- 核心服务异常
- 系统状态错误
- 模块无法加载
- 系统依赖异常
例如:
System_A
state = ERROR
Diagnosis:
Cause = Module_B unavailable
Repair:
恢复 Module_B
2.2 Module 修复
模块修复是 ICAI 自维护中比较常见的类型。
例如:
LearningEngine
state = ERROR
Diagnosis:
Cause = MemoryUpdater failure
Repair:
重新初始化 MemoryUpdater
2.3 Object 修复
对象可能存在:
- 属性错误
- 状态错误
- 关系错误
- 数据损坏
- 对象不可用
例如:
Device_A.temperature = -999
如果检测规则认为该值无效:
DetectionResult
state = ABNORMAL
Diagnosis:
Problem = Invalid Temperature
Cause = Sensor Data Error
Repair 可以:
重新读取 Sensor
而不是直接把:
temperature = 25
因为系统不能凭空制造一个没有依据的数据。
2.4 Relation 修复
例如:
Motor_A
depends_on
Cooling_A
如果关系记录错误:
Motor_A
depends_on
Cooling_B
经过 Diagnosis 确认后,可以修复关系:
删除错误关系
↓
建立正确关系
2.5 Rule 修复
规则也可能发生:
Rule Conflict
Rule Invalid
Rule Expired
Rule Disabled
例如:
Rule_A:
IF temperature > 80
THEN STOP
Rule_B:
IF production = TRUE
THEN RUN
当两条规则同时成立时产生冲突。
Repair 并不是简单删除其中一条规则,而可以:
调整 Rule Priority
或者:
增加 Conflict Resolution Rule
例如:
IF temperature > 80
THEN Safety Priority = HIGH
使系统能够明确选择安全规则。
3. 修复方法
Repair Method 是描述“如何修复”的结构。
基本结构:
RepairMethod
{
id
type
target
condition
action
parameters
priority
risk
rollback
state
}
常见修复方法包括:
3.1 Reset
重新初始化对象或模块。
Module
ERROR
↓
RESET
↓
READY
3.2 Restart
重新启动模块或服务。
Module_A
ERROR
↓
STOP
↓
START
↓
RUNNING
3.3 Reconnect
针对连接问题重新建立连接。
Device
DISCONNECTED
↓
Reconnect
↓
CONNECTED
3.4 Restore
恢复已经保存的正确状态。
例如:
Configuration
Current = Invalid
Backup = Valid
执行:
Restore Backup
3.5 Rebuild
重新建立损坏的数据结构。
例如:
Relation Index
CORRUPTED
可以:
Read Relations
↓
Validate
↓
Rebuild Relation Structure
3.6 Recalculate
重新计算错误的数据。
例如:
Total = 100
但:
A = 30
B = 40
C = 50
重新计算:
30 + 40 + 50 = 120
得到:
Total = 120
3.7 Replace
替换已经确认失效的对象或组件。
例如:
Sensor_A
state = FAILED
如果系统已经存在:
Sensor_B
state = READY
可以:
Sensor_A → Sensor_B
但必须经过条件、能力、风险和验证检查。
3.8 Rollback
当修复本身失败时恢复修复前状态。
Before
↓
Repair
↓
Failed
↓
Rollback
↓
Before State
因此 Rollback 不是普通 Repair,而是 Repair 的保护机制。
4. 修复结果
Repair 执行以后必须形成明确结果。
RepairResult
{
id
repair_id
target
method
previous_state
current_state
changes
output
error
state
rollback_available
started_at
completed_at
}
例如:
RepairResult
{
id: 9001,
repair_id: 8001,
target: "Storage",
method: "CLEAN_TEMP_DATA",
previous_state: "FULL",
current_state: "NORMAL",
changes: {
released_space: "2GB"
},
output: "Storage available",
error: null,
state: "SUCCESS",
rollback_available: false
}
RepairResult 状态可以包括:
NEW
PREPARING
RUNNING
SUCCESS
FAILED
PARTIAL
CANCELLED
TIMEOUT
CONFLICT
UNKNOWN
ROLLED_BACK
特别需要区分:
Repair SUCCESS
和:
Problem Resolved
二者不是同一个概念。
例如:
Repair:
重新启动 Module_A
执行成功:
RepairResult = SUCCESS
但模块重新启动后仍然:
Module_A.state = ERROR
那么:
Repair SUCCESS
Verification FAILED
因此真正的修复确认必须由 Verification 完成。
5. Verification
Verification 是对 Repair 结果进行验证的机制。
它回答的问题是:
修复以后,系统是否真正恢复到预期状态?
核心关系:
Repair
↓
RepairResult
↓
Verification
↓
VerificationResult
Verification 不负责修复。
它只负责检查:
Expected
VS
Actual
例如:
Expected:
Storage.state = NORMAL
Actual:
Storage.state = NORMAL
则:
Verification = PASSED
如果:
Expected:
Storage.state = NORMAL
Actual:
Storage.state = FULL
则:
Verification = FAILED
6. 验证条件
Verification 必须具有明确的验证条件。
VerificationCondition
{
object
property
operator
expected
actual
state
}
例如:
VerificationCondition
{
object: "Storage",
property: "state",
operator: "=",
expected: "NORMAL",
actual: "NORMAL",
state: "TRUE"
}
验证条件可以包括:
- 状态
- 属性
- 数据
- 关系
- 行为
- 模块
- 设备
- 连接
- 规则
- 性能
- 依赖
6.1 状态验证
Before:
Module_A = ERROR
Repair:
Restart
Expected:
Module_A = READY
验证:
Actual = READY
结果:
PASSED
6.2 属性验证
例如:
temperature = 95
Repair 后:
temperature = 60
验证条件:
temperature < 80
结果:
PASSED
6.3 行为验证
不能只检查:
Behavior.state = SUCCESS
还应该检查行为产生的实际结果。
例如:
Action:
Start Motor_A
验证:
Motor_A.state = RUNNING
Motor_A.speed > 0
两个条件都成立:
Verification = PASSED
6.4 依赖验证
如果原问题来自:
LearningEngine
↓
Memory
↓
Storage
那么只验证 LearningEngine 重新运行还不够。
还应该验证:
Storage = NORMAL
Memory = WRITABLE
LearningEngine = RUNNING
因为问题可能只是暂时隐藏,而没有真正解决。
7. 修复失败
Repair Failure 有多种情况。
7.1 执行失败
Repair
↓
Action Failed
例如:
Reconnect Device_A
结果:
Connection Failed
7.2 部分成功
例如:
Module_A Restart = SUCCESS
Dependency_B Restore = FAILED
因此:
RepairResult = PARTIAL
不能简单记录为 SUCCESS。
7.3 验证失败
这是最重要的一种情况:
Repair = SUCCESS
Verification = FAILED
说明:
修复操作执行成功,但问题没有得到有效解决。
系统应该重新进入:
Detection
↓
Diagnosis
而不是继续假定系统已经正常。
7.4 修复产生新异常
例如:
Repair A
虽然解决:
Problem A
却产生:
Problem B
那么:
Repair Result
↓
Detection
↓
New Detection Result
重新进入自维护循环。
8. 回滚
Rollback 的作用是保护系统。
当修复操作可能造成进一步损坏时,系统应该保留:
Previous State
以及:
Previous Configuration
Previous Relation
Previous Property
Previous Rule
Previous Data
例如:
Before Repair
Module_A
state = ERROR
config = C1
执行 Repair:
config = C2
结果:
Verification FAILED
如果 C2 不可用:
Rollback
恢复:
config = C1
形成:
Before State
↓
Backup
↓
Repair
↓
Verification
↓
FAILED
↓
Rollback
↓
Previous State
↓
Verification
回滚也必须验证。
不能认为:
Rollback = Automatically Correct
正确流程是:
Rollback
↓
Verification
如果回滚仍然失败:
Rollback Failed
则进入:
Risk
Conflict
Diagnosis
Decision
必要时进入人工处理或安全停止状态。
9. 完整自维护案例
下面使用一个完整案例说明:
LearningEngine
在学习过程中发现:
Memory Update Failed
9.1 Detection
系统检测:
Detection
{
target: "LearningEngine",
check_type: "OUTPUT",
expected: "MEMORY_UPDATED",
actual: "MEMORY_UPDATE_FAILED",
state: "ABNORMAL"
}
得到:
DetectionResult = ABNORMAL
9.2 Risk
系统判断:
Risk:
学习结果无法保存
可能造成:
Knowledge Update Lost
Experience Lost
Memory Inconsistent
因此:
RiskLevel = HIGH
9.3 Diagnosis
进一步检查:
LearningEngine
↓
MemoryUpdater
↓
Memory
↓
Storage
检测:
Storage.state = FULL
Diagnosis 得到:
Problem:
Memory Update Failure
Cause:
Storage Full
Dependency:
Memory depends_on Storage
形成:
DiagnosisResult
{
problem: "Memory Update Failure",
location: "Storage",
causes: [
"Storage Full"
],
dependencies: [
"Memory -> Storage"
],
conclusion: "Storage capacity unavailable",
state: "SUPPORTED"
}
9.4 Decision
系统形成修复候选:
Candidate A:
Delete temporary data
Candidate B:
Expand storage
Candidate C:
Ignore error
经过 Risk 与 Priority:
Candidate A = SELECTED
Candidate B = SECONDARY
Candidate C = REJECTED
9.5 Repair
执行:
CLEAN_TEMP_DATA
Repair:
Storage
FULL
↓
Clean Temporary Data
↓
Storage
NORMAL
得到:
RepairResult
{
target: "Storage",
method: "CLEAN_TEMP_DATA",
previous_state: "FULL",
current_state: "NORMAL",
state: "SUCCESS"
}
注意:
此时只能说:
Repair SUCCESS
还不能说:
System Recovered
9.6 Verification
验证第一层:
Storage.state = NORMAL
结果:
PASSED
继续验证:
Memory.writable = TRUE
结果:
PASSED
再验证:
LearningEngine
Memory Update
重新执行必要的保存验证:
Memory Update = SUCCESS
最终:
VerificationResult
{
target: "LearningEngine",
conditions: [
"Storage = NORMAL",
"Memory = WRITABLE",
"Memory Update = SUCCESS"
],
state: "PASSED"
}
这时才能确认:
Problem Resolved
9.7 形成经验
自维护完成以后,不应该直接结束。
整个过程可以形成:
Experience
{
task: "Self Maintenance",
condition: "Memory Update Failed",
environment: "Storage Full",
action: "Clean Temporary Data",
result: "Storage Normal",
feedback: "Memory Update Successful",
outcome: "SUCCESS"
}
然后:
Experience
↓
ExperienceMemory
↓
Learning
以后如果再次出现:
Memory Update Failed
系统可以查询历史经验:
Current Condition
↓
Experience Matching
↓
Relevant Experience
↓
Reasoning
↓
Decision
↓
Repair
于是形成完整的自维护闭环。
本章完整自维护模型
Detection
↓
DetectionResult
↓
Risk / Conflict
↓
Priority
↓
Diagnosis
↓
DiagnosisResult
↓
Decision
↓
Repair
↓
RepairResult
↓
Verification
↓
VerificationResult
│
├── PASSED → Normal Operation
│
└── FAILED
↓
Rollback
↓
Verification
↓
Failed Again
↓
Detection / Diagnosis
进一步形成:
Detection
↓
Diagnosis
↓
Repair
↓
Verification
↓
Feedback
↓
Experience
↓
Learning
↓
Memory
↓
Reasoning
↓
Decision
↓
Behavior
↓
Action
本章核心定义
Repair:
Repair 是 ICAI 根据 Detection、Risk、Conflict 和 Diagnosis 结果,对异常对象、状态、模块、关系、规则、行为、设备或依赖执行确定性修复操作的机制。
Verification:
Verification 是 ICAI 在 Repair 完成后,根据预先定义的验证条件,对修复后的实际状态、属性、关系、行为和结果进行检查,以确认问题是否真正得到解决的机制。
最重要的边界是:
Detection = 发现问题
Diagnosis = 分析问题
Repair = 改变问题状态
Verification = 确认是否解决
Rollback = 修复失败后的状态恢复
Experience = 保存修复经历
Learning = 从经历中获取知识
因此,ICAI 的自维护不是:
发现异常 → 修改 → 结束
而是:
发现
→ 分析
→ 决策
→ 修复
→ 验证
→ 失败则回滚
→ 再检测
→ 形成经验
→ 学习更新
这构成了 ICAI 可检测、可诊断、可修复、可验证、可回滚、可学习的自维护闭环。