第二十四篇 Self-Maintenance
第73章 Risk 与 Conflict
第72章建立了 Detection:
Target
↓
Detection
↓
DetectionResult
Detection 发现系统、模块、行为、设备或数据存在异常以后,并不意味着系统已经知道应该如何处理。
因此需要进一步进入:
Detection
↓
Risk
↓
Conflict
↓
Decision
其中:
- Risk:判断异常可能造成什么影响;
- Conflict:判断不同对象、状态、规则、行为之间是否存在无法同时满足的矛盾;
- Priority:在多个可处理对象之间确定处理顺序;
- Decision:最终选择采取什么行动。
1. Risk
1.1 Risk 定义
**Risk(风险)**是 SAI/ICAI 根据当前状态、条件、历史经验、影响范围和可能结果,对某个对象、行为、决策或事件可能产生的不利影响进行结构化描述和计算的机制。
基本关系:
Detection
↓
异常/不确定状态
↓
Risk Analysis
↓
Risk
Risk 关注的是:
如果继续这样运行
可能发生什么?
发生的可能性有多大?
产生的影响有多大?
是否需要优先处理?
因此:
Abnormal ≠ Risk
Risk ≠ Failure
Risk ≠ Diagnosis
例如:
Motor_A.temperature = 92℃
Detection:
ABNORMAL
Risk:
temperature_overheat
probability = 0.80
impact = 0.90
risk_score = 0.72
level = HIGH
这里 Detection 发现问题,Risk 判断问题可能造成的影响。
1.2 Risk 结构
Risk
{
id
target
event
condition
probability
impact
exposure
score
level
priority
state
source
created_at
updated_at
}
基本计算:
RiskScore = Probability × Impact
如果增加暴露程度:
RiskScore =
Probability × Impact × Exposure
所有参数都可以限制在:
0.00 ~ 1.00
例如:
Probability = 0.80
Impact = 0.90
则:
RiskScore = 0.80 × 0.90
= 0.72
1.3 Risk Level
例如:
0.00 - 0.24 → LOW
0.25 - 0.49 → MEDIUM
0.50 - 0.74 → HIGH
0.75 - 1.00 → CRITICAL
具体边界可以由系统配置。
特别需要保持:
UNKNOWN ≠ LOW
如果 Probability 无法确定:
Probability = UNKNOWN
不能因为不知道风险大小,就自动认为:
Risk = LOW
2. Conflict
2.1 Conflict 定义
**Conflict(冲突)**是 SAI/ICAI 在多个事实、状态、规则、条件、行为、目标或决策之间发现不能同时成立、不能同时执行或相互排斥的关系。
基本模型:
A
+
B
↓
Conflict Detection
↓
Conflict Result
例如:
Rule_A:
IF temperature > 80
THEN Motor = STOP
同时:
Rule_B:
IF production_required = TRUE
THEN Motor = RUN
当前:
temperature = 90
production_required = TRUE
两个规则分别要求:
STOP
RUN
形成:
RUN ↔ STOP
这就是规则冲突。
2.2 Conflict 不等于 Error
冲突并不一定意味着程序错误。
例如:
Rule_A → STOP
Rule_B → RUN
两个规则本身都可能正确。
问题在于:
当前条件同时满足两个规则
导致:
两个结果不能同时执行
因此:
Conflict ≠ Error
Conflict 是一种关系状态。
2.3 Conflict 基本结构
Conflict
{
id
source_a
source_b
target
type
condition_a
condition_b
result_a
result_b
reason
priority
state
created_at
}
例如:
Conflict
{
id: "C001",
source_a: "Rule_001",
source_b: "Rule_002",
target: "Motor_A",
type: "RULE_CONFLICT",
result_a: "STOP",
result_b: "RUN",
reason: "Both conditions are satisfied",
state: "DETECTED"
}
3. 冲突来源
Conflict 可能来自多个层面。
3.1 信息冲突
例如:
Source_A:
temperature = 30
Source_B:
temperature = 45
如果两个信息针对:
同一对象
同一属性
同一时间
就可能形成:
Information Conflict
3.2 事实冲突
Fact_A:
Device_A.state = ON
Fact_B:
Device_A.state = OFF
如果两者同时有效:
Fact Conflict
3.3 状态冲突
Expected = READY
Actual = ERROR
或者两个来源分别认为:
State_A = RUNNING
State_B = STOPPED
形成:
State Conflict
3.4 规则冲突
Rule_A → START
Rule_B → STOP
条件同时满足:
Rule Conflict
3.5 行为冲突
例如两个 Behavior 同时要求:
Behavior_A → Motor_A.start()
Behavior_B → Motor_A.stop()
如果两个行为在相同时间、相同对象上不能同时执行:
Behavior Conflict
3.6 目标冲突
例如:
Goal_A:
最大化生产速度
Goal_B:
最小化设备风险
当前设备温度已经很高时:
高速运行
和:
立即停止
可能形成目标冲突。
3.7 资源冲突
两个行为需要同一个不可同时占用的资源:
Process_A → Device_A
Process_B → Device_A
如果 Device_A 同时只能执行一个任务:
Resource Conflict
4. 状态冲突
状态冲突是最常见的 Conflict 类型之一。
4.1 同一对象的状态冲突
例如:
Device_A
同时出现:
RUNNING
STOPPED
如果时间和上下文相同:
RUNNING ↔ STOPPED
形成:
STATE_CONFLICT
4.2 状态变化不一定是冲突
例如:
READY
↓
RUNNING
这是正常状态变化。
又例如:
RUNNING
↓
STOPPED
如果行为要求停止,也是正常变化。
因此必须区分:
State Change
和:
State Conflict
关键在于:
是否属于同一时间/上下文?
是否允许这种状态变化?
是否存在两个同时有效的状态?
4.3 状态冲突结构
StateConflict
{
object
state_a
state_b
time
context
source_a
source_b
state
}
例如:
StateConflict
{
object: "Motor_A",
state_a: "RUNNING",
state_b: "STOPPED",
time: "2026-09-12 18:10:00",
source_a: "DeviceResponse",
source_b: "Memory",
state: "CONFLICT"
}
这时系统不能直接选择其中一个。
需要进入:
Conflict
↓
Source Check
↓
Time Check
↓
State Validation
↓
Priority / Resolution
5. 规则冲突
规则冲突是 RuleEngine 和 ReasoningEngine 中的重要问题。
5.1 直接冲突
Rule_001
IF
temperature > 80
THEN
Motor = STOP
Rule_002
IF
production = TRUE
THEN
Motor = RUN
当前:
temperature = 90
production = TRUE
两个条件都为 TRUE:
Rule_001 → STOP
Rule_002 → RUN
形成:
STOP ↔ RUN
5.2 规则优先级
如果规则定义了明确优先级:
Rule_001 priority = 100
Rule_002 priority = 50
则:
Rule_001 > Rule_002
可以选择:
STOP
但这里需要明确:
优先级解决的是“哪个规则优先”,并不意味着低优先级规则是错误的。
5.3 无法解决的规则冲突
如果:
Rule_001 priority = 100
Rule_002 priority = 100
并且没有其他解决条件:
STOP ↔ RUN
则不能随意选择。
应该产生:
ConflictResult = UNRESOLVED
并进入:
Risk
Decision
Diagnosis
或要求外部确认。
6. 行为冲突
Behavior Conflict 发生在多个行为无法同时执行时。
例如:
Behavior_A
target = Door_A
action = OPEN
同时:
Behavior_B
target = Door_A
action = CLOSE
两个行为同时处于:
READY
如果没有允许同时执行的条件:
OPEN ↔ CLOSE
产生:
BEHAVIOR_CONFLICT
6.1 行为冲突检测
可以检查:
Target
Action
Time
Condition
Resource
Priority
结构:
BehaviorConflict
{
behavior_a
behavior_b
target
action_a
action_b
time
condition
state
}
例如:
Behavior_A → Motor_A.START
Behavior_B → Motor_A.STOP
检测:
Same Target = TRUE
Same Time = TRUE
Action Conflict = TRUE
结果:
CONFLICT
6.2 行为冲突不一定需要取消
如果:
Behavior_A priority = 100
Behavior_B priority = 20
可以:
Behavior_A → EXECUTE
Behavior_B → WAIT
而不是直接删除 Behavior_B。
因此:
Conflict Resolution
可以产生:
EXECUTE
WAIT
REJECT
CANCEL
REPLAN
UNKNOWN
7. 优先级解决
当系统发现多个冲突候选时,需要通过 Priority 进行解决。
基本过程:
Conflict
↓
Candidate A
Candidate B
↓
Priority Evaluation
↓
Compare
↓
Select
7.1 优先级依据
可以使用:
Safety
Risk
Urgency
Importance
Rule Priority
Task Priority
Object State
Experience
例如:
Candidate A
STOP Motor
Risk = LOW
Safety = HIGH
Priority = 100
Candidate B
RUN Motor
Risk = HIGH
Safety = LOW
Priority = 50
最终:
STOP > RUN
7.2 风险优先
当安全风险较高时,可以定义:
IF
RiskLevel = CRITICAL
THEN
Priority = MAX
例如:
Motor temperature = 95℃
同时存在:
RUN
STOP
如果:
Overheat Risk = CRITICAL
则:
STOP
获得更高处理优先级。
7.3 优先级不能代替冲突分析
不能简单:
Priority
↓
直接执行
正确过程是:
Conflict Detection
↓
Conflict Analysis
↓
Risk Analysis
↓
Priority Evaluation
↓
Conflict Resolution
因为:
Priority 是解决依据
Conflict 是需要解决的问题
二者不是同一个概念。
8. Conflict Result
Conflict 处理完成以后,需要形成结构化的 Conflict Result。
8.1 ConflictResult
ConflictResult
{
id
conflict_id
type
target
source_a
source_b
result_a
result_b
resolution
selected
rejected
priority
risk
state
reason
created_at
completed_at
}
例如:
ConflictResult
{
id: "CR001",
conflict_id: "C001",
type: "RULE_CONFLICT",
target: "Motor_A",
source_a: "Rule_001",
source_b: "Rule_002",
result_a: "STOP",
result_b: "RUN",
resolution: "PRIORITY",
selected: "STOP",
rejected: "RUN",
priority: {
Rule_001: 100,
Rule_002: 50
},
risk: "HIGH",
state: "RESOLVED",
reason: "Safety rule has higher priority"
}
8.2 Conflict Result 状态
可以定义:
DETECTED
ANALYZING
RESOLVED
UNRESOLVED
REJECTED
IGNORED
EXPIRED
ERROR
其中最重要的是:
RESOLVED
表示冲突已经按照规则、优先级或其他确定机制完成处理。
而:
UNRESOLVED
表示系统无法安全、确定地解决冲突。
这时不能假装已经解决。
Risk 与 Conflict 的关系
两者虽然紧密相关,但职责不同。
Detection
↓
发现异常
│
├──────────────┐
↓ ↓
Risk Conflict
↓ ↓
可能造成什么 是否存在矛盾
│ │
└──────┬───────┘
↓
Priority
↓
Decision
例如:
Motor_A.temperature = 95℃
Detection:
ABNORMAL
Risk:
Overheat
RiskScore = 0.90
CRITICAL
同时:
Rule_A → RUN
Rule_B → STOP
Conflict:
RUN ↔ STOP
Priority:
Safety > Production
Conflict Result:
STOP selected
RUN rejected
最后才进入:
Decision
↓
Behavior
↓
Action
本章核心模型
Detection
↓
DetectionResult
↓
┌───────────────┐
│ │
↓ ↓
Risk Conflict
│ │
│ ┌──────┼──────┐
│ ↓ ↓ ↓
│ State Rule Behavior
│ Conflict
│ │
└───────┬───────┘
↓
Priority
↓
Conflict Result
↓
Decision
更完整的自我维护循环:
Detection
↓
Risk / Conflict
↓
Priority
↓
Decision
↓
Repair
↓
Verification
↓
Detection
本章核心定义
Risk 是对异常、事件、行为或决策可能造成的不利影响进行判断和量化的机制;Conflict 是对事实、状态、规则、行为、目标或资源之间不能同时成立或执行的矛盾进行检测、分析和解决的机制。
核心关系:
Risk
=
Probability × Impact
Conflict
=
Incompatible A + Incompatible B
最终:
Conflict
↓
Analysis
↓
Risk
↓
Priority
↓
Resolution
↓
ConflictResult
其中必须保持几个边界:
Detection = 发现异常
Risk = 判断潜在影响
Conflict = 发现矛盾
Priority = 确定处理顺序/优先关系
Decision = 选择行动
Repair = 执行修复
Verification = 验证修复
这样第72章与第73章就形成:
Detection
↓
Detection Result
↓
Risk
↓
Conflict
↓
Priority
↓
Decision
↓
Repair
↓
Verification
↓
Detection
这条链就是 ICAI 自我检测、自我保护和自我维护机制的基础闭环。