第99章 异常处理
异常处理是 SAI Individual 在运行过程中面对信息错误、状态异常、认知失败、推理冲突、决策失败、设备故障、通信异常以及执行失败时,对异常进行识别、分类、处理、恢复和记录的机制。
第72章已经建立了 Detection:
Detection 负责发现异常。
第73章建立了 Risk / Conflict:
Risk 判断潜在影响,Conflict 判断矛盾。
第74章建立了 Diagnosis:
Diagnosis 分析异常原因。
第75章建立了 Repair / Verification:
Repair 改变异常状态,Verification 验证是否恢复。
第98章建立了 Log:
Log 记录异常发生和处理过程。
因此,第99章把这些机制连接起来:
Exception
↓
Detection
↓
Risk / Conflict
↓
Diagnosis
↓
Recovery
↓
Verification
↓
Log
↓
Resume / Replan / Stop
1. Exception
1.1 Exception 定义
Exception(异常)是 SAI Individual 在正常运行条件之外出现的、会影响当前信息处理、认知、推理、决策、执行、通信或状态稳定性的情况。
可以定义:
Exception = Abnormal Condition + Impact + Handling Requirement
例如:
Information Exception
Cognition Exception
Reasoning Exception
Decision Exception
Device Exception
Adapter Exception
Task Exception
Memory Exception
Learning Exception
System Exception
1.2 Exception 基本结构
Exception
├── Identity
├── Type
├── Source
├── Target
├── Condition
├── State
├── Severity
├── Impact
├── Cause
├── Context
├── Recovery
├── Error
├── Timestamp
└── Trace
例如:
{
"id": "EX_001",
"type": "DEVICE_EXCEPTION",
"source": "DeviceAdapter_A",
"target": "Vehicle_A",
"condition": {
"connection": "DISCONNECTED"
},
"state": "ERROR",
"severity": "HIGH",
"impact": "COMMAND_UNAVAILABLE",
"cause": "CONNECTION_TIMEOUT",
"trace_id": "TRACE_001",
"timestamp": "2026-09-12 20:10:00"
}
1.3 Exception 不等于 Error
二者需要区分。
Error
=
错误
Exception
=
需要被系统处理的异常情况
例如:
Device Connection Timeout
可以形成:
Error:
CONNECTION_TIMEOUT
同时:
Exception:
DEVICE_EXCEPTION
所以:
Error
↓
可能形成 Exception
但两者不是同一个对象。
1.4 Exception 不等于 Failure
例如:
Task_A
因为等待设备响应:
WAITING
这可能是正常状态,不一定是 Failure。
而:
Adapter
↓
TIMEOUT
则可能形成:
Exception
最终:
Exception
↓
Recovery
因此:
异常必须根据状态、条件和影响进行判断,不能把所有非成功状态都当成故障。
2. Information Exception
Information Exception 是信息进入 Individual 或处理过程中出现的异常。
例如:
信息为空
信息结构错误
字段缺失
类型错误
数据范围错误
来源未知
时间错误
重复信息
冲突信息
数据损坏
2.1 示例
正常:
{
"device": "Vehicle_A",
"speed": 40,
"temperature": 72
}
异常:
{
"device": "Vehicle_A",
"speed": "unknown"
}
因为:
speed
应该是数值,却收到字符串。
形成:
Information Validation
↓
TYPE_ERROR
↓
Information Exception
2.2 Information Exception 处理
基本流程:
Information
↓
Validation
↓
Exception?
┌──┴──┐
No Yes
↓ ↓
Perception Exception Handler
↓
Classify
↓
Recovery
Recovery 可以是:
REJECT
IGNORE
REQUEST_AGAIN
WAIT
REPAIR
USE_PREVIOUS_VALID_VALUE
但不能未经判断直接使用错误信息。
2.3 UNKNOWN 信息
例如:
speed = UNKNOWN
不能直接转换成:
speed = 0
正确处理:
UNKNOWN
↓
Information Exception / Uncertain Information
↓
等待新信息
因为:
UNKNOWN 不等于 FALSE,也不等于 0。
3. Cognition Exception
Cognition Exception 是 Individual 在认知、匹配、对象识别、关系识别或理解过程中出现异常。
例如:
对象无法识别
属性冲突
关系冲突
状态冲突
匹配不足
场景无法理解
多个对象无法区分
3.1 示例
输入:
Object_A
系统得到两个互相冲突的结果:
Object_A.type = VEHICLE
同时:
Object_A.type = MACHINE
如果没有足够证据解决:
Cognition State
=
CONFLICT
形成:
Cognition Exception
3.2 Cognition Exception 处理
Cognition
↓
Conflict Detection
↓
Evidence Check
↓
Memory Check
↓
Source Check
↓
Re-evaluation
可能结果:
CONFIRMED
UNCERTAIN
CONFLICT
UNKNOWN
REJECTED
3.3 认知异常不能直接进入 Decision
例如:
Cognition
state = CONFLICT
不能直接:
Decision → STOP
应该:
Cognition Exception
↓
Diagnosis / Re-evaluation
↓
Additional Information
↓
Perception
↓
Cognition
如果风险已经达到必须立即处理的程度,则可以根据已有可靠信息进入安全决策。
4. Reasoning Exception
Reasoning Exception 是推理过程中出现的异常。
主要包括:
事实不足
规则缺失
条件 UNKNOWN
规则冲突
推理链断裂
循环推理
结论冲突
输入事实无效
4.1 推理链异常
正常:
Fact
↓
Condition
↓
Rule
↓
Intermediate Result
↓
Conclusion
如果:
Fact
↓
Condition
↓
Rule
但 Rule 需要:
temperature > 80
而实际:
temperature = UNKNOWN
则:
Condition = UNKNOWN
不能强制产生:
HIGH_TEMPERATURE
应该:
Reasoning Result
=
UNKNOWN
4.2 Rule Conflict
例如:
Rule_A:
temperature > 90 → STOP
Rule_B:
production = ACTIVE → RUN
当前:
temperature = 95
production = ACTIVE
产生:
STOP
与:
RUN
冲突。
流程:
Reasoning
↓
Rule Conflict
↓
Conflict Resolution
↓
Priority
↓
Risk
如果无法解决:
Reasoning Result
=
CONFLICT
形成:
Reasoning Exception
4.3 Reasoning Exception Recovery
可以:
RECHECK_FACT
RECHECK_CONDITION
RELOAD_RULE
REMOVE_INVALID_RULE
REQUEST_INFORMATION
STOP_REASONING
RETURN_UNKNOWN
最重要的是:
推理失败时不能伪造一个结论。
5. Decision Exception
Decision Exception 是决策阶段无法产生可靠决定或者决定无法执行的异常。
例如:
没有候选方案
候选全部不可用
风险全部过高
优先级冲突
能力不足
状态不允许
资源不足
决策条件 UNKNOWN
5.1 示例
当前:
Risk = CRITICAL
候选:
CONTINUE REJECTED
DECELERATE REJECTED
TURN REJECTED
STOP AVAILABLE
可以:
Decision = STOP
但如果:
STOP
本身也不可执行:
Vehicle Control = UNAVAILABLE
那么:
Decision Exception
产生。
5.2 Decision Exception 不等于重新随便选择
错误方式:
Decision Failed
↓
随便选择一个 Action
正确方式:
Decision Exception
↓
Risk Re-evaluation
↓
Capability Check
↓
Conflict Check
↓
Alternative Candidate
↓
New Decision
如果仍无法解决:
SAFE_STOP
WAIT
REQUEST_OPERATOR
UNKNOWN
具体行为取决于系统规则。
6. Device Exception
Device Exception 是外部设备自身或者设备运行状态出现异常。
例如:
OVERHEAT
OVERLOAD
LOW_POWER
SENSOR_FAILURE
MOTOR_FAILURE
EMERGENCY_STOP
DEVICE_ERROR
DEVICE_DISCONNECTED
UNKNOWN_STATE
6.1 示例
Machine_A
temperature = 98
state = RUNNING
检测:
temperature > 95
产生:
Device Exception
处理链:
Device
↓
Device Feedback
↓
Information
↓
Detection
↓
Risk
↓
Diagnosis
↓
Decision
↓
Repair / Action
6.2 Device Exception 与 Device State
例如:
Device State = ERROR
表示设备当前状态。
而:
Device Exception
=
解释为什么需要异常处理
可以存在:
Device_A
State = ERROR
Exception:
MOTOR_OVERHEAT
7. Adapter Exception
Adapter Exception 是 SAI 与外部设备或系统之间的连接、通信、协议、数据转换等出现异常。
例如:
CONNECT_FAILED
CONNECTION_TIMEOUT
SEND_FAILED
RECEIVE_FAILED
PROTOCOL_ERROR
FORMAT_ERROR
TARGET_UNAVAILABLE
AUTHORIZATION_ERROR
DISCONNECTED
7.1 Adapter Exception 与 Device Exception
这是两个不同位置的异常。
Device Exception
Adapter
↓
Device
↓
Device ERROR
问题发生在设备。
Adapter Exception
SAI
↓
Adapter ERROR
X
Device
问题发生在连接层或适配层。
例如:
Vehicle_A = READY
但是:
VehicleAdapter = DISCONNECTED
此时:
Device Exception = NO
Adapter Exception = YES
7.2 Adapter Recovery
可以:
RECONNECT
RETRY
RESET_CONNECTION
SWITCH_ADAPTER
WAIT
STOP
例如:
SEND_COMMAND
↓
TIMEOUT
↓
Adapter Exception
↓
Reconnect
↓
Connected
↓
Retry
↓
Response
如果多次失败:
Detection
↓
Risk
↓
Diagnosis
而不是无限 Retry。
8. Recovery
8.1 Recovery 定义
Recovery(恢复)是系统在异常发生后,使对象、模块、任务、设备或 Individual 从异常状态回到可运行状态,或者进入安全替代状态的过程。
可以定义:
Recovery = Exception Detection + Handling + State Restoration + Verification
8.2 Recovery 类型
Retry
重新执行:
FAILED
↓
RETRY
↓
RUNNING
适合临时通信失败等情况。
Reconnect
DISCONNECTED
↓
CONNECT
↓
CONNECTED
适合 Adapter。
Reset
ERROR
↓
RESET
↓
READY
Restart
ERROR
↓
STOP
↓
START
↓
READY
Rollback
恢复到之前有效状态:
Current State
↓
Invalid Update
↓
Rollback
↓
Previous Valid State
Replan
原来的 Decision 已经不适用:
Exception
↓
New Information
↓
Reasoning
↓
New Decision
↓
New Task
这不是简单重试,而是重新规划。
Safe Stop
无法可靠恢复时:
Exception
↓
Risk = CRITICAL
↓
SAFE_STOP
系统进入安全状态。
8.3 Recovery 必须 Verification
不能:
Repair
↓
认为恢复成功
应该:
Exception
↓
Recovery
↓
Verification
↓
Recovered?
如果:
YES
↓
Resume
如果:
NO
↓
Diagnosis
↓
New Recovery
9. Exception Logging
异常处理必须与第98章日志系统连接。
核心流程:
Exception
↓
Exception Handler
↓
Exception Log
↓
Recovery
↓
Recovery Log
↓
Verification Log
9.1 Exception Log
基本结构:
{
"id": "EXLOG_001",
"type": "ADAPTER_EXCEPTION",
"source": "VehicleAdapter",
"target": "Vehicle_A",
"event": "CONNECTION_TIMEOUT",
"state": "ERROR",
"severity": "HIGH",
"cause": "TIMEOUT",
"recovery": "RECONNECT",
"result": "SUCCESS",
"trace_id": "TRACE_001",
"timestamp": "2026-09-12 20:15:00"
}
9.2 Recovery Log
恢复过程也需要记录:
{
"type": "RECOVERY",
"source": "VehicleAdapter",
"target": "Vehicle_A",
"event": "RECONNECT",
"previous_state": "DISCONNECTED",
"current_state": "CONNECTED",
"result": "SUCCESS",
"timestamp": "2026-09-12 20:15:05"
}
9.3 Verification Log
最终:
{
"type": "VERIFICATION",
"target": "VehicleAdapter",
"expected": "CONNECTED",
"actual": "CONNECTED",
"state": "VERIFIED",
"timestamp": "2026-09-12 20:15:06"
}
因此一次完整异常处理就具有:
Exception Log
↓
Recovery Log
↓
Verification Log
10. Exception Handler
异常需要一个统一处理入口:
Exception
↓
ExceptionHandler
├── classify()
├── analyze()
├── selectRecovery()
├── recover()
├── verify()
└── log()
其职责是组织异常处理,而不是替代 Diagnosis、Decision、Repair。
可以理解为:
ExceptionHandler
=
异常处理协调器
11. 完整异常处理流程
例如:
Vehicle_A
需要执行:
SET_SPEED = 20
但是:
VehicleAdapter
=
DISCONNECTED
产生:
Adapter Exception
完整流程:
Decision
↓
Task
↓
Behavior
↓
Action
↓
Adapter
↓
CONNECTION_TIMEOUT
↓
Adapter Exception
↓
Exception Log
↓
Detection
↓
Risk
↓
Diagnosis
↓
Recovery
↓
Reconnect
↓
Verification
如果恢复成功:
CONNECTED
↓
Retry Action
↓
Device Response
↓
SUCCESS
↓
Task Result
↓
Experience
如果恢复失败:
Reconnect
↓
FAILED
↓
Verification FAILED
↓
Diagnosis
↓
New Decision
如果风险继续升高:
Risk = CRITICAL
↓
SAFE_STOP
12. Exception 与前面系统的完整关系
第72~99章可以形成完整的异常处理体系:
Detection
↓
发现异常
↓
Risk / Conflict
↓
判断影响与矛盾
↓
Priority
↓
确定处理顺序
↓
Diagnosis
↓
分析原因
↓
Decision
↓
选择处理方案
↓
Repair / Recovery
↓
改变异常状态
↓
Verification
↓
确认是否恢复
↓
Experience
↓
Learning
↓
Memory Update
日志贯穿其中:
Detection Log
Risk Log
Diagnosis Log
Decision Log
Recovery Log
Verification Log
Error Log
本章核心模型
Exception
↓
Classification
↓
Detection
↓
Risk / Conflict
↓
Diagnosis
↓
Decision
↓
Recovery
↓
Verification
↓
Resume / Replan / Stop
↓
Experience
↓
Learning
日志:
Exception
↓
Exception Log
↓
Recovery Log
↓
Verification Log
本章核心定义
Exception = SAI Individual 运行过程中偏离正常运行条件并需要处理的异常情况。
Information Exception = 信息接收、验证或处理阶段发生的异常。
Cognition Exception = 对象、属性、关系、状态或理解过程发生的异常。
Reasoning Exception = 事实、条件、规则、推理链或结论发生的异常。
Decision Exception = 无法形成可靠决定,或者决定无法满足执行条件的异常。
Device Exception = 外部设备本身发生的运行异常。
Adapter Exception = SAI 与外部环境连接、通信、协议或数据转换过程中发生的异常。
Recovery = 异常发生后恢复正常运行状态或进入安全替代状态的过程。
Exception Logging = 对异常、原因、处理、恢复和验证过程进行可追溯记录。
最终形成:
第98章 Log
↓
记录运行
↓
第99章 Exception
↓
处理异常
↓
Detection
↓
Diagnosis
↓
Recovery
↓
Verification
↓
Experience
↓
Learning
由此,SAI Individual 不仅能够运行任务,还具备了面对运行异常时的:
发现 → 判断 → 分析 → 处理 → 恢复 → 验证 → 记录 → 学习
闭环。