第98章 日志系统
日志系统是 SAI Individual 在运行过程中记录发生了什么、什么时候发生、由谁发生、处理结果是什么的机制。
第95章的 Event 解决:
发生了什么事件?
第96章的 State Machine 解决:
状态如何变化?
第97章的 Task System 解决:
有哪些任务、任务如何执行?
而 Log 解决:
把运行过程留下什么可追溯记录?
因此:
Event = 发生了什么
State = 当前是什么状态
Task = 要完成什么工作
Log = 运行过程中记录了什么
日志系统本身不负责认知、推理、决策和学习。
1. Log
1.1 Log 定义
Log(日志)是 SAI 对系统运行过程中发生的信息、状态变化、处理过程、执行结果、错误和学习过程进行结构化记录的机制。
可以定义:
Log =
Time
+
Source
+
Target
+
Type
+
Event
+
State
+
Data
+
Result
一个基本 Log:
{
"id": "LOG_001",
"type": "SYSTEM",
"source": "Individual_A",
"target": "Task_A",
"event": "TASK_STARTED",
"state": "RUNNING",
"data": {},
"result": "SUCCESS",
"timestamp": "2026-09-12 20:00:00"
}
1.2 Log 基本结构
Log
├── Identity
├── Type
├── Source
├── Target
├── Event
├── State
├── Data
├── Result
├── Level
├── Message
├── Context
├── Error
├── Timestamp
└── Trace
其中:
Identity
id
唯一标识日志。
Type
例如:
SYSTEM
INFORMATION
COGNITION
DECISION
BEHAVIOR
DEVICE
LEARNING
ERROR
DEBUG
Source
记录日志产生者:
Individual_A
PerceptionEngine
DecisionEngine
TaskExecutor
DeviceAdapter
LearningEngine
Target
记录日志针对的对象:
Vehicle_A
Task_A
Memory_A
Machine_A
Event
记录发生的事情:
INFORMATION_RECEIVED
COGNITION_COMPLETED
DECISION_CREATED
TASK_STARTED
DEVICE_RESPONSE
LEARNING_COMPLETED
ERROR_DETECTED
State
记录当时状态:
READY
RUNNING
SUCCESS
FAILED
ERROR
UNKNOWN
Timestamp
记录发生时间。
1.3 Log 与 Memory 的区别
日志不是 Memory。
Log
=
运行过程记录
而:
Memory
=
Individual 保存和使用的认知信息
例如:
Log:
20:00:01 Vehicle_A speed=40
Log:
20:00:02 Decision=DECELERATE
Log:
20:00:03 Action SET_SPEED=20
Log:
20:00:04 Device Response SUCCESS
这些是运行记录。
而 Memory 中可能最终形成:
Fact:
Vehicle_A.speed = 20
Experience:
类似场景下 DECELERATE 产生安全结果
因此:
Log 记录过程,Memory 保存可使用的信息。
2. Debug
2.1 Debug 定义
Debug 是为了检查和定位系统运行过程而产生的调试信息。
它主要回答:
系统运行到了哪里?当时使用了什么数据?为什么没有按照预期继续?
例如:
[DEBUG]
PerceptionEngine.start()
[DEBUG]
Input elements = 8
[DEBUG]
Object count = 2
[DEBUG]
Relation count = 3
[DEBUG]
Cognition state = UNDERSTOOD
2.2 Debug 与普通 Log
普通 Log:
Task_A started
Debug:
Task_A started
target = Vehicle_A
state = READY
priority = 90
action_count = 3
因此:
Log
↓
运行记录
Debug
↓
运行检查
2.3 Debug 不改变系统逻辑
Debug 不应该:
修改 Decision
修改 Memory
修改 Rule
改变 Action
改变 Device State
它只是观察和记录。
例如:
Decision
↓
Debug Log
↓
继续 Decision
而不是:
Decision
↓
Debug
↓
Debug 自己修改 Decision
3. Information Log
Information Log 用于记录 Individual 接收和处理 Information 的过程。
例如:
{
"type": "INFORMATION",
"source": "TemperatureSensor_A",
"target": "Individual_A",
"event": "INFORMATION_RECEIVED",
"data": {
"temperature": 92
},
"timestamp": "2026-09-12 20:01:00"
}
3.1 Information Log 的作用
主要记录:
信息来源
信息类型
接收时间
原始结构
验证结果
处理状态
例如:
External Information
↓
InformationReceiver
↓
Information Log
↓
Perception
3.2 Information 生命周期日志
可以连续记录:
INFORMATION_RECEIVED
↓
INFORMATION_VALIDATING
↓
INFORMATION_ACCEPTED
↓
INFORMATION_PERCEIVED
↓
INFORMATION_UNDERSTOOD
↓
INFORMATION_STORED
这样就能够追踪:
一条 Information 从进入 Individual 到最终使用的完整过程。
4. Cognition Log
Cognition Log 记录 Individual 的认知过程。
例如:
{
"type": "COGNITION",
"source": "CognitionEngine",
"target": "Vehicle_A",
"event": "COGNITION_COMPLETED",
"data": {
"objects": [
"Vehicle_A",
"Obstacle_A"
],
"relations": [
"Vehicle_A.front_of.Obstacle_A"
],
"state": "UNDERSTOOD"
}
}
4.1 Cognition Log 记录什么
感知输入
对象识别
属性识别
状态识别
关系识别
匹配结果
理解结果
认知状态
例如:
Information
speed = 40
distance = 20
↓
Perception
↓
Objects
Vehicle_A
Obstacle_A
↓
Relations
front_of
↓
Cognition
state = UNDERSTOOD
这些过程可以形成 Cognition Log。
4.2 Cognition Log 不等于 Memory
Cognition Log:
记录这一次是怎样理解的
Memory:
保存可以继续使用的认知结果
所以:
Cognition
↓
Cognition Log
Cognition
↓
Memory
两条路径可以同时存在。
5. Decision Log
Decision Log 用于记录 Individual 为什么选择某个方案。
例如:
{
"type": "DECISION",
"source": "DecisionEngine",
"target": "Vehicle_A",
"event": "DECISION_CREATED",
"data": {
"candidates": [
"CONTINUE",
"DECELERATE",
"STOP",
"TURN"
],
"selected": "DECELERATE",
"risk": "HIGH",
"priority": 90
},
"result": "DECELERATE"
}
5.1 Decision Log 的价值
Decision Log 最重要的是形成:
决策可追溯性。
例如:
Reasoning Result
↓
Risk = HIGH
↓
Candidates
↓
Priority
↓
Decision
↓
DECELERATE
日志记录:
为什么产生这个 Decision
有哪些候选
哪些候选被排除
风险是什么
优先级是多少
最终选择是什么
5.2 Decision Log 与 Decision 的区别
Decision
=
当前决定
Decision Log
=
对这个决定的运行记录
日志不能替代 Decision 对象。
6. Behavior Log
Behavior Log 用于记录行为执行过程。
例如:
{
"type": "BEHAVIOR",
"source": "BehaviorExecutor",
"target": "Vehicle_A",
"event": "BEHAVIOR_STARTED",
"data": {
"behavior": "DECELERATE"
},
"state": "RUNNING"
}
执行完成:
{
"type": "BEHAVIOR",
"event": "BEHAVIOR_COMPLETED",
"state": "SUCCESS",
"result": {
"speed_before": 40,
"speed_after": 20
}
}
6.1 Behavior Log 生命周期
BEHAVIOR_CREATED
↓
BEHAVIOR_READY
↓
BEHAVIOR_STARTED
↓
BEHAVIOR_RUNNING
↓
ACTION_EXECUTED
↓
BEHAVIOR_COMPLETED
异常情况:
RUNNING
↓
FAILED
或者:
RUNNING
↓
TIMEOUT
6.2 Behavior Log 与 Action Log
如果一个 Behavior 有多个 Action:
Behavior
├── Action_A
├── Action_B
└── Action_C
那么可以产生:
Behavior Log
+
Action Logs
最终:
Behavior Result
这样可以追踪整个执行过程。
7. Device Log
Device Log 记录 Individual 与外部设备交互过程。
例如:
{
"type": "DEVICE",
"source": "VehicleAdapter",
"target": "Vehicle_A",
"event": "COMMAND_SENT",
"data": {
"command": "SET_SPEED",
"value": 20
},
"state": "SENT"
}
设备返回:
{
"type": "DEVICE",
"source": "Vehicle_A",
"target": "VehicleAdapter",
"event": "COMMAND_RESPONSE",
"data": {
"speed": 20
},
"state": "SUCCESS"
}
7.1 Device Log 的作用
可以追踪:
Command
↓
Adapter
↓
Device
↓
Response
↓
Feedback
例如:
20:00:01 COMMAND_SENT
20:00:02 DEVICE_RECEIVED
20:00:03 COMMAND_EXECUTED
20:00:04 RESPONSE_RECEIVED
20:00:05 FEEDBACK_CREATED
7.2 Device Log 对故障诊断的重要性
例如任务结果:
TaskResult = FAILED
通过 Device Log 可以继续检查:
Command 是否发送?
↓
Adapter 是否连接?
↓
Device 是否收到?
↓
Device 是否执行?
↓
Response 是否返回?
因此:
Device Log
↓
Detection
↓
Diagnosis
可以形成设备故障追踪链。
8. Learning Log
Learning Log 用于记录学习过程。
第70、71章已经定义:
学习 = 获取知识。
因此 Learning Log 不等于 Knowledge。
它记录的是:
Individual 通过什么输入、经验和比较过程形成知识更新。
例如:
{
"type": "LEARNING",
"source": "LearningEngine",
"target": "Individual_A",
"event": "LEARNING_COMPLETED",
"data": {
"input": "Experience_001",
"knowledge_changes": [
{
"type": "FACT",
"target": "Vehicle_A",
"property": "safe_speed",
"value": 20
}
]
},
"state": "COMPLETED"
}
8.1 Learning Log 记录过程
Experience
↓
Learning Task
↓
Analysis
↓
Extraction
↓
Validation
↓
Knowledge Update
↓
Memory Update
每一个重要阶段都可以产生日志。
8.2 Learning Log 与 Experience
Experience
=
过去发生过什么
Learning Log
=
Individual 如何处理这段经验
Knowledge
=
最终获得了什么可使用资源
三者不能混淆:
Experience
↓
Learning
↓
Knowledge
同时:
Experience
↓
Learning Log
9. Error Log
Error Log 用于记录系统运行过程中出现的错误、异常和失败。
例如:
{
"type": "ERROR",
"source": "MemoryEngine",
"target": "Memory_A",
"event": "WRITE_FAILED",
"state": "ERROR",
"error": {
"code": "STORAGE_FULL",
"message": "Memory storage is unavailable"
},
"timestamp": "2026-09-12 20:05:00"
}
9.1 Error 类型
可以定义:
SYSTEM_ERROR
CONFIG_ERROR
DATA_ERROR
VALIDATION_ERROR
STATE_ERROR
TASK_ERROR
BEHAVIOR_ERROR
ACTION_ERROR
DEVICE_ERROR
MEMORY_ERROR
LEARNING_ERROR
CONNECTION_ERROR
TIMEOUT_ERROR
CONFLICT_ERROR
9.2 Error Log 不等于 Error State
例如:
Error Log
=
记录发生过错误
而:
State = ERROR
=
对象当前处于错误状态
一个设备可能:
10:00 ERROR
10:01 REPAIRED
10:02 READY
日志仍然保留:
10:00 ERROR
但当前 Device State 已经:
READY
因此:
Log 保存历史,State 表示当前。
10. 日志与整个 Individual
把本章的九类日志放到 Individual 中:
Individual
│
├── Information
│ └── Information Log
│
├── Perception
│
├── Cognition
│ └── Cognition Log
│
├── Reasoning
│
├── Decision
│ └── Decision Log
│
├── Task
│
├── Behavior
│ └── Behavior Log
│
├── Action
│
├── Device
│ └── Device Log
│
├── Learning
│ └── Learning Log
│
└── Error
└── Error Log
Debug Log 则可以横跨整个系统:
Debug
├── Information
├── Perception
├── Cognition
├── Reasoning
├── Decision
├── Task
├── Behavior
├── Action
├── Device
└── Learning
11. 完整运行日志链
以车辆减速为例。
Information
INFORMATION_RECEIVED
Vehicle_A.speed = 40
Obstacle_A.distance = 20
Cognition
COGNITION_COMPLETED
Vehicle_A
front_of
Obstacle_A
state = UNDERSTOOD
Decision
DECISION_CREATED
risk = HIGH
selected = DECELERATE
Behavior
BEHAVIOR_STARTED
behavior = DECELERATE
Device
COMMAND_SENT
SET_SPEED = 20
Device Response
COMMAND_RESPONSE
speed = 20
state = SUCCESS
Learning
LEARNING_COMPLETED
Experience → Knowledge Update
Error
如果执行失败:
ERROR
source = VehicleAdapter
error = CONNECTION_TIMEOUT
最终就形成:
Information Log
↓
Cognition Log
↓
Decision Log
↓
Behavior Log
↓
Device Log
↓
Learning Log
↓
Error Log(如果发生错误)
12. Log 与 Event 的关系
第95章已经建立 Event System。
两者应该明确区分:
Event
=
系统中的事件对象
Log
=
对运行过程进行记录
一个 Event 可以产生一个或多个 Log:
Event
↓
Event Dispatcher
├── Listener
├── Handler
└── Log Recorder
例如:
TEMPERATURE_CHANGED
↓
Event
↓
TemperatureHandler
↓
Information
同时:
Event
↓
LogRecorder
↓
Information Log
因此:
Event 是运行机制的一部分,Log 是运行记录机制的一部分。
13. Log 与 Task System 的关系
第97章的 Task System 可以产生大量日志:
Task_CREATED
Task_QUEUED
Task_STARTED
Task_WAITING
Task_COMPLETED
Task_FAILED
Task_CANCELLED
Task_TIMEOUT
例如:
Task_A
↓
QUEUED
↓
RUNNING
↓
Action
↓
SUCCESS
↓
COMPLETED
日志:
TASK_CREATED
TASK_QUEUED
TASK_STARTED
ACTION_STARTED
ACTION_COMPLETED
TASK_COMPLETED
因此任务系统和日志系统可以形成完整执行轨迹。
14. Log Trace
为了把不同模块的日志串成一次完整运行,可以增加:
trace_id
例如:
trace_id = TRACE_001
那么:
Information Log
TRACE_001
↓
Cognition Log
TRACE_001
↓
Decision Log
TRACE_001
↓
Behavior Log
TRACE_001
↓
Device Log
TRACE_001
↓
Task Result
TRACE_001
这样就可以查询:
这一次 Individual 的完整运行过程是什么?
本章核心模型
Information
↓
Cognition
↓
Decision
↓
Task
↓
Behavior
↓
Action
↓
Device
↓
Feedback
↓
Learning
对应日志:
Information
↓
Information Log
Cognition
↓
Cognition Log
Decision
↓
Decision Log
Behavior
↓
Behavior Log
Device
↓
Device Log
Learning
↓
Learning Log
Error
↓
Error Log
而:
Debug Log
贯穿整个运行过程。
本章核心定义
Log = 对 SAI Individual 运行过程进行结构化、可追溯记录的机制。
Debug = 为检查和定位运行过程而产生的调试记录。
Information Log = 记录信息接收与处理过程。
Cognition Log = 记录认知过程和认知结果。
Decision Log = 记录候选、风险、优先级和最终决策。
Behavior Log = 记录行为执行过程。
Device Log = 记录与外部设备交互及设备响应。
Learning Log = 记录学习过程及知识更新过程。
Error Log = 记录错误、失败、异常和错误原因。
最终,第98章建立的是 SAI Individual 的运行可追溯层:
Individual
↓
运行
↓
Event / State / Task
↓
Log
↓
Trace
↓
历史运行记录
其中最重要的一点是:
日志记录运行,不参与替代认知、推理、决策、行为和学习。