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

第200章 ActionEngine

第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以及完整运行时体系建立的基础。

Leave a Reply

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