第190章 SceneEngine
在 ICAI 的工程体系中,ObjectEngine 负责计算对象,StateEngine 负责计算对象当前状态,RelationEngine 负责计算对象之间的关系。当多个对象、多个状态、多个关系在特定时间和条件下共同出现时,仅仅分别计算对象、状态和关系还不足以表达当前认知环境。
因此,ICAI 需要进一步建立一个能够描述“当前整体条件”的计算层,即 SceneEngine(场景计算引擎)。
SceneEngine 不是简单保存一张“场景表”,也不是给对象贴上一个场景名称。它的作用是把当前运行环境中的对象、对象状态、对象关系、时间、空间、条件、事件以及目标等事实组织起来,形成一个可以被计算、比较、判断和更新的 Scene(场景)。
其基本关系为:
Object → State → Relation → Scene → Scene Calculation → Scene Change
其中:
- Object 表示场景中的实体;
- State 表示实体当前状态;
- Relation 表示实体之间当前存在的关系;
- Scene 表示这些事实在特定条件和时间下形成的整体环境;
- Scene Calculation 表示对整体环境进行计算;
- Scene Change 表示场景从一个状态变化到另一个状态。
190.1 Scene 的定义
Scene(场景)是由一组对象、对象状态、对象关系以及时间、空间和条件共同构成的动态认知环境。
可以定义:
Scene=(O,S,R,C,T,P,E,G)Scene=(O,S,R,C,T,P,E,G)
其中:
- OO = Objects,对象集合;
- SS = States,状态集合;
- RR = Relations,关系集合;
- CC = Conditions,场景条件;
- TT = Time,时间;
- PP = Position/Place,空间或位置;
- EE = Events,场景事件;
- GG = Goal,与当前场景相关的目标。
因此,Scene 并不是单个 Object。
例如:
一个仓库中存在:
- 仓库对象;
- 货物对象;
- 货架对象;
- 工作人员对象;
- 订单对象;
- 设备对象。
这些对象各自具有状态,同时对象之间存在:
- 货物属于订单;
- 货物位于货架;
- 工作人员操作设备;
- 设备处于运行状态;
- 订单处于待处理状态。
当这些事实在某一个时间点共同存在时,它们共同构成一个场景。
因此:
Scene≠ObjectScene \neq Object
同时:
Scene≠StateScene \neq State
也不是:
Scene≠RelationScene \neq Relation
而是:
Scene=Objects+States+Relations+ContextScene = Objects + States + Relations + Context
190.2 SceneEngine 的定义
SceneEngine(场景计算引擎) 是 ICAI 中负责建立场景、计算场景以及检测场景变化的确定性计算引擎。
可以定义:
SceneEngine=SceneBuilding+SceneCalculation+SceneChangeDetectionSceneEngine= SceneBuilding+ SceneCalculation+ SceneChangeDetection
即:
场景建立 + 场景计算 + 场景变化检测
SceneEngine 的核心任务不是执行行为,也不是直接修改数据库,而是根据当前实际数据计算:
- 当前是什么场景;
- 当前场景由什么构成;
- 当前场景满足什么条件;
- 当前场景具有怎样的状态;
- 当前场景发生了什么变化;
- 场景变化是否影响 Goal、Capability、Method、Decision、Behavior 等后续认知过程。
因此:
SceneEngine=f(O,S,R,C,T,P,E,G)SceneEngine=f(O,S,R,C,T,P,E,G)
输出:
SceneResult=(Scene,Calculation,Evidence,Change,State,Time)SceneResult=(Scene,Calculation,Evidence,Change,State,Time)
其中:
- Scene = 当前场景;
- Calculation = 场景计算过程;
- Evidence = 计算依据;
- Change = 场景变化;
- State = 场景计算状态;
- Time = 计算时间。
190.3 场景建立
场景建立是 SceneEngine 的第一项核心功能。
场景不能凭名称直接建立,而应该从当前实际对象、状态和关系中构造。
基本过程:
Object Load → State Load → Relation Load → Condition Load → Time/Place → Event → Scene Build
即:
对象加载 → 状态加载 → 关系加载 → 条件加载 → 时间/空间加载 → 事件加载 → 场景建立
例如当前系统检测到:
Object A:订单
State A:待处理
Object B:货物
State B:已入库
Object C:仓库
State C:正常
Relation:
订单 → 包含 → 货物
货物 → 位于 → 仓库
SceneEngine 不需要把这些数据重新定义成新的对象,而是建立一个场景引用:
Scene
├── Objects
│ ├── Order
│ ├── Product
│ └── Warehouse
│
├── States
│ ├── Order: Pending
│ ├── Product: Stored
│ └── Warehouse: Normal
│
├── Relations
│ ├── Order → contains → Product
│ └── Product → located_in → Warehouse
│
├── Conditions
├── Time
└── Events
因此,Scene 是一个 当前事实集合的结构化组合。
190.4 场景建立不是对象复制
SceneEngine 不应该把所有 Object 完整复制一遍。
场景中的对象通常采用引用方式:
Scene
↓
Object ID
↓
Object
↓
Current State
↓
Relations
这样可以避免:
Object → Scene Object Copy
Object → Scene Object Copy
Object → Scene Object Copy
造成大量重复数据。
因此,工程上更合理的方式是:
Scene=(ObjectReferences,StateReferences,RelationReferences,Context)Scene=(ObjectReferences,StateReferences,RelationReferences,Context)
即:
对象引用 + 状态引用 + 关系引用 + 场景上下文
Scene 本身表达的是“这些对象现在共同处于什么环境”。
190.5 场景条件
一个对象集合并不一定自动形成有效场景。
必须满足一定的条件。
可以定义:
SceneValid=O∧S∧R∧C∧TSceneValid= O\land S\land R\land C\land T
其中:
- OO = 必要对象存在;
- SS = 必要状态有效;
- RR = 必要关系有效;
- CC = 场景条件满足;
- TT = 时间有效。
例如:
订单存在
+
货物存在
+
货物状态有效
+
订单与货物关系有效
+
仓库正常
+
当前时间有效
才可以建立一个有效的“订单处理场景”。
如果订单存在,但货物已经不存在,则不能简单认为原来的场景仍然有效。
190.6 场景计算
场景建立之后,SceneEngine 需要进一步进行场景计算。
场景计算不是判断“这个场景叫什么名字”,而是计算当前场景能够得出的确定性事实。
可以定义:
SceneCalculation=ObjectFacts+StateFacts+RelationFacts+ConditionEvaluation+EventEvaluationSceneCalculation= ObjectFacts+ StateFacts+ RelationFacts+ ConditionEvaluation+ EventEvaluation
即:
对象事实 + 状态事实 + 关系事实 + 条件计算 + 事件计算
例如:
订单 = 待处理
货物 = 已入库
仓库 = 正常
订单 → 包含 → 货物
货物 → 位于 → 仓库
通过规则:
订单待处理
AND
货物已入库
AND
仓库正常
AND
订单包含货物
可以计算出:
订单具备处理条件
但 SceneEngine 不应该直接得出:
立即执行某个动作
因为:
场景计算 ≠ 决策
场景计算产生的是当前环境事实。
之后可以由:
DecisionEngine
根据 Goal、Capability、Method、Risk、Conflict 等继续进行决策。
190.7 场景状态
场景本身也需要具有状态。
可以定义:
SceneState=(V,T,C,R)SceneState=(V,T,C,R)
其中:
- VV = State Value,场景状态值;
- TT = Time,状态时间;
- CC = Context,状态上下文;
- RR = Reason,状态原因。
典型场景状态可以包括:
Created
Initializing
Ready
Active
Changing
Blocked
Invalid
Expired
Archived
例如:
Scene Created
↓
Scene Initializing
↓
Scene Ready
↓
Scene Active
↓
Scene Changing
↓
Scene Active
如果关键对象消失:
Active
↓
Change Detected
↓
Required Object Missing
↓
Invalid
因此,场景状态不是人为设置的名称,而应该由对象、状态、关系和条件共同计算。
190.8 场景变化
SceneEngine 的第三项核心功能是 Scene Change(场景变化)。
场景不是静态数据。
当对象、状态、关系、条件、时间、位置或事件发生变化时,场景也可能发生变化。
可以定义:
Scenet→ΔScene→Scenet+1Scene_t \rightarrow \Delta Scene \rightarrow Scene_{t+1}
其中:
- ScenetScene_t = 当前场景;
- ΔScene\Delta Scene = 场景变化;
- Scenet+1Scene_{t+1} = 新场景。
场景变化可以来自:
Object Change
State Change
Relation Change
Condition Change
Time Change
Position Change
Event
Goal Change
因此:
ΔScene=ΔO+ΔS+ΔR+ΔC+ΔT+ΔP+ΔE\Delta Scene= \Delta O+ \Delta S+ \Delta R+ \Delta C+ \Delta T+ \Delta P+ \Delta E
190.9 对象变化导致场景变化
例如原场景:
订单 = 待处理
货物 = 已入库
仓库 = 正常
如果订单状态变成:
订单 = 已处理
那么:
St(Order)=PendingS_t(Order)=Pending
变成:
St+1(Order)=CompletedS_{t+1}(Order)=Completed
SceneEngine 检测到:
State Change
从而产生:
Scene Change
因此:
对象状态变化 → 场景变化
190.10 关系变化导致场景变化
关系变化同样可以导致场景变化。
例如:
Product → located_in → Warehouse A
变成:
Product → located_in → Warehouse B
对象本身没有发生变化,但关系发生了变化。
因此:
ΔR≠0\Delta R\neq0
从而:
ΔScene≠0\Delta Scene\neq0
这说明 SceneEngine 必须同时关注:
对象事实
和:
关系事实
不能只检查对象状态。
190.11 时间导致场景变化
场景还可能在没有明显对象修改的情况下,因为时间变化而发生变化。
例如:
营业时间:09:00–18:00
在:
17:59
时:
Scene = Open
进入:
18:01
之后:
Scene = Closed
对象没有增加,也没有删除,关系也可能没有变化。
但是:
ΔT≠0\Delta T\neq0
导致:
ΔScene≠0\Delta Scene\neq0
因此 SceneEngine 必须支持时间条件。
190.12 场景变化计算
可以定义场景差异:
ΔScene=Compare(Scenet,Scenet+1)\Delta Scene= Compare(Scene_t,Scene_{t+1})
比较维度包括:
Object Added
Object Removed
Object Changed
State Added
State Removed
State Changed
Relation Added
Relation Removed
Relation Changed
Condition Changed
Time Changed
Position Changed
Event Added
Event Removed
最终形成:
SceneChange
可以定义:
SceneChange=(Type,O,S,R,C,T,E,Reason)SceneChange=(Type,O,S,R,C,T,E,Reason)
其中:
- Type = 变化类型;
- O = 对象变化;
- S = 状态变化;
- R = 关系变化;
- C = 条件变化;
- T = 时间变化;
- E = 事件变化;
- Reason = 变化原因。
190.13 场景变化类型
SceneEngine 可以使用固定的变化类型集合:
Created
Expanded
Reduced
ObjectChanged
StateChanged
RelationChanged
ConditionChanged
TimeChanged
PositionChanged
EventTriggered
Blocked
Invalidated
Recovered
Expired
例如:
货物进入仓库
→ ObjectAdded
订单状态改变
→ StateChanged
货物从仓库A移动到仓库B
→ RelationChanged
营业时间结束
→ TimeChanged
场景条件不再满足
→ Invalidated
这些变化都是离散、可记录、可验证的。
190.14 场景变化不是普通日志
普通日志只记录:
某个时间发生了某件事。
SceneEngine 需要进一步计算:
原场景是什么
+
发生了什么变化
+
变化影响了哪些对象
+
影响了哪些关系
+
影响了哪些条件
+
新场景是什么
因此:
SceneHistory≠LogSceneHistory \neq Log
SceneHistory 记录的是场景结构变化。
例如:
Scene 1001
↓
Product moved
↓
Relation changed
↓
Scene 1002
这比简单记录:
2026-09-11 12:30 Product moved
具有更强的认知计算价值。
190.15 SceneEngine 与 ObjectEngine
ObjectEngine 负责:
Object → Object Fact
SceneEngine 负责:
Objects + States + Relations → Scene
两者不能混淆。
ObjectEngine 回答:
这个对象是什么?
SceneEngine 回答:
这些对象现在共同构成什么环境?
因此:
ObjectEngine→ObjectFactObjectEngine \rightarrow ObjectFact SceneEngine→SceneFactSceneEngine \rightarrow SceneFact
SceneEngine 可以调用 ObjectEngine 的计算结果,但不应该重新实现 ObjectEngine。
190.16 SceneEngine 与 StateEngine
StateEngine 负责单个对象或指定实体的状态计算:
St→St+1S_t\rightarrow S_{t+1}
SceneEngine 则负责多个状态共同形成的场景:
S1+S2+⋯+Sn→SceneS_1+S_2+\cdots+S_n \rightarrow Scene
例如:
仓库 = 正常
订单 = 待处理
货物 = 已入库
设备 = 可用
这些状态共同决定:
订单处理场景 = Active
因此:
StateEngine 计算局部状态,SceneEngine 计算整体场景。
190.17 SceneEngine 与 RelationEngine
RelationEngine 负责:
Object A
↓
Relation
↓
Object B
SceneEngine 则把多个关系组合起来。
例如:
订单 → contains → 商品
商品 → located_in → 仓库
仓库 → managed_by → 人员
人员 → operates → 设备
SceneEngine 可以将这些关系组合成:
订单处理场景
因此:
RelationEngine→RelationFactsRelationEngine \rightarrow RelationFacts SceneEngine→SceneStructureSceneEngine \rightarrow SceneStructure
SceneEngine 不替代 RelationEngine,而是使用 RelationEngine 的结果。
190.18 SceneEngine 与 DecisionEngine
场景计算不能直接等于决策。
例如:
Scene:
订单待处理
货物已入库
仓库正常
SceneEngine 可以计算:
订单处理条件成立
但下一步究竟选择:
Method A
还是:
Method B
需要 DecisionEngine 进行候选方案计算。
因此:
SceneEngine≠DecisionEngineSceneEngine\neq DecisionEngine
正确关系是:
SceneEngine→SceneResult→DecisionEngineSceneEngine \rightarrow SceneResult \rightarrow DecisionEngine
场景为决策提供当前环境事实。
190.19 SceneEngine 与 RiskEngine
场景变化还可能产生风险。
例如:
仓库正常
→
设备停止
SceneEngine 首先检测:
SceneChanged
然后 RiskEngine 可以继续计算:
设备停止
+
订单正在处理
→
Potential Processing Risk
因此:
SceneChange→RiskDetectionSceneChange \rightarrow RiskDetection
但 SceneEngine 本身不负责风险处理。
190.20 SceneEngine 与 ConflictEngine
场景中的多个对象、状态和条件也可能产生冲突。
例如:
订单要求立即处理
同时:
设备状态 = 不可用
场景中同时存在:
Goal Requirement
+
Resource Unavailable
SceneEngine 可以计算并提供:
Current Scene Fact
ConflictEngine 再判断:
Goal Conflict
因此:
SceneEngine→ConflictEngineSceneEngine \rightarrow ConflictEngine
而不是由 SceneEngine 直接解决冲突。
190.21 SceneEngine 与 Runtime
Runtime 表示当前运行环境:
Runtime=(I,O,S,C,T,E)Runtime=(I,O,S,C,T,E)
Scene 则是 Runtime 中与当前认知过程相关的结构化环境。
可以表示为:
Runtime→Scene→SceneCalculationRuntime \rightarrow Scene \rightarrow SceneCalculation
也就是说:
Runtime 是当前运行事实集合,Scene 是经过结构组织后的当前环境模型。
例如 Runtime 中可能包含:
Individual
Objects
States
Events
Time
Execution
SceneEngine 根据这些数据建立当前 Scene。
190.22 PHP OOP 工程实现
在 PHP 5.6 / 7.0 环境中,可以建立:
abstract class Engine
{
abstract public function calculate($input);
}
SceneEngine:
class SceneEngine extends Engine
{
public function calculate($input)
{
$scene = $this->buildScene($input);
if (!$this->validateScene($scene)) {
return new EngineResult(
false,
$scene,
'scene_invalid'
);
}
$calculation = $this->calculateScene($scene);
$change = $this->calculateChange(
isset($input['previous_scene'])
? $input['previous_scene']
: null,
$scene
);
return new EngineResult(
true,
array(
'scene' => $scene,
'calculation' => $calculation,
'change' => $change
),
'scene_calculated'
);
}
protected function buildScene($input)
{
return array(
'objects' => isset($input['objects'])
? $input['objects']
: array(),
'states' => isset($input['states'])
? $input['states']
: array(),
'relations' => isset($input['relations'])
? $input['relations']
: array(),
'conditions' => isset($input['conditions'])
? $input['conditions']
: array(),
'time' => isset($input['time'])
? $input['time']
: null
);
}
protected function validateScene($scene)
{
return !empty($scene['objects']);
}
protected function calculateScene($scene)
{
return array(
'object_count' => count($scene['objects']),
'state_count' => count($scene['states']),
'relation_count' => count($scene['relations'])
);
}
protected function calculateChange($previous, $current)
{
if ($previous === null) {
return array(
'type' => 'created'
);
}
return array(
'type' => 'compared'
);
}
}
这里的重点不是代码数量,而是职责边界。
SceneEngine:
接收事实
→
建立场景
→
验证场景
→
计算场景
→
比较场景
→
输出结果
而不是:
SceneEngine
→
直接执行数据库SQL
→
直接修改业务对象
→
直接执行行为
190.23 SceneResult
SceneEngine 应该输出结构化计算结果。
可以定义:
SR=(I,S,C,E,D,Ch,T)SR=(I,S,C,E,D,Ch,T)
其中:
- II = Input;
- SS = Scene;
- CC = Calculation;
- EE = Evidence;
- DD = Derived Facts;
- ChCh = Scene Change;
- TT = Time。
例如:
array(
'scene_id' => 1001,
'state' => 'active',
'objects' => array(10, 20, 30),
'relations' => array(101, 102),
'calculation' => array(
'order_ready' => true
),
'change' => array(
'type' => 'state_changed',
'object_id' => 20
),
'verified' => true
);
这样后续 Service 层可以直接使用 SceneResult。
190.24 SceneEngine 不负责持久化
SceneEngine 可以计算:
Scene
SceneResult
SceneChange
但数据库保存应该由:
SceneService
负责。
架构:
Controller
↓
SceneService
↓
SceneEngine
↓
ObjectEngine
StateEngine
RelationEngine
↓
EngineResult
↓
SceneService
↓
SceneRepository
↓
MySQL
这样可以保持:
Service=OrchestrationService=Orchestration Engine=ComputationEngine=Computation Repository=PersistenceRepository=Persistence
190.25 数据库结构
可以建立:
scenes
保存场景主体:
id
scene_type
state
context
time_start
time_end
created_at
updated_at
场景对象:
scene_objects
保存:
scene_id
object_id
role
state
场景关系:
scene_relations
保存:
scene_id
relation_id
relation_type
state
场景条件:
scene_conditions
保存:
scene_id
condition_type
condition_value
state
场景变化:
scene_changes
保存:
scene_id
change_type
object_id
relation_id
before_value
after_value
reason
created_at
这样可以形成:
Scene
├── Scene Objects
├── Scene Relations
├── Scene Conditions
└── Scene Changes
190.26 场景生命周期
Scene 生命周期可以定义为:
Created
↓
Initializing
↓
Ready
↓
Active
↓
Changing
↓
Active
↓
Expired
↓
Archived
异常情况:
Active
↓
Invalid
↓
Diagnosis
↓
Repair / Rebuild
↓
Ready
场景发生重大变化时,不一定必须创建新的 Scene ID。
如果只是场景内部状态变化,可以:
Scene 1001
↓
Scene Version 2
因此工程上可以同时存在:
Scene Identity
+
Scene Version
用于表示同一个场景实体在不同时间的结构状态。
190.27 场景版本
为了保存场景变化,可以定义:
Scenet→SceneVersiont+1Scene_t \rightarrow SceneVersion_{t+1}
例如:
Scene 1001
Version 1
Order = Pending
Product = Stored
Version 2
Order = Processing
Product = Stored
Version 3
Order = Completed
Product = Shipped
这样可以形成完整的:
Scene History
并可以进一步进入:
Memory
Experience
Learning
但必须注意:
Scene History 是历史事实,不等于 Experience。
190.28 场景与记忆
当一个场景实际发生之后:
Scene
→
Scene Change
→
Result
→
Feedback
→
History
→
Memory
Memory 保存的是经过筛选后有价值的场景信息。
例如:
某类订单
+
某类仓库状态
+
某种设备状态
→
某种处理结果
经过多次实际验证后,才可能形成:
Experience
因此:
Scene≠MemoryScene \neq Memory Scene≠ExperienceScene \neq Experience
Scene 是当前或历史环境结构;Memory 是保留的信息;Experience 是从历史和记忆中形成的结构化经验。
190.29 场景与学习
SceneEngine 本身不学习。
它只负责:
当前事实
→
当前场景
→
场景计算
→
场景变化
LearningService 才负责根据已经验证的历史事实更新:
Knowledge
Capability
Method
Learning Data
因此:
SceneEngine≠LearningEngineSceneEngine\neq LearningEngine
正确关系是:
Scene→Result→Feedback→History→Memory→Experience→LearningScene \rightarrow Result \rightarrow Feedback \rightarrow History \rightarrow Memory \rightarrow Experience \rightarrow Learning
190.30 场景计算的确定性原则
ICAI 的 SceneEngine 必须遵循确定性计算原则。
相同输入:
InputtInput_t
在相同规则:
RuleRule
和相同条件:
ConditionCondition
下,应得到相同计算结果:
F(Input,Rule,Condition)=ResultF(Input,Rule,Condition)=Result
不能通过:
随机生成
或者:
大模型自由生成
决定场景。
SceneEngine 不使用:
- LLM;
- Transformer;
- Embedding;
- Vector Search;
- Prompt Engineering;
- Neural Network;
- LLM API;
- 生成式大模型机制。
其核心计算来源是:
Object
+
State
+
Relation
+
Condition
+
Event
+
Time
+
Rule
190.31 SceneEngine 的完整计算链
SceneEngine 的完整工作流程可以表示为:
Load Runtime
↓
Load Objects
↓
Load States
↓
Load Relations
↓
Load Conditions
↓
Load Time / Position
↓
Load Events
↓
Build Scene
↓
Validate Scene
↓
Calculate Scene
↓
Compare Previous Scene
↓
Detect Scene Change
↓
Verify Scene Result
↓
Return SceneResult
如果场景变化:
Scene Change
↓
Risk Detection
↓
Conflict Detection
↓
Decision Re-evaluation
如果场景恢复:
Repair
↓
Verification
↓
Scene Rebuild
↓
Scene Recalculation
190.32 SceneEngine 在 ICAI 中的位置
至此,ObjectEngine、StateEngine、RelationEngine 和 SceneEngine 可以形成一个逐级结构:
ObjectEngine
↓
Object Fact
↓
StateEngine
↓
State Fact
↓
RelationEngine
↓
Relation Fact
↓
SceneEngine
↓
Scene Structure
↓
Scene Calculation
↓
Scene Change
↓
DecisionEngine
四者分别解决四个不同层级的问题:
| Engine | 核心问题 |
|---|---|
| ObjectEngine | 对象是什么? |
| StateEngine | 对象现在是什么状态? |
| RelationEngine | 对象之间是什么关系? |
| SceneEngine | 这些对象、状态、关系共同构成什么场景? |
因此形成:
Object→State→Relation→SceneObject \rightarrow State \rightarrow Relation \rightarrow Scene
这也是 ICAI 从“单个对象认知”进入“环境整体认知”的关键一步。
190.33 场景驱动的认知闭环
完整的 ICAI 场景认知过程可以表示为:
Runtime→Object→State→Relation→Scene→Calculation→Change→DecisionRuntime \rightarrow Object \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Calculation \rightarrow Change \rightarrow Decision
执行之后:
Decision→Behavior→Action→Execution→Result→FeedbackDecision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback
然后:
Feedback→History→Memory→Experience→LearningFeedback \rightarrow History \rightarrow Memory \rightarrow Experience \rightarrow Learning
最终:
Learning→Knowledge→Capability→Method→DecisionLearning \rightarrow Knowledge \rightarrow Capability \rightarrow Method \rightarrow Decision
形成:
当前环境
↓
对象
↓
状态
↓
关系
↓
场景
↓
场景计算
↓
场景变化
↓
决策
↓
行为
↓
执行
↓
结果
↓
反馈
↓
记忆
↓
经验
↓
学习
↓
知识 / 能力 / 方法更新
↓
重新进入场景计算
190.34 本章小结
SceneEngine 解决的是 ICAI 中从“对象认知”向“环境整体认知”过渡的问题。
ObjectEngine 计算对象:
ObjectObject
StateEngine 计算状态:
StateState
RelationEngine 计算关系:
RelationRelation
SceneEngine 则把三者以及时间、条件、位置和事件组织起来:
Scene=Object+State+Relation+ContextScene= Object+ State+ Relation+ Context
其三个核心职责为:
SceneEngine=SceneBuilding+SceneCalculation+SceneChangeSceneEngine= SceneBuilding+ SceneCalculation+ SceneChange
其中:
场景建立解决“当前环境由什么组成”。
场景计算解决“当前环境能够确定什么事实”。
场景变化解决“当前环境与之前相比发生了什么变化”。
最终形成:
Object→State→Relation→Scene→DecisionObject \rightarrow State \rightarrow Relation \rightarrow Scene \rightarrow Decision
因此,SceneEngine 并不是一个简单的场景管理模块,而是 ICAI 从“对象级计算”进入“环境级计算”的核心 Engine。
它使 ICAI 能够在不依赖大模型、神经网络和生成式模型的情况下,通过对象、状态、关系、条件、事件和时间等离散事实建立动态场景,并通过场景变化推动后续的风险判断、冲突检测、决策重新计算、行为调整以及学习更新。
最终可以将本章核心关系概括为:
Scenet→Calculate→Compare→ΔScene→Scenet+1\boxed{ Scene_t \rightarrow Calculate \rightarrow Compare \rightarrow \Delta Scene \rightarrow Scene_{t+1} }
这构成了 ICAI 环境认知的基本动态计算机制。