第十四篇 Decision 决策
第51章 Risk
在 Decision 中,Candidate 并不是只需要判断“能不能做”,还需要判断:
选择这个方案可能产生什么风险?风险有多大?是否可以接受?
因此,Risk 是 Decision 的重要组成部分。
基本关系:
Candidate
↓
Condition
↓
Risk Evaluation
↓
Priority
↓
Choice
Risk 不负责决定最终选择,而是为 Decision 提供风险信息。
1. Risk 定义
1.1 Risk 是什么
Risk 是 ICAI 对某个 Candidate、Action、Object 或 Decision 可能产生的不利结果、不确定结果以及影响程度进行结构化描述和计算的机制。
基本模型:
Risk
=
Potential Event
+
Probability
+
Impact
+
Condition
例如:
Candidate:
Start_Device
Potential Event:
设备温度继续升高
Probability:
0.20
Impact:
0.80
可以进一步计算风险值。
1.2 Risk 的作用
Risk 主要用于:
识别风险
↓
描述风险
↓
计算风险
↓
比较风险
↓
排序风险
↓
提供决策依据
因此:
Risk ≠ Decision
Risk 提供:
“这个选择可能有什么问题?”
Decision 最终判断:
“当前应该选择哪个方案?”
1.3 Risk 基本结构
可以定义:
Risk
{
id
candidate_id
object
event
condition
probability
impact
score
level
priority
state
}
例如:
Risk
{
id: 1001,
candidate_id: "Candidate_A",
object: "Device_A",
event: "temperature_high",
probability: 0.20,
impact: 0.80,
score: 0.16,
level: "LOW",
priority: 30,
state: "ACTIVE"
}
2. 风险等级
Risk 需要能够把计算结果转换成明确的风险等级。
例如:
LOW
MEDIUM
HIGH
CRITICAL
可以建立一个简单的等级区间:
0.00 ─ 0.24 LOW
0.25 ─ 0.49 MEDIUM
0.50 ─ 0.74 HIGH
0.75 ─ 1.00 CRITICAL
这里的区间只是 ICAI 的规则参数,可以根据具体系统进行配置。
2.1 LOW
RiskScore < 0.25
表示当前计算出的风险较低。
例如:
Probability = 0.10
Impact = 0.20
RiskScore = 0.02
结果:
LOW
通常可以继续进入 Candidate 评估。
2.2 MEDIUM
0.25 ≤ RiskScore < 0.50
表示存在一定风险,需要进一步比较其他条件。
2.3 HIGH
0.50 ≤ RiskScore < 0.75
表示风险较高。
Decision 不应该仅因为 Candidate 满足条件就直接选择。
2.4 CRITICAL
RiskScore ≥ 0.75
表示风险非常高。
系统可以根据规则规定:
CRITICAL
→ Candidate 不允许选择
或者:
CRITICAL
→ 必须进入特殊决策流程
因此风险等级本身也是一个可以参与 Decision 的条件。
3. 风险条件
3.1 Risk Condition 定义
Risk Condition 是产生或增加风险的具体条件。
例如:
IF
temperature > 80
THEN
Risk = high_temperature
这里:
temperature > 80
就是 Risk Condition。
3.2 风险条件结构
可以定义:
RiskCondition
{
object
property
operator
value
result
}
例如:
RiskCondition
{
object: "Device_A",
property: "temperature",
operator: ">",
value: 80,
result: "HIGH"
}
当前:
Device_A.temperature = 90
计算:
90 > 80
→ TRUE
风险条件成立。
3.3 多个风险条件
一个风险可能由多个条件共同产生。
例如:
IF
temperature > 80
AND
battery.level < 10
THEN
Risk = critical
当前:
temperature = 90
battery.level = 5
得到:
TRUE AND TRUE
→ TRUE
所以:
Risk Condition = TRUE
Risk Level = CRITICAL
3.4 风险条件状态
与 Rule Condition 一样,Risk Condition 也应该支持:
TRUE
FALSE
UNKNOWN
CONFLICT
例如:
temperature = UNKNOWN
则:
temperature > 80
→ UNKNOWN
不能直接认为:
Risk = LOW
因为未知并不等于安全。
因此:
UNKNOWN ≠ LOW
4. 风险计算
4.1 基本风险公式
ICAI 可以采用明确的离散计算模型:
RiskScore = Probability × Impact
其中:
Probability ∈ [0,1]
Impact ∈ [0,1]
RiskScore ∈ [0,1]
例如:
Probability = 0.30
Impact = 0.80
则:
RiskScore
=
0.30 × 0.80
=
0.24
因此:
RiskLevel = LOW
按照当前设定的等级区间,它处于 LOW 边界。
4.2 Probability
Probability 表示某个不利事件发生的可能程度。
例如:
0.10
0.30
0.60
0.90
可以解释为:
0.10 → 较低
0.30 → 中等偏低
0.60 → 较高
0.90 → 很高
Probability 可以来自:
历史经验
事实统计
当前状态
规则计算
环境条件
而不是必须来自复杂模型。
4.3 Impact
Impact 表示风险事件发生后可能造成的影响程度。
例如:
0.10 → 影响很小
0.50 → 中等影响
0.80 → 较大影响
1.00 → 最大影响
Impact 可以根据:
对象重要程度
任务重要程度
损失程度
状态变化
安全要求
进行离散定义。
4.4 风险修正
某些系统中还需要加入风险修正因素:
RiskScore
=
Probability
×
Impact
×
Exposure
例如:
Probability = 0.40
Impact = 0.80
Exposure = 0.50
则:
RiskScore
=
0.40 × 0.80 × 0.50
=
0.16
这里的 Exposure 可以表示:
暴露程度
持续时间
影响范围
发生频率
具体使用哪些参数,需要由系统定义,而不是强制所有 ICAI 都采用同一种公式。
4.5 风险计算不是概率预测模型
这里必须明确:
RiskScore
是 ICAI 根据已经定义的数据和计算规则得到的数值。
它不是:
神经网络
模型训练
Embedding
LLM
生成模型
也不要求使用大模型预测未来。
核心仍然是:
Fact
+
Condition
+
Probability
+
Impact
+
Rule
→
RiskScore
5. 风险比较
Decision 中通常存在多个 Candidate,因此需要比较 Candidate 的风险。
例如:
Candidate_A
RiskScore = 0.20
Candidate_B
RiskScore = 0.60
Candidate_C
RiskScore = 0.10
排序:
Candidate_C
↓
Candidate_A
↓
Candidate_B
从风险角度:
C < A < B
5.1 单风险比较
Risk_A = 0.20
Risk_B = 0.50
则:
Risk_A < Risk_B
A 的风险低于 B。
5.2 多风险比较
一个 Candidate 可能同时存在多个风险:
Candidate_A
├── Cost Risk = 0.20
├── Time Risk = 0.30
└── Safety Risk = 0.10
可以计算:
TotalRisk
例如采用加权模型:
TotalRisk
=
CostRisk × 0.20
+
TimeRisk × 0.30
+
SafetyRisk × 0.50
假设:
0.20 × 0.20
+
0.30 × 0.30
+
0.10 × 0.50
= 0.04
+ 0.09
+ 0.05
= 0.18
因此:
TotalRisk = 0.18
5.3 最高风险约束
有时候不能只看平均风险。
例如:
Candidate_A
CostRisk = 0.10
TimeRisk = 0.10
SafetyRisk = 0.90
虽然平均值可能不高,但:
SafetyRisk = 0.90
已经属于 CRITICAL。
因此可以设置:
IF AnyRisk.level = CRITICAL
THEN Candidate = REJECTED
这种机制可以避免某一个严重风险被其他低风险项目抵消。
6. 风险优先级
风险本身也存在优先级。
例如:
Risk_A = cost
Risk_B = time
Risk_C = safety
系统可能定义:
Safety Priority = 100
Cost Priority = 50
Time Priority = 30
于是:
Safety
>
Cost
>
Time
6.1 Risk Priority
可以定义:
RiskPriority
{
risk_id
priority
reason
state
}
例如:
RiskPriority
{
risk_id: "SafetyRisk",
priority: 100,
reason: "safety_constraint",
state: "ACTIVE"
}
6.2 风险等级与风险优先级
二者不能混淆:
Risk Level
= 风险有多严重
Risk Priority
= 当前处理风险的先后顺序
例如:
Risk_A
level = HIGH
priority = 50
Risk_B
level = MEDIUM
priority = 100
虽然 B 的等级较低,但系统可能规定 B 必须优先处理。
所以:
Risk Level ≠ Risk Priority
6.3 Risk 对 Candidate 的影响
风险最终会进入 Decision:
Candidate
↓
Risk Evaluation
↓
RiskScore
↓
RiskLevel
↓
RiskPriority
↓
Candidate Evaluation
因此:
Risk
→ 影响 Candidate Score
→ 影响 Candidate 排序
→ 可能导致 Candidate 被拒绝
→ 可能导致 Decision = NO_CHOICE
7. 风险决策示例
下面建立一个完整的 ICAI 风险决策实例。
7.1 当前任务
ICAI 需要从三个方案中选择一个:
Goal:
Select_Service
候选:
Candidate_A = Service_A
Candidate_B = Service_B
Candidate_C = Service_C
7.2 当前条件
已知:
Service_A.available = true
Service_B.available = true
Service_C.available = true
所以:
Condition_A = TRUE
Condition_B = TRUE
Condition_C = TRUE
三个 Candidate 都可以进入风险评估。
7.3 风险数据
Candidate A
Probability = 0.20
Impact = 0.50
计算:
Risk_A
=
0.20 × 0.50
=
0.10
结果:
LOW
Candidate B
Probability = 0.40
Impact = 0.80
计算:
Risk_B
=
0.40 × 0.80
=
0.32
结果:
MEDIUM
Candidate C
Probability = 0.70
Impact = 0.90
计算:
Risk_C
=
0.70 × 0.90
=
0.63
结果:
HIGH
7.4 风险比较
得到:
Service_A = 0.10
Service_B = 0.32
Service_C = 0.63
风险排序:
Service_A
↓
Service_B
↓
Service_C
7.5 加入 Priority
假设:
Service_A priority = 50
Service_B priority = 80
Service_C priority = 100
这时候出现:
Service_C
Priority = 100
Risk = 0.63
而:
Service_A
Priority = 50
Risk = 0.10
Decision 不能只看 Priority。
需要综合:
Condition
+
Risk
+
Priority
7.6 Candidate Score
假设定义:
CandidateScore
=
ConditionScore × 0.40
+
PriorityScore × 0.20
+
SafetyScore × 0.40
其中:
SafetyScore = 1 - RiskScore
为了方便比较,将 Priority 转换为 0~1:
Service_A:
PriorityScore = 0.50
Risk = 0.10
Safety = 0.90
Service_B:
PriorityScore = 0.80
Risk = 0.32
Safety = 0.68
Service_C:
PriorityScore = 1.00
Risk = 0.63
Safety = 0.37
三个条件均成立:
ConditionScore = 1.00
计算:
Service A
1.00 × 0.40
+
0.50 × 0.20
+
0.90 × 0.40
= 0.40
+ 0.10
+ 0.36
= 0.86
Service B
1.00 × 0.40
+
0.80 × 0.20
+
0.68 × 0.40
= 0.40
+ 0.16
+ 0.272
= 0.832
Service C
1.00 × 0.40
+
1.00 × 0.20
+
0.37 × 0.40
= 0.40
+ 0.20
+ 0.148
= 0.748
得到:
Service_A = 0.860
Service_B = 0.832
Service_C = 0.748
因此:
Choice = Service_A
7.7 风险否决
如果系统还有一条安全规则:
IF RiskScore >= 0.60
THEN Candidate = REJECTED
那么:
Service_C
RiskScore = 0.63
直接:
Service_C = REJECTED
剩余:
Service_A
Service_B
继续进行 Decision。
这说明 Risk 不只是一个数字,还可以成为 Decision 的约束条件。
Risk 核心模型
本章可以归纳为:
Potential Event
↓
Risk Condition
↓
Probability
+
Impact
↓
RiskScore
↓
RiskLevel
↓
RiskPriority
↓
Candidate Evaluation
↓
Decision
完整 Decision 关系:
Conclusion
↓
Candidate
↓
Condition
↓
Risk
┌───┴────┐
↓ ↓
Score Level
└───┬────┘
↓
Priority
↓
Choice
↓
DecisionResult
本章核心定义
Risk 是 ICAI 对 Candidate、Action、Object 或 Decision 可能产生的不利事件、不确定性及其影响进行结构化描述、条件判断、数值计算、等级划分和优先级管理的机制。
核心区别:
Condition = 是否满足条件
Risk = 可能产生什么风险
Priority = 哪个更重要
Decision = 选择什么
Action = 实际做什么
最终形成:
Candidate
+
Condition
+
Risk
+
Priority
↓
Decision
↓
Choice
↓
Action
这为下一步 DecisionEngine 将 Decision、Candidate、Risk、Priority 和 Choice 真正组织成一个可运行的决策引擎奠定基础。