第200章 ActionEngine
200.1 ActionEngine定义
在ICAI认知工程体系中,BehaviorEngine负责将已经选择的方法组织成为一个可执行的行为结构,而Behavior内部由一个或多个具体Action组成。
ActionEngine则进一步负责单个动作的计算、动作执行过程的协调以及动作结果的形成。
因此:
ActionEngine=ActionCalculation+ActionExecution+ActionResultActionEngine=ActionCalculation+ActionExecution+ActionResult
即:
ActionEngine = 动作计算 + 动作执行 + 动作结果
ActionEngine解决的不是“应该选择哪个方法”,也不是“应该执行哪一个完整行为”,而是:
当前这个具体动作是什么、是否可以执行、如何执行、执行之后实际发生了什么。
因此,ActionEngine处于BehaviorEngine与ExecutionEngine之间。
整体关系为:
DecisionEngine
↓
BehaviorEngine
↓
ActionEngine
↓
ExecutionEngine
↓
Result
↓
FeedbackEngine
其中:
- DecisionEngine:选择;
- BehaviorEngine:组织行为;
- ActionEngine:计算并组织具体动作;
- ExecutionEngine:执行实际运行过程;
- Result:记录实际结果;
- FeedbackEngine:处理执行反馈。
200.2 Action基本概念
Action是能够产生明确操作效果的最小执行单元之一。
可以定义:
A=(T,O,C,P,R,S)A=(T,O,C,P,R,S)
其中:
- TT:Action Type,动作类型;
- OO:Object,动作作用对象;
- CC:Condition,动作条件;
- PP:Parameter,动作参数;
- RR:Expected Result,预期结果;
- SS:State,动作状态。
例如:
读取对象
更新属性
创建对象
删除对象
修改状态
建立关系
解除关系
执行方法步骤
发送系统事件
保存数据
调用服务
都可以被建模为Action。
Action不是抽象目标。
例如:
Goal:
完成订单处理
Behavior:
订单处理行为
Action:
读取订单
检查库存
修改订单状态
生成处理记录
因此:
Goal ≠ Behavior ≠ Action
Goal描述目标。
Behavior描述完整行为。
Action描述具体动作。
200.3 ActionEngine与BehaviorEngine
BehaviorEngine负责整个行为。
ActionEngine负责行为中的具体动作。
例如:
Behavior:
处理一个订单
Action 1:
读取订单
Action 2:
读取库存
Action 3:
检查库存状态
Action 4:
修改订单状态
Action 5:
保存处理结果
BehaviorEngine负责:
Action1 → Action2 → Action3 → Action4 → Action5
ActionEngine负责:
Action1 → Calculate → Execute → Result
Action2 → Calculate → Execute → Result
Action3 → Calculate → Execute → Result
...
因此:
BehaviorEngine=Action组织BehaviorEngine=Action组织 ActionEngine=Action计算与执行协调ActionEngine=Action计算与执行协调
两者不能混为一谈。
200.4 ActionEngine核心模型
ActionEngine可以定义为:
AE=(A,O,C,P,R,S,E,V,T)AE=(A,O,C,P,R,S,E,V,T)
其中:
- AA:Action;
- OO:作用对象;
- CC:执行条件;
- PP:参数;
- RR:结果;
- SS:状态;
- EE:Execution;
- VV:Verification;
- TT:Time。
因此ActionEngine的基本计算过程为:
Action
↓
Object
↓
Condition
↓
Parameter
↓
Action Calculation
↓
Action Validation
↓
Action Execution
↓
Execution Result
↓
Action Result
↓
Verification
200.5 动作计算
动作计算是ActionEngine的第一项核心能力。
动作计算不是直接执行Action,而是首先计算:
当前Action是什么、作用于谁、需要什么条件、需要什么参数、预计产生什么结果。
可以定义:
Ac=Calculate(A,O,S,C,P)A_c=Calculate(A,O,S,C,P)
其中:
- AA:原始动作;
- OO:对象;
- SS:当前状态;
- CC:条件;
- PP:参数;
- AcA_c:计算后的动作。
例如:
Action:
修改订单状态
Object:
Order#1001
Current State:
pending
Target State:
processing
ActionEngine首先计算:
Action Type = StateChange
Object = Order#1001
Current State = pending
Target State = processing
然后检查:
pending → processing
是否属于合法状态转换。
只有计算结果合法,Action才能进入执行阶段。
200.6 动作计算输入
ActionEngine的输入主要包括:
Action
Object
Current State
Condition
Parameter
Capability
Method
Behavior Context
Runtime
Rule
可以表示:
InputA=(A,O,S,C,P,K,M,B,RC,R)Input_A=(A,O,S,C,P,K,M,B,RC,R)
其中:
- KK:Knowledge;
- MM:Method;
- BB:Behavior;
- RCRC:Runtime Context;
- RR:Rule。
但是ActionEngine不应该重新进行整个决策过程。
例如:
DecisionEngine已经选择Method A
ActionEngine不能重新问:
是否应该选择Method B?
它只负责:
Method A
↓
当前Action
↓
Action计算
↓
Action执行
200.7 动作对象计算
Action必须明确作用对象。
因此:
ActionTarget=(Action,Object)ActionTarget=(Action,Object)
如果没有明确作用对象,则Action可能无法执行。
例如:
修改状态
本身是不完整的。
必须形成:
修改 Order#1001 状态
进一步形成:
Object = Order#1001
Current State = pending
Target State = processing
因此ActionEngine必须计算:
Action
↓
Target Object
↓
Target State
↓
Target Property
↓
Target Relation
200.8 动作参数计算
某些Action必须携带参数。
例如:
创建对象
修改属性
设置状态
建立关系
发送事件
调用服务
因此:
P=(N,V,T,C)P=(N,V,T,C)
其中:
- NN:参数名称;
- VV:参数值;
- TT:参数类型;
- CC:参数条件。
例如:
Action:
修改订单金额
Parameter:
amount = 500
ActionEngine必须首先检查:
Parameter Exists
Parameter Type Valid
Parameter Value Valid
Parameter Condition Valid
参数不合法时:
Action Calculation
↓
Parameter Validation
↓
Invalid
↓
Action Blocked
而不能直接进入ExecutionEngine。
200.9 动作条件计算
Action是否能够执行,需要判断Action Condition。
可以定义:
ActionExecutable=CA∧OA∧SA∧PAActionExecutable=C_A \land O_A \land S_A \land P_A
其中:
- CAC_A:动作条件满足;
- OAO_A:作用对象有效;
- SAS_A:当前状态允许;
- PAP_A:参数有效。
例如:
Action:
关闭订单
Condition:
订单必须处于 processing 状态
如果当前:
Order State = cancelled
则:
ActionExecutable = false
ActionEngine应返回:
blocked
而不是强制执行。
200.10 动作状态
Action自身也需要状态。
可以定义:
Created
↓
Calculated
↓
Ready
↓
Running
↓
Completed
异常状态:
Calculated → Blocked
Ready → Cancelled
Running → Failed
Running → Interrupted
Failed → Retry
因此:
SA∈{Created,Calculated,Ready,Running,Completed,Failed,Blocked,Cancelled,Interrupted}S_A\in \{ Created, Calculated, Ready, Running, Completed, Failed, Blocked, Cancelled, Interrupted \}
Action状态必须来自实际事实或者合法状态转换规则。
200.11 动作验证
Action执行之前必须进行验证。
可以定义:
ValidAction=Object∧Condition∧Parameter∧State∧Capability∧RuleValidAction= Object \land Condition \land Parameter \land State \land Capability \land Rule
只有验证通过,Action才可以进入执行阶段。
例如:
Action
↓
Object Check
↓
Condition Check
↓
Parameter Check
↓
State Check
↓
Capability Check
↓
Rule Check
↓
Ready
任何一个必要条件失败,都可以使Action进入:
Blocked
或者:
Invalid
200.12 动作执行
动作执行是ActionEngine第二项核心能力。
但需要明确:
ActionEngine负责动作执行的协调与执行条件控制,真正的运行时执行由ExecutionEngine负责。
因此:
ActionEngine
↓
ExecutionEngine
↓
Runtime
↓
Actual Execution
ActionEngine不应该把“动作定义”和“实际运行过程”混为一体。
例如:
Action:
修改订单状态
这是动作定义。
而:
Execution:
2026-09-11 13:20:01
Order#1001
pending → processing
执行成功
才是实际执行记录。
200.13 Action与Execution的区别
Action:
应该执行什么操作。
Execution:
这个操作实际运行了什么过程。
因此:
Action≠ExecutionAction\neq Execution
例如:
Action:
保存订单
Execution:
调用OrderRepository
写入数据库
返回 affected_rows = 1
Action是操作定义。
Execution是运行事实。
这一区分对于ICAI系统非常重要。
200.14 动作执行流程
ActionEngine的执行流程可以定义为:
Load Action
↓
Calculate Action
↓
Validate Action
↓
Check Condition
↓
Check Object
↓
Check State
↓
Check Parameter
↓
Create Execution
↓
ExecutionEngine
↓
Actual Execution
↓
Receive Execution Result
↓
Calculate Action Result
↓
Verify Result
因此完整公式为:
Action→Calculation→Validation→Execution→Result→VerificationAction \rightarrow Calculation \rightarrow Validation \rightarrow Execution \rightarrow Result \rightarrow Verification
200.15 动作执行状态
ActionEngine必须根据Execution状态更新Action状态。
例如:
Execution = Running
↓
Action = Running
执行完成:
Execution = Completed
↓
Action = Completed
执行失败:
Execution = Failed
↓
Action = Failed
执行被阻止:
Execution = Blocked
↓
Action = Blocked
因此:
SA=f(SE,C,R)S_A=f(S_E,C,R)
其中:
- SAS_A:Action状态;
- SES_E:Execution状态;
- CC:Condition;
- RR:Rule。
200.16 动作结果
Action执行之后必须产生Action Result。
可以定义:
AR=(A,E,R,S,C,V,T)AR=(A,E,R,S,C,V,T)
其中:
- AA:Action;
- EE:Execution;
- RR:实际结果;
- SS:最终状态;
- CC:执行条件;
- VV:Verification;
- TT:时间。
Action Result必须描述:
执行了什么
作用于谁
什么时候执行
执行状态
产生什么结果
是否符合预期
是否验证通过
200.17 预期结果与实际结果
Action本身可以存在Expected Result。
例如:
Action:
修改订单状态
Expected Result:
pending → processing
实际执行后可能产生:
Actual Result:
pending → processing
也可能:
Actual Result:
pending → failed
因此:
Comparison=Compare(Expected,Actual)Comparison=Compare(Expected,Actual)
比较结果可以是:
Equal
Partial
Different
Failed
Unknown
不能仅仅使用:
true / false
代替全部结果信息。
200.18 Action完成与Result完成
Action进入Completed状态,不代表上层Goal已经完成。
例如:
Goal:
完成订单处理
其中:
Action1:
读取订单
Action2:
检查库存
Action3:
修改状态
Action4:
保存结果
即使:
Action4 = Completed
也只能说明:
一个具体动作完成。
不能直接说明:
整个Goal完成。
因此:
ActionCompleted≠BehaviorCompletedActionCompleted\neq BehaviorCompleted BehaviorCompleted≠GoalCompletedBehaviorCompleted\neq GoalCompleted
最终Goal是否完成,需要GoalService与Verification体系判断。
200.19 ActionResult与Feedback
ActionResult记录动作执行产生的实际结果。
Feedback则对实际结果进行进一步处理。
因此:
Action
↓
Execution
↓
ActionResult
↓
Feedback
ActionResult回答:
实际发生了什么?
Feedback回答:
这个结果说明了什么?是否与预期一致?是否需要更新状态、记忆、经验或决策?
所以:
Result≠FeedbackResult\neq Feedback
200.20 动作失败
Action执行可能失败。
例如:
Action
↓
Execution
↓
Failed
此时ActionEngine不能直接认为:
Capability = Invalid
也不能直接认为:
Method = Invalid
应该首先形成:
Action Failure
↓
Result
↓
Feedback
↓
Abnormality
↓
DiagnosisEngine
由DiagnosisEngine进一步分析:
Object Problem
State Problem
Parameter Problem
Resource Problem
Method Problem
Environment Problem
Execution Problem
200.21 动作重试
Action失败后可以存在Retry候选。
例如:
Action Failed
↓
Diagnosis
↓
Retry Candidate
↓
Decision
↓
Action Retry
因此ActionEngine不应该自行无限重试。
重试是否允许,需要由:
RiskEngine
DecisionEngine
MethodEngine
DiagnosisEngine
共同提供约束。
ActionEngine负责执行已经确定的Retry Action。
200.22 动作取消
Action在Ready或Running阶段可能被取消。
例如:
Ready → Cancelled
或者:
Running → Interrupted → Cancelled
取消原因必须记录:
Action ID
Cancel Reason
Source
Time
Current State
Execution State
取消不是失败。
因此:
Cancelled≠FailedCancelled\neq Failed
200.23 动作暂停
部分Action允许暂停。
例如:
Running
↓
Paused
↓
Resumed
↓
Running
但是并不是所有Action都允许暂停。
因此需要:
Action Type
+
Capability
+
Execution Rule
+
State Rule
共同确定:
CanPause(Action)
200.24 ActionEngine与ExecutionEngine
两者关系必须明确。
| 模块 | 主要职责 |
|---|---|
| ActionEngine | 动作计算、条件检查、动作组织、结果形成 |
| ExecutionEngine | 实际运行过程 |
| Result | 保存实际结果 |
| FeedbackEngine | 处理结果反馈 |
例如:
ActionEngine:
“执行修改订单状态这个动作”
ExecutionEngine:
“真正执行数据库状态修改”
Result:
“数据库实际返回修改成功”
FeedbackEngine:
“判断该结果是否符合预期”
因此:
ActionEngine≠ExecutionEngineActionEngine\neq ExecutionEngine
200.25 ActionEngine与StateEngine
Action可能导致对象状态变化。
例如:
Action:
修改订单状态
Before:
pending
After:
processing
ActionEngine负责:
Action Calculation
StateEngine负责:
State Transition Calculation
所以:
ActionEngine
↓
StateEngine
↓
State Transition
最终状态是否合法,需要StateEngine判断。
200.26 ActionEngine与ObjectEngine
Action通常作用于Object。
例如:
Object:
Order#1001
Action:
UpdateStatus
ObjectEngine负责对象计算。
ActionEngine负责对对象执行动作。
因此:
ObjectEngine
↓
Object Facts
↓
ActionEngine
↓
Action
ActionEngine不能随意修改没有经过对象规则验证的事实。
200.27 ActionEngine与RelationEngine
部分Action是关系操作。
例如:
建立关系
解除关系
修改关系状态
例如:
User
↓
buys
↓
Product
建立关系Action:
CreateRelation(User, buys, Product)
ActionEngine负责形成动作并执行。
RelationEngine负责计算:
Relation是否合法
Relation类型是否正确
Source是否有效
Target是否有效
Condition是否满足
因此:
ActionEngine
↓
RelationEngine
↓
RelationService
200.28 ActionEngine与RiskEngine
执行Action之前可能存在风险。
例如:
Action:
删除对象
该动作可能产生:
Data Loss Risk
Reference Conflict
Dependency Conflict
因此:
Action
↓
RiskEngine
↓
Risk Evaluation
↓
Decision
↓
Action
ActionEngine可以接收RiskEngine给出的:
Allowed
Restricted
Blocked
NeedVerification
NeedConfirmation
但ActionEngine本身不负责风险排序。
200.29 ActionEngine与ConflictEngine
Action之间可能产生冲突。
例如:
Action1:
修改状态为 Active
Action2:
修改状态为 Archived
如果两个Action作用于同一个对象并且不能同时成立,则:
Action Conflict
ConflictEngine负责:
Conflict Detection
Conflict Classification
Conflict Evaluation
ActionEngine负责执行最终已经确定的Action。
200.30 ActionEngine与DiagnosisEngine
Action失败后,ActionEngine记录:
Action
Execution
Result
State
DiagnosisEngine再分析:
为什么失败?
例如:
Action Failed
↓
DiagnosisEngine
↓
Parameter Error
或者:
Action Failed
↓
DiagnosisEngine
↓
Object State Invalid
或者:
Action Failed
↓
DiagnosisEngine
↓
Resource Unavailable
因此:
ActionResult=WhatActionResult=What Diagnosis=WhyDiagnosis=Why
200.31 ActionEngine与BehaviorEngine的完整关系
完整行为结构:
Decision
↓
Behavior
↓
Action1
↓
Execution
↓
Result
↓
Action2
↓
Execution
↓
Result
↓
Action3
↓
Execution
↓
Result
↓
Behavior Result
BehaviorEngine控制整个行为结构。
ActionEngine控制每一个Action。
ExecutionEngine负责每一个实际运行过程。
因此:
BehaviorEngine→ActionEngine→ExecutionEngineBehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
形成三级执行结构。
200.32 ActionEngine计算结果
ActionEngine应该返回结构化EngineResult。
可以定义:
ERA=(I,O,C,E,R,S,V,T)ER_A=(I,O,C,E,R,S,V,T)
其中:
- II:Input;
- OO:Output;
- CC:Calculation;
- EE:Evidence;
- RR:Result;
- SS:State;
- VV:Verification;
- TT:Time。
例如:
Input:
Action#1001
Calculation:
Object valid
Condition valid
Parameter valid
State valid
Execution:
Execution#2001
Result:
status changed
State:
Completed
Verification:
Verified
200.33 PHP OOP中的ActionEngine
在PHP OOP工程中,可以建立:
abstract class Engine
{
abstract public function calculate($input);
}
ActionEngine:
class ActionEngine extends Engine
{
public function calculate($input)
{
$action = $input['action'];
$object = $input['object'];
$state = $input['state'];
$params = $input['params'];
if (!$this->validateObject($object)) {
return $this->blocked('object_invalid');
}
if (!$this->validateCondition($action, $object, $state)) {
return $this->blocked('condition_invalid');
}
if (!$this->validateParameters($action, $params)) {
return $this->blocked('parameter_invalid');
}
return array(
'status' => 'ready',
'action' => $action,
'object' => $object,
'state' => $state,
'params' => $params
);
}
protected function validateObject($object)
{
return !empty($object);
}
protected function validateCondition($action, $object, $state)
{
return true;
}
protected function validateParameters($action, $params)
{
return is_array($params);
}
protected function blocked($reason)
{
return array(
'status' => 'blocked',
'reason' => $reason
);
}
}
这里的代码用于表达Engine的对象边界和计算结构。
其中的具体规则必须由实际项目中的Action类型、状态规则、参数规则和执行环境确定,不能把示例中的true理解为已经完成实际业务验证。
200.34 ActionExecution对象
为了区分Action和Execution,可以建立:
class Action
{
protected $id;
protected $type;
protected $objectId;
protected $condition;
protected $parameters;
protected $expectedResult;
protected $state;
}
Execution:
class Execution
{
protected $id;
protected $actionId;
protected $startTime;
protected $endTime;
protected $state;
protected $result;
protected $error;
}
两者形成:
Action
↓
Execution
↓
Result
200.35 ActionResult对象
ActionResult可以建立:
class ActionResult
{
protected $actionId;
protected $executionId;
protected $expected;
protected $actual;
protected $state;
protected $verification;
protected $time;
}
其核心不是简单:
true
而是保存完整的实际结果。
例如:
array(
'action_id' => 1001,
'execution_id' => 2001,
'expected' => 'processing',
'actual' => 'processing',
'state' => 'completed',
'verification' => 'verified'
);
200.36 ActionEngine与Service层
ActionEngine属于Engine层。
ActionService属于Service层。
二者关系:
ActionController
↓
ActionService
↓
ActionEngine
↓
ExecutionEngine
↓
ActionResult
↓
ActionRepository
ActionService负责:
加载Action
建立Runtime
调用ActionEngine
调用ExecutionEngine
保存Result
协调StateService
协调FeedbackService
ActionEngine负责:
计算
判断
验证
输出
因此:
Service=OrchestrationService=Orchestration Engine=CalculationEngine=Calculation
200.37 ActionEngine与Repository
ActionEngine原则上不直接操作MySQL。
正确结构:
ActionService
↓
ActionEngine
↓
ActionResult
↓
ActionService
↓
ActionRepository
↓
MySQL
Repository负责:
findAction()
saveAction()
saveExecution()
saveResult()
findHistory()
Engine不应该承担数据库持久化职责。
200.38 Action数据库结构
可以建立:
actions
保存动作定义。
主要字段可以包括:
id
type
object_id
condition_id
parameters
expected_result
state
created_at
updated_at
Execution:
executions
保存实际执行。
Result:
action_results
保存动作结果。
History:
action_history
保存动作历史。
形成:
actions
↓
executions
↓
action_results
↓
action_history
200.39 Action与ActionHistory
ActionHistory记录动作实际发生过什么。
例如:
Action Created
Action Calculated
Action Ready
Action Running
Action Completed
或者:
Action Running
Action Failed
Action Diagnosed
Action Retried
Action Completed
因此:
History={h1,h2,…,hn}History=\{h_1,h_2,…,h_n\}
History记录事实。
Memory与Experience则可以进一步从History中形成可复用信息。
200.40 动作结果与学习
ActionResult本身不是Learning。
但是:
Action Result
↓
Feedback
↓
History
↓
Memory
↓
Experience
↓
Learning
LearningService可以根据经过验证的Action历史更新:
Knowledge
Capability
Method
例如长期观察发现:
某Action在某状态下持续失败
不能直接修改Capability。
必须经过:
Evidence
↓
Comparison
↓
Diagnosis
↓
Verification
↓
Learning
之后才可以产生更新候选。
200.41 动作计算的确定性
ICAI的ActionEngine必须坚持确定性和可解释性。
对于相同:
Action
Object
State
Condition
Parameter
Rule
Runtime
在相同规则环境下,应得到相同的计算结果。
即:
AE(X,R)=YAE(X,R)=Y
而不是:
AE(X,R)→Random(Y)AE(X,R)\rightarrow Random(Y)
ActionEngine不能通过随机生成方式决定动作。
200.42 ActionEngine禁止替代DecisionEngine
ActionEngine不能自行进行最终决策。
例如:
Method A
Method B
Method C
哪个Method最终被选择,应由:
DecisionEngine
负责。
ActionEngine只处理:
Selected Method
↓
Selected Behavior
↓
Current Action
因此:
DecisionEngine = 选择
ActionEngine = 执行动作
不能倒置。
200.43 ActionEngine禁止替代BehaviorEngine
ActionEngine也不能自行构造整个复杂Behavior。
例如:
Behavior
├── Action1
├── Action2
├── Action3
└── Action4
ActionEngine负责Action1、Action2、Action3、Action4各自的计算和执行。
BehaviorEngine负责:
Action1 → Action2 → Action3 → Action4
之间的整体结构和顺序。
200.44 ActionEngine完整正常流程
正常执行流程:
Decision
↓
Behavior
↓
Action
↓
Object
↓
Current State
↓
Condition
↓
Parameter
↓
Action Calculation
↓
Validation
↓
Ready
↓
ExecutionEngine
↓
Actual Execution
↓
Execution Result
↓
Action Result
↓
Verification
↓
Feedback
↓
History
200.45 ActionEngine异常流程
异常情况下:
Action
↓
Calculation
↓
Validation
↓
Blocked
或者:
Action
↓
Execution
↓
Failed
↓
Result
↓
Feedback
↓
Abnormality
↓
DiagnosisEngine
↓
Repair Candidate
↓
DecisionEngine
↓
New Action
因此ActionEngine属于完整认知闭环中的执行基础层。
200.46 ActionEngine完整闭环
最终可以形成:
Goal
↓
Capability
↓
Method
↓
Decision
↓
Behavior
↓
Action
↓
Execution
↓
Result
↓
Feedback
↓
State
↓
Memory
↓
Experience
↓
Learning
↓
Knowledge / Capability / Method Update
↓
New Decision
其中Action是从认知结构进入实际执行的重要桥梁。
200.47 ActionEngine核心公式
Action计算:
Ac=Calculate(A,O,S,C,P,R)A_c=Calculate(A,O,S,C,P,R)
动作可执行:
ExecutableA=O∧C∧S∧P∧KExecutable_A= O\land C\land S\land P\land K
动作执行:
E=Execute(Ac,Runtime)E=Execute(A_c,Runtime)
动作结果:
AR=Result(A,E)AR=Result(A,E)
结果比较:
CR=Compare(Expected,Actual)C_R=Compare(Expected,Actual)
动作验证:
VA=Execution∧Result∧State∧Condition∧EvidenceV_A=Execution\land Result\land State\land Condition\land Evidence
最终形成:
Action→Calculate→Validate→Execute→Result→VerifyAction \rightarrow Calculate \rightarrow Validate \rightarrow Execute \rightarrow Result \rightarrow Verify
200.48 ActionEngine在ICAI Engine体系中的位置
目前Engine体系可以进一步形成:
ObjectEngine
↓
StateEngine
↓
RelationEngine
↓
SceneEngine
↓
KnowledgeEngine
↓
CapabilityEngine
↓
MatchingEngine
↓
MethodEngine
↓
RiskEngine
↓
ConflictEngine
↓
DecisionEngine
↓
BehaviorEngine
↓
ActionEngine
↓
ExecutionEngine
↓
FeedbackEngine
↓
DiagnosisEngine
↓
RepairEngine
↓
MemoryEngine
↓
ExperienceEngine
↓
LearningEngine
这里不是简单的线性调用关系,而是一个相互关联的Engine体系。
其中:
DecisionEngine
↓
BehaviorEngine
↓
ActionEngine
↓
ExecutionEngine
构成核心执行链。
200.49 ActionEngine工程边界
ActionEngine应明确遵守以下边界。
第一,不负责最终目标选择。
第二,不负责Method最终选择。
第三,不负责完整Behavior组织。
第四,不负责底层Execution实现。
第五,不负责数据库持久化。
第六,不负责风险最终决策。
第七,不负责冲突最终解决。
第八,不负责故障原因诊断。
第九,不负责Repair策略选择。
第十,不负责Learning本身。
ActionEngine只负责:
Action Calculation
Action Validation
Action Execution Coordination
Action Result
Action Verification
200.50 ActionEngine与非大模型ICAI原则
ActionEngine完全可以通过传统程序工程实现。
其核心机制包括:
PHP OOP
Rule
Condition
Object
State
Relation
Parameter
Discrete Calculation
State Transition
Execution
Result
Verification
History
不需要:
LLM
Transformer
Embedding
Vector Search
Prompt Engineering
Neural Network
LLM API
Generative Model
因此ActionEngine不是一个生成式AI动作执行器,而是:
基于对象、状态、规则、条件、参数和实际执行结果建立的确定性动作计算与执行Engine。
200.51 ActionEngine统一模型
经过本章可以得到统一模型:
AE=(A,O,C,P,E,R,S,V,T)AE=(A,O,C,P,E,R,S,V,T)
其中:
- AA:Action;
- OO:Object;
- CC:Condition;
- PP:Parameter;
- EE:Execution;
- RR:Result;
- SS:State;
- VV:Verification;
- TT:Time。
其完整生命周期为:
Created
↓
Calculated
↓
Validated
↓
Ready
↓
Running
↓
Completed
↓
Verified
异常路径:
Calculated → Blocked
Ready → Cancelled
Running → Failed
Failed → Diagnosis
Diagnosis → Repair
Repair → New Action
200.52 本章总结
第200章建立了ICAI的ActionEngine。
ActionEngine解决的是一个非常具体的问题:
已经确定需要执行某个动作之后,如何计算这个动作、判断这个动作是否可以执行、协调实际执行,并形成可验证的动作结果。
其核心结构为:
ActionEngine=ActionCalculation+ActionExecution+ActionResultActionEngine= ActionCalculation+ ActionExecution+ ActionResult
完整执行关系为:
Decision
↓
Behavior
↓
Action
↓
Action Calculation
↓
Action Validation
↓
ExecutionEngine
↓
Actual Execution
↓
Action Result
↓
Verification
↓
Feedback
因此在ICAI体系中:
DecisionEngine负责“选什么”
BehaviorEngine负责“组织怎么做”
ActionEngine负责“具体做什么动作”
ExecutionEngine负责“实际运行”
Result负责“实际发生了什么”
FeedbackEngine负责“这个结果意味着什么”
DiagnosisEngine负责“为什么出现异常”
LearningEngine负责“以后如何更新”
最终形成:
Decision→Behavior→Action→Execution→Result→FeedbackDecision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback
这条链路把ICAI从“认知计算”真正连接到了“实际可执行操作”,也是后续ExecutionEngine、FeedbackEngine以及完整运行时体系建立的基础。