首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第98章 日志系统

第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
    ↓
历史运行记录

其中最重要的一点是:

日志记录运行,不参与替代认知、推理、决策、行为和学习。

Leave a Reply

Your email address will not be published. Required fields are marked *