第265章 行为Runtime
265.1 行为Runtime定义
在个体Runtime完成个体加载、认知Runtime完成认知计算、匹配Runtime完成能力匹配、决策Runtime完成方案选择之后,机器个体必须进入实际行为阶段。
行为Runtime(Behavior Runtime)是机器个体在运行过程中,根据已经形成的决策结果组织行为、执行动作、获得执行结果,并根据执行结果改变对象或自身状态的运行环境。
因此,行为Runtime不是单纯的“执行程序”,而是一个完整的行为运行过程:
BehaviorRuntime={Behavior,Action,Execution,Result,StateChange}BehaviorRuntime= \{Behavior,Action,Execution,Result,StateChange\}
其中:
- Behavior:行为,表示机器个体准备实施的完整行为过程;
- Action:动作,表示行为中的具体执行步骤;
- Execution:执行,表示动作实际发生的过程;
- Result:结果,表示动作或行为执行后的实际结果;
- StateChange:状态变化,表示执行前后的状态差异。
行为Runtime的基本流程为:
DecisionResult→Behavior→Action→Execution→Result→StateChangeDecisionResult \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
如果执行结果还需要反馈给认知、学习和维护系统,则进一步形成:
StateChange→Feedback→Memory→LearningStateChange \rightarrow Feedback \rightarrow Memory \rightarrow Learning
因此,行为Runtime是决策Runtime与学习Runtime、维护Runtime之间的重要连接层。
265.2 行为
行为(Behavior)是机器个体为了完成某一目标,根据决策结果组织的一组具有目的性的动作过程。
行为不是单个动作。
例如:
完成设备故障诊断
可以形成一个行为:
Behavior=DiagnoseDeviceFaultBehavior=DiagnoseDeviceFault
该行为可能包含:
Behavior→Action1→Action2→Action3Behavior \rightarrow Action_1 \rightarrow Action_2 \rightarrow Action_3
例如:
行为:设备故障诊断
动作1:读取温度
动作2:读取压力
动作3:比较检测结果
动作4:形成诊断结果
因此:
Behavior≠ActionBehavior\neq Action
行为回答:
要完成什么行为过程?
动作回答:
具体执行什么操作?
行为可以定义为:
Behavior={ID,Individual,Goal,Method,Actions,Condition,State}Behavior= \{ID,Individual,Goal,Method,Actions,Condition,State\}
其中:
ID:行为标识;Individual:执行行为的机器个体;Goal:行为目标;Method:采用的方法;Actions:动作集合;Condition:执行条件;State:行为当前状态。
265.3 行为与决策Runtime的连接
行为Runtime不是自行产生最终决策。
它接收DecisionRuntime产生的决策结果。
基本关系:
DecisionRuntime→DecisionResult→BehaviorRuntimeDecisionRuntime \rightarrow DecisionResult \rightarrow BehaviorRuntime
其中:
DecisionResult={Method,Goal,Condition,Reason,Status}DecisionResult= \{Method,Goal,Condition,Reason,Status\}
例如:
Goal:
完成设备故障诊断
Method:
Method-B
Decision:
Approved
行为Runtime根据这个结果建立行为:
DecisionResult
↓
Behavior
↓
Action List
因此:
Decision≠BehaviorDecision\neq Behavior
决策回答:
选择什么方案?
行为回答:
按照这个方案实施什么行为?
265.4 动作
动作(Action)是行为Runtime中能够被实际执行的最小操作单位之一。
例如:
读取温度
读取压力
读取设备状态
写入诊断结果
更新设备状态
可以分别形成动作对象。
动作可以表示为:
Action={ID,BehaviorID,Subject,Object,Operation,Condition,Result,State}Action= \{ID,BehaviorID,Subject,Object,Operation,Condition,Result,State\}
例如:
Action-001
Subject:ICAI-001
Object:TemperatureSensor
Operation:ReadTemperature
Condition:SensorAvailable
动作执行之后产生:
ActionResultActionResult
因此:
Action→Execution→ActionResultAction \rightarrow Execution \rightarrow ActionResult
需要严格区分:
Action≠ExecutionAction\neq Execution
动作是“执行什么”,执行是“实际执行这个动作的过程”。
265.5 行为与动作的关系
一个行为可以包含一个或者多个动作:
Behavior={Action1,Action2,…,Actionn}Behavior=\{Action_1,Action_2,\ldots,Action_n\}
例如:
BehaviorDiagnosis={ReadTemperature,ReadPressure,Diagnose}Behavior_{Diagnosis} = \{ReadTemperature,ReadPressure,Diagnose\}
形成:
Behavior
│
├── Action 1
│ └── ReadTemperature
│
├── Action 2
│ └── ReadPressure
│
└── Action 3
└── Diagnose
动作可以按照顺序执行:
Action1→Action2→Action3Action_1 \rightarrow Action_2 \rightarrow Action_3
也可以根据条件决定下一动作:
Actioni→ConditionActioni+1Action_i \xrightarrow{Condition} Action_{i+1}
因此行为Runtime实际上是一个动作执行状态机。
265.6 执行
执行(Execution)表示Action真正进入运行过程。
执行不是动作定义本身,而是动作从“准备执行”进入“实际运行”的过程。
执行状态可以定义为:
Pending
↓
Ready
↓
Executing
↓
Completed
异常情况下:
Pending
↓
Ready
↓
Executing
↓
Failed
因此:
ExecutionState∈{Pending,Ready,Executing,Completed,Failed,Cancelled}ExecutionState\in \{Pending,Ready,Executing,Completed,Failed,Cancelled\}
一个执行对象可以表示为:
Execution={ID,ActionID,Status,StartTime,EndTime,Input,Output,Error}Execution= \{ID,ActionID,Status,StartTime,EndTime,Input,Output,Error\}
例如:
Action:
ReadTemperature
Execution:
Executing
Input:
TemperatureSensor-01
Output:
82
Status:
Completed
这里:
Action = ReadTemperature
Execution = 实际执行 ReadTemperature
Result = 82
三者不能混淆:
Action≠Execution≠ResultAction\neq Execution\neq Result
265.7 动作执行过程
行为Runtime执行一个动作时,可以形成如下过程:
LoadAction→ValidateCondition→StartExecution→Execute→CollectResult→UpdateStateLoadAction \rightarrow ValidateCondition \rightarrow StartExecution \rightarrow Execute \rightarrow CollectResult \rightarrow UpdateState
具体过程:
加载动作
↓
检查条件
↓
开始执行
↓
执行操作
↓
获得结果
↓
更新状态
如果条件不满足:
Condition=false⇒ExecutionBlockedCondition=false \Rightarrow ExecutionBlocked
如果动作执行失败:
ExecutionFailed⇒ActionFailedExecutionFailed \Rightarrow ActionFailed
如果动作执行成功:
ExecutionCompleted⇒ActionCompletedExecutionCompleted \Rightarrow ActionCompleted
因此行为Runtime必须保存执行状态,而不能只保存最终结果。
265.8 结果
结果(Result)是动作或者行为执行后产生的实际输出。
单个动作产生:
Action→ActionResultAction\rightarrow ActionResult
多个动作形成完整行为结果:
ActionResult1,…,ActionResultn→BehaviorResultActionResult_1,\ldots,ActionResult_n \rightarrow BehaviorResult
可以定义:
ActionResult={ActionID,Status,Value,Message,Time}ActionResult= \{ActionID,Status,Value,Message,Time\}
例如:
Action:读取温度
Status:Completed
Value:82
完整行为结果可以定义为:
BehaviorResult={BehaviorID,Status,Actions,GoalStatus,Time}BehaviorResult= \{BehaviorID,Status,Actions,GoalStatus,Time\}
例如:
Behavior:
设备故障诊断
Action 1:
Temperature = 82
Action 2:
Pressure = 7.1
Action 3:
Diagnosis = TemperatureHigh
Behavior Status:
Completed
但是:
BehaviorCompleted≠GoalCompletedBehaviorCompleted\neq GoalCompleted
行为可以执行完成,但目标可能没有完成。
例如:
行为执行完成:
是
诊断过程完成:
是
设备恢复正常:
否
因此行为Runtime必须同时记录行为执行状态和目标完成状态。
265.9 状态变化
行为Runtime最重要的结果之一,是产生状态变化。
如果执行动作之前对象状态为:
StatetState_t
执行动作之后状态为:
Statet+1State_{t+1}
则:
Statet→ActionStatet+1State_t \xrightarrow{Action} State_{t+1}
状态变化为:
StateChange=Statet+1−StatetStateChange=State_{t+1}-State_t
例如:
执行前:
DeviceState = warning
MethodState = Method-A
行为执行:
RepairMethod
执行后:
DeviceState = normal
MethodState = Method-B
于是:
Statet→Action→Statet+1State_t\rightarrow Action\rightarrow State_{t+1}
这说明行为Runtime并不是只产生页面输出,而是真正改变机器个体所管理的对象状态。
265.10 状态变化与Domain Object
状态变化最终必须作用于Domain Object。
因此:
Action→DomainObject→StateChangeAction \rightarrow DomainObject \rightarrow StateChange
例如:
$device->setState('normal');
这里改变的是Domain Object中的领域状态。
之后才可以通过Repository持久化:
DomainObject→Repository→MySQLDomainObject \rightarrow Repository \rightarrow MySQL
因此:
StateChange≠DatabaseUpdateStateChange\neq DatabaseUpdate
状态变化首先发生在领域对象中,数据库更新只是这种状态变化的持久化结果。
265.11 行为Runtime对象模型
行为Runtime可以建立如下结构:
BehaviorRuntime
│
├── Individual
│
├── DecisionResult
│
├── Behavior
│
├── Actions
│ ├── Action
│ ├── Action
│ └── Action
│
├── Executions
│
├── Results
│
└── StateChanges
形式化表示:
BR={Individual,DecisionResult,Behavior,Actions,Executions,Results,StateChanges}BR= \{ Individual, DecisionResult, Behavior, Actions, Executions, Results, StateChanges \}
其中:
Actions={A1,A2,…,An}Actions=\{A_1,A_2,\ldots,A_n\} Executions={E1,E2,…,En}Executions=\{E_1,E_2,\ldots,E_n\} Results={R1,R2,…,Rn}Results=\{R_1,R_2,\ldots,R_n\}
265.12 行为Runtime执行模型
完整行为Runtime可以表示为:
BehaviorRuntime=DecisionResult→Behavior→Action→Execution→Result→StateChangeBehaviorRuntime = DecisionResult \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
展开后:
DecisionResult
↓
建立Behavior
↓
加载Action
↓
检查Condition
↓
开始Execution
↓
执行Action
↓
产生ActionResult
↓
更新Domain Object
↓
产生StateChange
↓
形成BehaviorResult
如果存在多个动作:
Behavior→A1→A2→A3→ResultBehavior \rightarrow A_1 \rightarrow A_2 \rightarrow A_3 \rightarrow Result
如果某一个动作失败:
Ai→FailedA_i\rightarrow Failed
则Runtime需要根据行为规则决定:
停止
继续
重试
切换动作
进入维护
因此行为Runtime也可以连接自我维护Runtime。
265.13 行为状态
行为自身也具有生命周期状态:
BehaviorState∈{Created,Ready,Running,Paused,Completed,Failed,Cancelled}BehaviorState\in \{ Created, Ready, Running, Paused, Completed, Failed, Cancelled \}
状态变化:
BehaviorStatet→EventBehaviorStatet+1BehaviorState_t \xrightarrow{Event} BehaviorState_{t+1}
例如:
Created
↓
Ready
↓
Running
↓
Completed
失败:
Created
↓
Ready
↓
Running
↓
Failed
暂停:
Running
↓
Paused
↓
Running
因此:
BehaviorState≠RuntimeStateBehaviorState\neq RuntimeState
Runtime表示整个运行环境的状态,BehaviorState表示当前行为的状态。
265.14 动作状态
每一个Action也可以拥有独立状态:
ActionState∈{Pending,Ready,Executing,Completed,Failed,Skipped,Cancelled}ActionState\in \{ Pending, Ready, Executing, Completed, Failed, Skipped, Cancelled \}
例如:
Action-001 = Completed
Action-002 = Completed
Action-003 = Failed
于是:
BehaviorState=FailedBehaviorState=Failed
或者根据规则:
Action3=Failed⇒Retry(Action3)Action_3=Failed \Rightarrow Retry(Action_3)
也可能:
Action3=Failed⇒AlternativeActionAction_3=Failed \Rightarrow AlternativeAction
这就形成行为Runtime内部的条件执行机制。
265.15 行为Runtime与反馈
行为执行完成以后,并不意味着整个ICAI运行循环结束。
行为结果需要进入反馈:
BehaviorResult→FeedbackBehaviorResult \rightarrow Feedback
例如:
行为:
设备诊断
结果:
TemperatureHigh
反馈:
当前方法没有使设备恢复正常
形成:
Result→FeedbackResult \rightarrow Feedback
随后:
Feedback→Memory→Experience→LearningFeedback \rightarrow Memory \rightarrow Experience \rightarrow Learning
因此行为Runtime成为行为系统与学习系统之间的连接点。
265.16 行为Runtime与学习
行为Runtime本身不负责学习。
它负责:
Behavior→Action→ResultBehavior\rightarrow Action\rightarrow Result
学习系统负责:
Feedback→Memory→Experience→LearningFeedback\rightarrow Memory\rightarrow Experience\rightarrow Learning
二者通过反馈连接:
BehaviorRuntime→Result→Feedback→LearningRuntimeBehaviorRuntime \rightarrow Result \rightarrow Feedback \rightarrow LearningRuntime
因此:
BehaviorRuntime≠LearningRuntimeBehaviorRuntime\neq LearningRuntime
但:
BehaviorRuntime→LearningRuntimeBehaviorRuntime\rightarrow LearningRuntime
这使ICAI能够通过实际行为结果形成经验,并进一步改变未来的方法、能力或决策。
265.17 行为Runtime与自我维护
行为执行过程中也可能发现异常。
例如:
Action-001:成功
Action-002:成功
Action-003:失败
如果失败超过允许次数,则:
Detection→Risk→Diagnosis→RepairDetection \rightarrow Risk \rightarrow Diagnosis \rightarrow Repair
因此:
BehaviorRuntime→Detection→MaintenanceRuntimeBehaviorRuntime \rightarrow Detection \rightarrow MaintenanceRuntime
维护完成以后:
Repair→Verification→BehaviorRuntimeRepair \rightarrow Verification \rightarrow BehaviorRuntime
形成:
行为
↓
动作
↓
执行
↓
异常
↓
检测
↓
诊断
↓
修复
↓
验证
↓
继续行为
所以行为Runtime不仅支持正常执行,也必须能够与自我维护机制连接。
265.18 行为Runtime工程映射
理论结构可以直接映射到PHP OOP:
Behavior→BehaviorObjectBehavior \rightarrow BehaviorObject Action→ActionObjectAction \rightarrow ActionObject Execution→ExecutionObjectExecution \rightarrow ExecutionObject Result→ResultObjectResult \rightarrow ResultObject StateChange→StateChangeObjectStateChange \rightarrow StateChangeObject
例如:
class BehaviorRuntime
{
protected $individual;
protected $decisionResult;
protected $behavior;
protected $actions;
protected $executions;
protected $results;
protected $stateChanges;
public function setIndividual($individual)
{
$this->individual = $individual;
}
public function setDecisionResult($decisionResult)
{
$this->decisionResult = $decisionResult;
}
public function setBehavior($behavior)
{
$this->behavior = $behavior;
}
public function setActions($actions)
{
$this->actions = $actions;
}
public function setExecutions($executions)
{
$this->executions = $executions;
}
public function setResults($results)
{
$this->results = $results;
}
public function setStateChanges($stateChanges)
{
$this->stateChanges = $stateChanges;
}
}
这里的BehaviorRuntime只是Runtime领域对象,用于保存当前行为运行上下文。
它不是BehaviorEngine。
因此:
BehaviorRuntime≠BehaviorEngineBehaviorRuntime\neq BehaviorEngine
265.19 BehaviorEngine
真正负责行为执行计算的是BehaviorEngine。
例如:
class BehaviorEngine
{
public function execute($behavior)
{
$results = array();
foreach ($behavior['actions'] as $action) {
if (!$action['condition']) {
$results[] = array(
'action_id' => $action['id'],
'status' => 'blocked'
);
continue;
}
$results[] = array(
'action_id' => $action['id'],
'status' => 'completed',
'value' => $action['value']
);
}
return $results;
}
}
这里Engine负责行为执行计算。
因此:
BehaviorRuntime→BehaviorEngineBehaviorRuntime \rightarrow BehaviorEngine
而不是:
BehaviorRuntime=BehaviorEngineBehaviorRuntime=BehaviorEngine
265.20 BehaviorService
Service负责组织行为执行过程:
class BehaviorService
{
protected $engine;
public function __construct($engine)
{
$this->engine = $engine;
}
public function execute($runtime)
{
return $this->engine->execute(
$runtime->getBehavior()
);
}
}
因此:
BehaviorService→BehaviorEngineBehaviorService \rightarrow BehaviorEngine
Service不直接完成底层动作计算。
265.21 BehaviorController
Controller负责接收外部行为执行请求:
class BehaviorController
{
protected $service;
public function __construct($service)
{
$this->service = $service;
}
public function execute($runtime)
{
return $this->service->execute($runtime);
}
}
完整MVC调用关系:
Browser→BehaviorController→BehaviorService→BehaviorEngine→BehaviorResultBrowser \rightarrow BehaviorController \rightarrow BehaviorService \rightarrow BehaviorEngine \rightarrow BehaviorResult
如果行为导致领域对象发生变化:
BehaviorEngine→DomainObject→Repository→MySQLBehaviorEngine \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL
265.22 行为Runtime持久化
行为Runtime本身可以保存运行历史。
例如:
behavior_runtime
behavior_actions
behavior_executions
behavior_results
behavior_state_changes
关系:
BehaviorRuntime→Behavior→Action→Execution→Result→StateChangeBehaviorRuntime \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
Repository负责持久化:
Repository→MySQLRepository \rightarrow MySQL
因此:
BehaviorRuntime≠RepositoryBehaviorRuntime\neq Repository BehaviorRuntime≠MySQLBehaviorRuntime\neq MySQL
265.23 行为Runtime完整数据流
从决策到行为完成:
MatchingResult→Method→Decision→DecisionResultMatchingResult \rightarrow Method \rightarrow Decision \rightarrow DecisionResult
然后:
DecisionResult→Behavior→Action→Execution→Result→StateChangeDecisionResult \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
再进入反馈:
StateChange→Feedback→Memory→Experience→LearningStateChange \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning
完整ICAI运行链:
Cognition→Need→Goal→Capability→Matching→Method→Decision→Behavior→Action→Execution→Result→StateChange→Feedback→Memory→Experience→Learning→UpdateCognition \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update
265.24 行为Runtime与个体状态
行为不仅可以改变外部对象,也可以改变机器个体自身状态。
例如:
Individual State:
ready
执行行为:
process_task
执行期间:
running
执行结束:
completed
形成:
IndividualStatet→BehaviorIndividualStatet+1IndividualState_t \xrightarrow{Behavior} IndividualState_{t+1}
例如:
ready→running→completedready \rightarrow running \rightarrow completed
如果出现异常:
running→errorrunning \rightarrow error
如果进入维护:
error→maintenanceerror \rightarrow maintenance
因此行为Runtime可以同时管理:
个体状态
对象状态
行为状态
动作状态
执行状态
但这些状态必须保持语义上的独立。
265.25 状态变化的统一模型
设行为执行前状态为:
StS_t
动作集合为:
A={A1,A2,…,An}A=\{A_1,A_2,\ldots,A_n\}
则:
St+1=F(St,A,Condition,Rule)S_{t+1} = F(S_t,A,Condition,Rule)
如果动作按顺序执行:
S0→A1S1→A2S2→A3S3S_0 \xrightarrow{A_1} S_1 \xrightarrow{A_2} S_2 \xrightarrow{A_3} S_3
最终:
Sfinal=SnS_{final}=S_n
这就是行为Runtime产生实际状态变化的基本数学模型。
265.26 预期状态与实际状态
行为执行之前,可以定义预期状态:
ExpectedStateExpectedState
执行以后获得:
ActualStateActualState
二者比较:
StateCompare=Compare(ExpectedState,ActualState)StateCompare= Compare(ExpectedState,ActualState)
例如:
Expected:
DeviceState = normal
Actual:
DeviceState = warning
则:
ExpectedState≠ActualStateExpectedState\neq ActualState
这说明行为虽然可能已经执行完成,但是目标状态没有达到。
因此:
BehaviorCompleted≠GoalCompletedBehaviorCompleted \neq GoalCompleted
如果:
ExpectedState=ActualStateExpectedState=ActualState
则:
GoalCompleted=trueGoalCompleted=true
否则:
GoalCompleted=falseGoalCompleted=false
265.27 行为Runtime验证
行为执行结束以后必须进行验证。
Verification=F(ExpectedState,ActualState,Rule)Verification= F(ExpectedState,ActualState,Rule)
验证结果:
Success
Failed
完整过程:
Execution→Result→StateChange→VerificationExecution \rightarrow Result \rightarrow StateChange \rightarrow Verification
因此:
ExecutionCompleted≠VerificationCompletedExecutionCompleted \neq VerificationCompleted
动作执行完成只说明动作结束。
验证完成才说明系统已经确认执行结果符合要求。
265.28 行为Runtime失败处理
行为执行失败时,不应该直接等同于系统故障。
可以区分:
ActionFailure
BehaviorFailure
GoalFailure
PersistenceFailure
SystemFailure
例如:
ActionFailure≠SystemFailureActionFailure\neq SystemFailure
一个动作失败可能只是:
Method-A不适合当前条件
此时可以:
Failure→Feedback→LearningFailure \rightarrow Feedback \rightarrow Learning
或者:
Failure→Detection→Diagnosis→RepairFailure \rightarrow Detection \rightarrow Diagnosis \rightarrow Repair
因此失败本身也属于ICAI运行过程中的有效信息。
265.29 行为Runtime状态机
完整行为Runtime可以表示为:
Created
↓
DecisionLoaded
↓
BehaviorCreated
↓
ActionsLoaded
↓
ConditionChecked
↓
Executing
↓
ResultCollected
↓
StateChanged
↓
Verified
↓
Completed
异常路径:
Executing
↓
Failed
↓
Detection
↓
Diagnosis
↓
Repair
↓
Verification
↓
Resume
或者:
Failed
↓
Feedback
↓
Learning
↓
MethodUpdate
↓
NewDecision
↓
NewBehavior
因此行为Runtime不是孤立的一次性过程,而是ICAI持续运行循环中的一个核心阶段。
265.30 四级Runtime连接
截至本章,ICAI已经形成连续的Runtime结构:
第一层:IndividualRuntime
IndividualRuntimeIndividualRuntime
负责:
Individual
State
Knowledge
Capability
Goal
第二层:CognitiveRuntime
IndividualRuntime→CognitiveRuntimeIndividualRuntime \rightarrow CognitiveRuntime
负责:
Input
Object
State
Relation
Scene
Knowledge
CognitionResult
第三层:MatchingRuntime
CognitiveRuntime→MatchingRuntimeCognitiveRuntime \rightarrow MatchingRuntime
负责:
Need
Goal
Capability
Condition
Matching
MatchingResult
第四层:DecisionRuntime
MatchingRuntime→DecisionRuntimeMatchingRuntime \rightarrow DecisionRuntime
负责:
Method
Risk
Conflict
Candidate
Decision
DecisionResult
第五层:BehaviorRuntime
DecisionRuntime→BehaviorRuntimeDecisionRuntime \rightarrow BehaviorRuntime
负责:
Behavior
Action
Execution
Result
StateChange
于是形成:
IndividualRuntime→CognitiveRuntime→MatchingRuntime→DecisionRuntime→BehaviorRuntimeIndividualRuntime \rightarrow CognitiveRuntime \rightarrow MatchingRuntime \rightarrow DecisionRuntime \rightarrow BehaviorRuntime
这五个Runtime共同构成机器个体从“存在”到“认知”、从“匹配”到“决策”、从“决策”到“行为执行”的连续运行结构。
265.31 行为Runtime与完整ICAI循环
行为Runtime执行完成后,结果不会停止在Behavior层。
完整循环继续向后运行:
Behavior→Action→Execution→Result→StateChangeBehavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
然后:
Result→Feedback→Memory→Experience→Learning→UpdateResult \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update
更新之后再次进入认知:
Update→CognitionUpdate \rightarrow Cognition
最终形成:
Cognition→Need→Goal→Capability→Matching→Method→Decision→Behavior→Action→Execution→Result→StateChange→Feedback→Memory→Experience→Learning→Update→CognitionCognition \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange \rightarrow Feedback \rightarrow Memory \rightarrow Experience \rightarrow Learning \rightarrow Update \rightarrow Cognition
这不是生成式模型循环,而是由对象、状态、关系、规则、方法、结果、记忆和经验构成的离散计算循环。
265.32 行为Runtime与MVC
行为Runtime进入Web管理系统时,可以采用统一MVC结构:
Browser→BehaviorController→BehaviorService→BehaviorEngine→BehaviorRuntimeBrowser \rightarrow BehaviorController \rightarrow BehaviorService \rightarrow BehaviorEngine \rightarrow BehaviorRuntime
执行结果:
BehaviorRuntime→BehaviorResult→Controller→ViewData→Smarty→HTMLBehaviorRuntime \rightarrow BehaviorResult \rightarrow Controller \rightarrow ViewData \rightarrow Smarty \rightarrow HTML
如果需要持久化:
BehaviorRuntime→DomainObject→Repository→MySQLBehaviorRuntime \rightarrow DomainObject \rightarrow Repository \rightarrow MySQL
因此完整结构为:
Browser
↓
Controller
↓
Service
↓
BehaviorEngine
↓
BehaviorRuntime
↓
Behavior
↓
Action
↓
Execution
↓
Result
↓
StateChange
↓
DomainObject
↓
Repository
↓
MySQL
页面展示则沿另一方向返回:
Result
↓
ViewData
↓
Smarty
↓
HTML
↓
Browser
265.33 行为Runtime与Smarty
Smarty仍然只负责表现层。
因此:
BehaviorRuntime≠SmartyBehaviorRuntime\neq Smarty
行为Runtime产生:
BehaviorResultBehaviorResult
Controller将其转换成:
ViewDataViewData
然后:
ViewData→Smarty→HTMLViewData \rightarrow Smarty \rightarrow HTML
例如页面可以显示:
当前行为:设备故障诊断
行为状态:Completed
动作:
1. ReadTemperature —— Completed
2. ReadPressure —— Completed
3. Diagnose —— Completed
结果:
TemperatureHigh
状态变化:
DeviceState:warning → maintenance
目标完成:
No
页面只是行为Runtime结果的可视化。
265.34 行为Runtime的核心边界
行为Runtime必须保持以下工程边界:
Behavior≠ActionBehavior\neq Action Action≠ExecutionAction\neq Execution Execution≠ResultExecution\neq Result Result≠FeedbackResult\neq Feedback Behavior≠LearningBehavior\neq Learning Behavior≠MaintenanceBehavior\neq Maintenance BehaviorRuntime≠BehaviorEngineBehaviorRuntime\neq BehaviorEngine BehaviorRuntime≠RepositoryBehaviorRuntime\neq Repository BehaviorRuntime≠MySQLBehaviorRuntime\neq MySQL BehaviorRuntime≠SmartyBehaviorRuntime\neq Smarty
同时:
BehaviorCompleted≠GoalCompletedBehaviorCompleted\neq GoalCompleted StateChange≠DatabaseUpdateStateChange\neq DatabaseUpdate
这些边界保证行为Runtime不会把行为、动作、执行、结果、状态和持久化混成一个对象。
265.35 行为Runtime完整模型
综合本章,可以得到:
BehaviorRuntime={Behavior,Action,Execution,Result,StateChange}BehaviorRuntime= \{ Behavior, Action, Execution, Result, StateChange \}
其核心过程为:
Behavior→Action→Execution→Result→StateChangeBehavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange
其输入来自决策:
DecisionResult→BehaviorRuntimeDecisionResult \rightarrow BehaviorRuntime
其输出进入反馈:
BehaviorRuntime→FeedbackBehaviorRuntime \rightarrow Feedback
其状态变化进入领域对象:
StateChange→DomainObjectStateChange \rightarrow DomainObject
其持久化进入Repository:
DomainObject→Repository→MySQLDomainObject \rightarrow Repository \rightarrow MySQL
其页面展示进入Smarty:
BehaviorResult→ViewData→Smarty→HTMLBehaviorResult \rightarrow ViewData \rightarrow Smarty \rightarrow HTML
最终形成完整的行为Runtime模型:
DecisionResult→Behavior→Action→Execution→Result→StateChange→Feedback\boxed{ DecisionResult \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow StateChange \rightarrow Feedback }
行为Runtime因此成为ICAI从**“决定做什么”进入“实际做什么”**的核心运行层,也是后续学习、经验积累、自我维护以及个体持续发展的实际行为入口。