第199章 BehaviorEngine
199.1 BehaviorEngine定义
在 ICAI(Individual Cognitive AI)工程体系中,DecisionEngine 完成决策选择之后,系统必须将已经确定的方案转化为当前可执行的行为结构。
这一过程由 BehaviorEngine 完成。
BehaviorEngine 不是决策引擎,也不是底层执行引擎。
它主要解决四个问题:
- 当前应该形成什么行为;
- 这个行为在什么条件下可以执行;
- 行为应该按照什么动作结构执行;
- 行为执行之后产生了什么实际结果。
因此:
BehaviorEngine=BehaviorCalculation+BehaviorCondition+BehaviorExecution+BehaviorResultBehaviorEngine = BehaviorCalculation + BehaviorCondition + BehaviorExecution + BehaviorResult
可以进一步定义:
BE=(D,G,M,O,S,C,A,E,R,T)BE=(D,G,M,O,S,C,A,E,R,T)
其中:
- DD:Decision,已经确定的决策;
- GG:Goal,目标;
- MM:Method,被选择的方法;
- OO:Object,行为作用对象;
- SS:当前状态;
- CC:行为条件;
- AA:Action,行为动作;
- EE:Execution,实际执行;
- RR:Result,实际结果;
- TT:时间。
核心流程为:
Decision → Behavior → Action → Execution → Result
因此:
DecisionEngine→BehaviorEngine→ActionEngine→ExecutionEngineDecisionEngine \rightarrow BehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
199.2 Behavior的基本概念
Behavior 的中文含义是“行为”。
在 ICAI 中,Behavior 不是一个单独动作,而是在特定目标、方法、对象和条件下,由多个 Action 按照一定结构组织起来的完整执行过程。
可以定义:
B=(G,C,A,E,R,S)B=(G,C,A,E,R,S)
其中:
- GG:Goal;
- CC:Condition;
- AA:Action Sequence;
- EE:Execution;
- RR:Result;
- SS:Behavior State。
因此:
Behavior≠ActionBehavior\neq Action
例如一个完整行为:
检查对象 → 修改状态 → 保存结果 → 验证状态
可以表示为:
B={A1,A2,A3,A4}B=\{A_1,A_2,A_3,A_4\}
其中:
A1=CheckA_1=Check A2=UpdateA_2=Update A3=SaveA_3=Save A4=VerifyA_4=Verify
四个 Action 共同构成一个 Behavior。
199.3 BehaviorEngine与DecisionEngine
DecisionEngine 负责:
选择什么。
BehaviorEngine 负责:
把选择转化为什么样的行为结构。
例如:
DecisionEngine→SelectedMethod=M1DecisionEngine \rightarrow SelectedMethod=M_1
随后:
BehaviorEngine→Behavior=B1BehaviorEngine \rightarrow Behavior=B_1
因此:
DecisionEngine≠BehaviorEngineDecisionEngine\neq BehaviorEngine
DecisionEngine 不负责建立完整 Action Sequence。
BehaviorEngine 也不应该重新替代 DecisionEngine 选择另一个方案。
正常关系为:
Candidate→Decision→SelectedMethod→BehaviorCandidate \rightarrow Decision \rightarrow SelectedMethod \rightarrow Behavior
199.4 一、行为计算
199.4.1 行为计算定义
行为计算是 BehaviorEngine 的第一个核心职责。
它根据已经确定的 Decision、Goal、Method、Object、State 和 Runtime,计算当前 Behavior。
可以定义:
CalculateBehavior(D,G,M,O,S,C)→BCalculateBehavior(D,G,M,O,S,C)\rightarrow B
其中:
- DD:Decision;
- GG:Goal;
- MM:Method;
- OO:Object;
- SS:Current State;
- CC:Current Condition;
- BB:Behavior。
行为计算不是简单地:
Decision → New Behavior
而是:
Decision → Method → Process → Action → Dependency → Condition → Behavior
199.5 行为计算输入
BehaviorEngine 至少需要以下输入:
Decision
确定当前选择的方案。
Goal
确定行为最终服务于什么目标。
Method
确定行为采用什么方法。
Object
确定行为作用于什么对象。
State
确定对象当前处于什么状态。
Condition
确定当前环境是否允许执行。
Capability
确定执行行为所需要的能力是否存在。
Resource
确定行为所需资源是否可用。
Runtime
确定当前实际运行环境。
因此:
B=f(D,G,M,O,S,C,Capability,Resource,Runtime)B= f(D,G,M,O,S,C,Capability,Resource,Runtime)
199.6 行为建立
行为建立可以按照以下过程进行:
Load Decision
↓
Load Goal
↓
Load Method
↓
Load Object
↓
Load State
↓
Load Capability
↓
Load Resource
↓
Load Runtime
↓
Calculate Behavior
↓
Build Action Sequence
↓
Build Dependencies
↓
Calculate Conditions
↓
Behavior Ready
行为只有在结构完整、条件满足后才能进入 Ready。
199.7 Behavior结构
一个完整 Behavior 可以定义为:
B=(ID,D,G,M,O,C,A,E,R,S,T)B=(ID,D,G,M,O,C,A,E,R,S,T)
其中:
- IDID:Behavior ID;
- DD:Decision;
- GG:Goal;
- MM:Method;
- OO:Object;
- CC:Condition;
- AA:Action Sequence;
- EE:Execution;
- RR:Result;
- SS:State;
- TT:Time。
因此 Behavior 是一个连接结构:
Decision→Method→Behavior→Action→ExecutionDecision \rightarrow Method \rightarrow Behavior \rightarrow Action \rightarrow Execution
199.8 Action Sequence计算
一个 Method 通常包含多个 Action。
因此:
A={A1,A2,…,An}A=\{A_1,A_2,\ldots,A_n\}
BehaviorEngine 必须计算:
- Action 顺序;
- Action 依赖;
- Action 前置条件;
- Action 后置条件;
- Action 输入;
- Action 输出;
- Action 所需资源;
- Action 所需状态。
例如:
A1→A2A_1\rightarrow A_2
表示 A2 必须在 A1 完成后才能执行。
如果:
A2→A3A_2\rightarrow A_3
则形成:
A1→A2→A3A_1\rightarrow A_2\rightarrow A_3
199.9 Action依赖计算
BehaviorEngine 必须检查 Action Dependency。
定义:
Dependency(Ai,Aj)Dependency(A_i,A_j)
表示:
AjA_j
依赖:
AiA_i
如果存在:
A1→A2A_1\rightarrow A_2
同时存在:
A2→A1A_2\rightarrow A_1
则形成循环依赖:
A1↔A2A_1\leftrightarrow A_2
此时 Behavior 不能直接执行。
应该产生:
BehaviorConflictBehaviorConflict
然后交给:
ConflictEngine
进行冲突处理。
因此:
BehaviorEngine→ConflictEngineBehaviorEngine \rightarrow ConflictEngine
而不是 BehaviorEngine 自己强制解决所有结构冲突。
199.10 行为计算结果
行为计算完成后,需要形成 Behavior Candidate。
可以定义:
BC=(B,A,C,S,R)BC=(B,A,C,S,R)
其中:
- BB:Behavior;
- AA:Action Sequence;
- CC:Conditions;
- SS:State;
- RR:Required Resources。
Behavior Candidate 的状态可以包括:
- Created;
- Invalid;
- Blocked;
- Ready;
- Conflicted。
只有:
BehaviorState=ReadyBehaviorState=Ready
才能进入正式执行阶段。
199.11 二、行为条件
199.11.1 Behavior Condition定义
Behavior Condition 是决定一个行为是否能够创建、启动、继续、暂停或结束的条件。
可以定义:
BC=(G,S,M,C,R,E)BC=(G,S,M,C,R,E)
其中:
- GG:Goal Condition;
- SS:State Condition;
- MM:Method Condition;
- CC:Current Condition;
- RR:Resource Condition;
- EE:Environment Condition。
行为可执行条件:
BehaviorReady=Gv∧Sv∧Mv∧Cv∧Rv∧EvBehaviorReady= G_v \land S_v \land M_v \land C_v \land R_v \land E_v
其中:
- GvG_v:目标有效;
- SvS_v:状态有效;
- MvM_v:方法有效;
- CvC_v:当前条件有效;
- RvR_v:资源有效;
- EvE_v:环境有效。
199.12 Behavior Condition与Method Condition
两者必须严格区分。
Method Condition:
这个方法是否适用?
Behavior Condition:
这个方法现在是否可以作为一个行为开始执行?
例如:
Method 要求:
State=ReadyState=Ready
这是 Method Condition。
如果当前:
State=ReadyState=Ready
但资源:
Resource=UnavailableResource=Unavailable
那么:
MethodValid=trueMethodValid=true
但是:
BehaviorReady=falseBehaviorReady=false
因此:
MethodValid≠BehaviorReadyMethodValid\neq BehaviorReady
199.13 行为条件的动态变化
行为条件不是静态条件。
Runtime 会持续变化:
Runtimet≠Runtimet+1Runtime_t\neq Runtime_{t+1}
因此:
Conditiont≠Conditiont+1Condition_t\neq Condition_{t+1}
例如:
行为开始时:
ResourceX=AvailableResource_X=Available
执行 Action 之后:
ResourceX=UnavailableResource_X=Unavailable
那么后续 Action 可能无法继续。
所以 BehaviorEngine 必须在关键执行节点重新计算:
Actioni→StateUpdate→ConditionRecalculation→Actioni+1Action_i \rightarrow StateUpdate \rightarrow ConditionRecalculation \rightarrow Action_{i+1}
199.14 行为条件分类
Behavior Condition 可以分为:
1. Goal Condition
目标是否仍然有效。
2. State Condition
当前对象状态是否满足要求。
3. Capability Condition
执行所需能力是否仍然有效。
4. Method Condition
当前方法是否仍然适用。
5. Resource Condition
资源是否可用。
6. Environment Condition
环境是否满足要求。
7. Time Condition
行为是否处于允许时间范围。
8. Relation Condition
相关对象关系是否满足要求。
因此:
BehaviorCondition=Goal+State+Capability+Method+Resource+Environment+Time+RelationBehaviorCondition = Goal + State + Capability + Method + Resource + Environment + Time + Relation
199.15 条件状态
行为条件不能只有 true/false。
可以定义:
- Pass;
- Partial;
- Fail;
- Unknown;
- Blocked;
- Conflicted;
- Expired。
例如:
ResourceAvailable=true→PassResourceAvailable=true \rightarrow Pass ResourceAvailable=false→FailResourceAvailable=false \rightarrow Fail State=Unknown→UnknownState=Unknown \rightarrow Unknown
如果:
Conflict=BlockingConflict=Blocking
则:
BehaviorCondition=BlockedBehaviorCondition=Blocked
199.16 行为条件重新计算
每个 Action 执行之后,都可能改变 Runtime。
因此:
Actioni→Executioni→Resulti→Statei+1Action_i \rightarrow Execution_i \rightarrow Result_i \rightarrow State_{i+1}
然后:
Statei+1→BehaviorConditioni+1State_{i+1} \rightarrow BehaviorCondition_{i+1}
如果:
BehaviorConditioni+1=PassBehaviorCondition_{i+1}=Pass
继续执行。
如果:
BehaviorConditioni+1=BlockedBehaviorCondition_{i+1}=Blocked
则暂停行为。
如果:
BehaviorConditioni+1=FailBehaviorCondition_{i+1}=Fail
则进入异常处理。
这构成动态行为条件计算。
199.17 三、行为执行
199.17.1 行为执行定义
行为执行是将已经计算完成并满足条件的 Behavior 转化为实际 Action Execution 的过程。
可以表示为:
Execute(B)→EExecute(B)\rightarrow E
但 BehaviorEngine 并不等同于 ExecutionEngine。
正确的工程关系为:
BehaviorEngine→ActionEngine→ExecutionEngineBehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
BehaviorEngine 负责行为级组织。
ActionEngine 负责动作级计算。
ExecutionEngine 负责实际执行。
199.18 行为执行流程
完整流程:
Behavior Ready
↓
Behavior Condition Check
↓
Behavior Start
↓
Load Action
↓
Action Condition Check
↓
ActionEngine
↓
ExecutionEngine
↓
Execution Result
↓
State Update
↓
Feedback
↓
Behavior Condition Recalculation
↓
Next Action
↓
Final Action
↓
Behavior Result
因此:
Behavior→Action→Execution→ResultBehavior \rightarrow Action \rightarrow Execution \rightarrow Result
199.19 行为状态
Behavior 必须拥有自己的生命周期。
可以定义:
Created→Initialized→Ready→Running→CompletedCreated \rightarrow Initialized \rightarrow Ready \rightarrow Running \rightarrow Completed
异常路径:
Running→FailedRunning \rightarrow Failed
或者:
Running→PausedRunning \rightarrow Paused
以及:
Ready→BlockedReady \rightarrow Blocked
完整状态包括:
- Created;
- Initialized;
- Ready;
- Running;
- Paused;
- Blocked;
- Completed;
- Failed;
- Cancelled;
- Expired。
199.20 Behavior State计算
Behavior State 不是简单地人工赋值。
可以定义:
SB=f(SA,SE,C)S_B=f(S_A,S_E,C)
其中:
- SBS_B:Behavior State;
- SAS_A:Action States;
- SES_E:Execution States;
- CC:Behavior Conditions。
例如:
如果:
A1=CompletedA_1=Completed A2=CompletedA_2=Completed A3=RunningA_3=Running
则:
Behavior=RunningBehavior=Running
如果:
A3=FailedA_3=Failed
则:
Behavior=FailedBehavior=Failed
如果所有必要 Action 完成:
A1,A2,…,An=CompletedA_1,A_2,\ldots,A_n=Completed
则:
Behavior=CompletedBehavior=Completed
199.21 行为执行失败
如果:
Actioni→FailedAction_i \rightarrow Failed
BehaviorEngine 不能直接假设整个 Behavior 必须永久失败。
必须根据规则计算失败处理方式。
可能结果:
RetryRetry PausePause SkipSkip ReplaceActionReplaceAction ChangeMethodChangeMethod ReDecisionReDecision DiagnosisDiagnosis
因此:
ActionFailure→BehaviorHandlingActionFailure \rightarrow BehaviorHandling
如果问题已经属于实际异常,则:
Failure→DiagnosisEngineFailure \rightarrow DiagnosisEngine
199.22 行为暂停
Behavior 可以在运行过程中进入:
PausedPaused
例如:
- 资源暂时不可用;
- 环境条件暂时不满足;
- 风险等级上升;
- 冲突尚未解决;
- 等待外部状态变化。
暂停不等于失败:
Paused≠FailedPaused\neq Failed
当条件恢复:
Paused→ConditionRecalculation→RunningPaused \rightarrow ConditionRecalculation \rightarrow Running
如果条件永久失效:
Paused→BlockedPaused \rightarrow Blocked
199.23 行为结果
199.23.1 Behavior Result定义
Behavior Result 是整个 Behavior 执行过程产生的实际结果集合。
可以定义:
BR=(B,A,E,R,S,C,V,T)BR=(B,A,E,R,S,C,V,T)
其中:
- BB:Behavior;
- AA:Action Results;
- EE:Execution;
- RR:Actual Result;
- SS:Final State;
- CC:Comparison;
- VV:Verification;
- TT:Time。
Behavior Result 不能只记录:
success = true
而应该记录完整事实。
199.24 Expected Result与Actual Result
行为执行之前:
ExpectedResult=ReExpectedResult=R_e
实际执行之后:
ActualResult=RaActualResult=R_a
然后:
Compare(Re,Ra)→CCompare(R_e,R_a)\rightarrow C
比较结果可以为:
- Equal;
- Partial;
- Different;
- Failed;
- Unknown。
因此:
Expected≠ActualExpected\neq Actual
并不一定意味着整个 Behavior 失败。
还需要结合:
- Goal;
- State;
- Verification;
- Condition;
- Required Actions。
进行综合判断。
199.25 Behavior Completed与Goal Completed
必须严格区分:
BehaviorCompletedBehaviorCompleted
和:
GoalCompletedGoalCompleted
例如:
Goal:
将对象状态设置为 Active。
Behavior:
A1=UpdateStateA_1=UpdateState
如果 A1 执行完成:
Behavior=CompletedBehavior=Completed
但实际对象状态仍然是:
State=InactiveState=Inactive
则:
Goal≠CompletedGoal\neq Completed
所以:
BehaviorCompleted⇏GoalCompletedBehaviorCompleted \not\Rightarrow GoalCompleted
必须进一步进行:
GoalVerificationGoalVerification
199.26 行为结果验证
行为结果必须经过验证。
定义:
Verify(BR)=Execution∧Result∧State∧Condition∧EvidenceVerify(BR) = Execution \land Result \land State \land Condition \land Evidence
验证结果:
- Verified;
- Failed;
- Partial;
- Unknown;
- Invalid。
因此:
Executed≠VerifiedExecuted\neq Verified Completed≠VerifiedCompleted\neq Verified
只有实际结果、状态和证据均满足要求,才能形成 Verified Behavior Result。
199.27 行为结果与Feedback
Behavior Result 是实际行为结果。
Feedback 是对这个结果、状态变化和环境变化进行结构化反馈。
因此:
Behavior→Execution→Result→FeedbackBehavior \rightarrow Execution \rightarrow Result \rightarrow Feedback
二者不能混淆:
Result≠FeedbackResult\neq Feedback
Result:
实际发生了什么。
Feedback:
如何描述、比较和处理这个实际结果。
199.28 BehaviorEngine与ActionEngine
BehaviorEngine 与 ActionEngine 的职责:
BehaviorEngine
负责:
- Behavior;
- Action Sequence;
- Behavior Condition;
- Behavior State;
- Behavior Result。
ActionEngine
负责:
- Action Calculation;
- Action Condition;
- Action Parameter;
- Action-level Result。
因此:
BehaviorEngine→ActionEngineBehaviorEngine \rightarrow ActionEngine
而不是:
BehaviorEngine=ActionEngineBehaviorEngine=ActionEngine
199.29 BehaviorEngine与ExecutionEngine
ExecutionEngine 负责实际运行。
BehaviorEngine 负责行为级协调。
因此:
BehaviorEngine→ExecutionEngineBehaviorEngine \rightarrow ExecutionEngine
BehaviorEngine 决定:
下一步执行哪个 Action。
ExecutionEngine 负责:
这个 Action 实际运行发生了什么。
199.30 BehaviorEngine与StateEngine
行为执行会改变对象状态。
因此:
Statet→Action→Execution→Statet+1State_t \rightarrow Action \rightarrow Execution \rightarrow State_{t+1}
StateEngine 负责计算和验证:
Transition(Statet,Event,Condition)→Statet+1Transition(State_t,Event,Condition) \rightarrow State_{t+1}
BehaviorEngine 使用 StateEngine 的结果决定:
- 继续;
- 暂停;
- 结束;
- 重新计算;
- 重新决策。
199.31 BehaviorEngine与FeedbackEngine
实际执行产生:
ResultResult
FeedbackEngine 将结果结构化:
Result→FeedbackResult \rightarrow Feedback
BehaviorEngine 根据反馈:
Feedback→BehaviorDecisionFeedback \rightarrow BehaviorDecision
例如:
- 继续下一 Action;
- 暂停;
- 重试;
- 结束;
- 重新计算;
- 重新决策。
199.32 BehaviorEngine与RiskEngine
行为执行过程中可能产生新的风险。
例如:
Riskt=LowRisk_t=Low
执行 Action 后:
Riskt+1=HighRisk_{t+1}=High
此时 BehaviorEngine 不负责计算风险,而是接收 RiskEngine 的结果。
可能形成:
Risk→PauseBehaviorRisk \rightarrow PauseBehavior
或者:
Risk→ReDecisionRisk \rightarrow ReDecision
199.33 BehaviorEngine与ConflictEngine
行为中的 Action 可能产生冲突。
例如:
A1→ResourceXA_1\rightarrow Resource_X
而:
A2→ResourceXA_2\rightarrow Resource_X
如果 Resource X 为独占资源:
Conflict=ResourceConflictConflict=ResourceConflict
此时:
Behavior→ConflictEngineBehavior \rightarrow ConflictEngine
ConflictEngine 计算冲突,DecisionEngine 决定处理方式,BehaviorEngine 根据新的决策重新组织行为。
199.34 BehaviorEngine与DiagnosisEngine
如果行为实际失败:
Behavior→FailureBehavior \rightarrow Failure
BehaviorEngine 记录失败事实。
DiagnosisEngine 再计算:
Failure→DiagnosisFailure \rightarrow Diagnosis
例如:
- Resource 不可用;
- State 不正确;
- Action 参数错误;
- Object 异常;
- Environment 变化;
- Method 条件失效。
BehaviorEngine 不应该直接猜测失败原因。
199.35 行为重新计算
行为不是永久固定的。
如果 Runtime 发生变化:
Runtimet→Runtimet+1Runtime_t\rightarrow Runtime_{t+1}
原 Behavior 可能失效。
因此:
Behaviort→RuntimeChange→Recalculate→Behaviort+1Behavior_t \rightarrow RuntimeChange \rightarrow Recalculate \rightarrow Behavior_{t+1}
例如原行为:
A1→A2→A3A_1\rightarrow A_2\rightarrow A_3
执行 A1 后,A2 的条件失效。
系统可能重新计算为:
A1→A4→A3A_1\rightarrow A_4\rightarrow A_3
或者:
Behavior→Decision→NewMethod→NewBehaviorBehavior \rightarrow Decision \rightarrow NewMethod \rightarrow NewBehavior
199.36 Behavior History
Behavior History 记录行为实际发生过程。
可以定义:
BH=(B,A,E,R,S,T)BH=(B,A,E,R,S,T)
记录:
- Behavior;
- Action;
- Execution;
- Result;
- State;
- Time。
Behavior History 是事实。
Memory 是经过筛选后保留的信息。
Experience 是从多个历史和记忆中形成的结构模式。
因此:
BehaviorHistory→Memory→ExperienceBehaviorHistory \rightarrow Memory \rightarrow Experience
但:
BehaviorHistory≠MemoryBehaviorHistory\neq Memory BehaviorHistory≠ExperienceBehaviorHistory\neq Experience
199.37 PHP OOP工程实现
BehaviorEngine 可以采用 PHP OOP 方式实现:
class BehaviorEngine extends Engine
{
public function calculate($input)
{
$decision = $this->getDecision($input);
if (!$this->isDecisionValid($decision)) {
return new EngineResult(
$input,
null,
array(
'status' => 'Blocked',
'reason' => 'Invalid decision'
),
'behavior_calculation'
);
}
$method = $this->getMethod($input);
if (!$this->isMethodValid($method)) {
return new EngineResult(
$input,
null,
array(
'status' => 'Blocked',
'reason' => 'Invalid method'
),
'behavior_calculation'
);
}
$actions = $this->buildActions(
$method,
$input
);
$condition = $this->calculateBehaviorCondition(
$input,
$actions
);
if ($condition['status'] !== 'Pass') {
return new EngineResult(
$input,
null,
array(
'status' => 'Blocked',
'condition' => $condition
),
'behavior_calculation'
);
}
$behavior = array(
'decision' => $decision,
'method' => $method,
'actions' => $actions,
'condition' => $condition,
'state' => 'Ready'
);
return new EngineResult(
$input,
$behavior,
array(),
'behavior_calculation'
);
}
protected function getDecision($input)
{
return isset($input['decision'])
? $input['decision']
: null;
}
protected function getMethod($input)
{
return isset($input['method'])
? $input['method']
: null;
}
protected function isDecisionValid($decision)
{
return !empty($decision);
}
protected function isMethodValid($method)
{
return !empty($method);
}
protected function buildActions($method, $input)
{
if (isset($method['actions'])) {
return $method['actions'];
}
return array();
}
protected function calculateBehaviorCondition(
$input,
$actions
) {
return array(
'status' => 'Pass'
);
}
}
这段代码表达的是 BehaviorEngine 的工程结构,而不是声称已经构成某个具体项目的生产实现。
实际项目中:
- Condition 应由 ConditionEngine 计算;
- State 应由 StateEngine 计算;
- Action 应由 ActionEngine 计算;
- Execution 应由 ExecutionEngine 执行;
- Feedback 应由 FeedbackEngine 处理;
- 数据应由 Repository 持久化。
199.38 Behavior执行协调
BehaviorEngine 可以进行行为级执行协调:
class BehaviorEngine extends Engine
{
public function execute(
$behavior,
$actionEngine,
$executionEngine
) {
$results = array();
foreach ($behavior['actions'] as $action) {
$condition =
$this->calculateActionCondition($action);
if ($condition['status'] !== 'Pass') {
return array(
'status' => 'Blocked',
'results' => $results
);
}
$calculatedAction =
$actionEngine->calculate($action);
$result =
$executionEngine->execute(
$calculatedAction
);
$results[] = $result;
if ($result['status'] === 'Failed') {
return array(
'status' => 'Failed',
'results' => $results
);
}
}
return array(
'status' => 'Completed',
'results' => $results
);
}
protected function calculateActionCondition($action)
{
return array(
'status' => 'Pass'
);
}
}
这里最重要的是职责边界:
BehaviorEngine→ActionEngine→ExecutionEngineBehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
BehaviorEngine 不应该把 Action 的底层实现全部写进自己内部。
199.39 BehaviorService与BehaviorEngine
BehaviorService 是应用服务层。
BehaviorEngine 是计算层。
因此:
BehaviorService=OrchestrationBehaviorService=Orchestration BehaviorEngine=ComputationBehaviorEngine=Computation
调用关系:
Controller → BehaviorService → BehaviorEngine → ActionEngine → ExecutionEngine → Repository
BehaviorService 负责:
- 加载 Decision;
- 加载 Method;
- 创建 Behavior;
- 调用 BehaviorEngine;
- 管理事务;
- 保存 Behavior;
- 保存 Behavior Result。
BehaviorEngine 负责:
- 行为计算;
- 行为条件;
- Action Sequence;
- 行为状态;
- 行为结果。
199.40 数据库结构
BehaviorEngine 不直接操作 MySQL。
Repository 可以使用以下数据结构。
behaviors
保存行为主体:
- id
- individual_id
- goal_id
- decision_id
- method_id
- object_id
- state
- expected_result
- actual_result
- created_at
- updated_at
behavior_actions
保存行为动作:
- id
- behavior_id
- action_id
- sequence
- condition
- dependency
- state
- created_at
behavior_executions
保存行为执行:
- id
- behavior_id
- action_id
- execution_id
- state
- started_at
- finished_at
- result
behavior_results
保存行为结果:
- id
- behavior_id
- expected_result
- actual_result
- comparison
- final_state
- verification
- created_at
behavior_history
保存行为历史:
- id
- behavior_id
- old_state
- new_state
- event
- reason
- created_at
形成:
Behavior→Action→Execution→Result→HistoryBehavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow History
199.41 行为完整执行流程
BehaviorEngine 的完整工程链可以表示为:
Decision
↓
Selected Method
↓
Goal
↓
Object
↓
Current State
↓
Capability
↓
Resource
↓
Behavior Calculation
↓
Behavior Condition
↓
Action Sequence
↓
Dependency Check
↓
Behavior Ready
↓
Action Condition
↓
ActionEngine
↓
ExecutionEngine
↓
Execution Result
↓
StateEngine
↓
FeedbackEngine
↓
Next Action
↓
Final Behavior Result
↓
Verification
199.42 正常行为闭环
正常情况下:
Goal→Decision→Method→Behavior→Action→Execution→Result→Feedback→State→VerificationGoal \rightarrow Decision \rightarrow Method \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow State \rightarrow Verification
如果行为结果满足要求:
VerifiedBehavior→GoalVerificationVerifiedBehavior \rightarrow GoalVerification
如果 Goal 验证通过:
Goal=CompletedGoal=Completed
199.43 异常行为闭环
如果行为执行过程中产生异常:
Behavior→Action→Execution→FailureBehavior \rightarrow Action \rightarrow Execution \rightarrow Failure
然后:
Failure→FeedbackFailure \rightarrow Feedback
进一步:
Feedback→Risk/ConflictFeedback \rightarrow Risk/Conflict
或者:
Feedback→DiagnosisFeedback \rightarrow Diagnosis
如果需要修复:
Diagnosis→Repair→VerificationDiagnosis \rightarrow Repair \rightarrow Verification
如果原 Behavior 已经不适用:
Verification→ReDecision→NewBehaviorVerification \rightarrow ReDecision \rightarrow NewBehavior
形成:
Behavior→Failure→Diagnosis→Repair→Verification→ReDecision→NewBehaviorBehavior \rightarrow Failure \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification \rightarrow ReDecision \rightarrow NewBehavior
199.44 BehaviorEngine与Runtime
BehaviorEngine 是 Runtime 中的动态计算节点。
Runtime 可以表示为:
Runtime=(I,O,S,G,C,M,D,B,E,R,T)Runtime=(I,O,S,G,C,M,D,B,E,R,T)
其中 Behavior:
BtB_t
随着执行不断变化:
Runtimet→Execution→Runtimet+1Runtime_t \rightarrow Execution \rightarrow Runtime_{t+1}
所以:
Bt≠Bt+1B_t\neq B_{t+1}
是完全正常的。
BehaviorEngine 必须根据当前 Runtime 判断:
- 继续;
- 暂停;
- 修改;
- 结束;
- 重新计算;
- 重新决策。
199.45 BehaviorEngine的确定性原则
ICAI 中 BehaviorEngine 必须坚持确定性计算。
如果:
Inputt=Inputt+1Input_t=Input_{t+1}
并且:
Rulet=Rulet+1Rule_t=Rule_{t+1}
则:
Behaviort=Behaviort+1Behavior_t=Behavior_{t+1}
除非明确输入发生变化。
因此:
SameInput+SameRule→SameBehaviorSameInput+SameRule \rightarrow SameBehavior
而不是随机产生不同的行为。
BehaviorEngine 的计算基础是:
Object + State + Goal + Method + Rule + Condition + Runtime
不使用:
- LLM;
- Transformer;
- Embedding;
- Vector Search;
- Prompt Engineering;
- Neural Network;
- LLM API。
199.46 BehaviorEngine的可解释性
一个 Behavior 必须可以向上追溯:
Behavior→Decision→Method→GoalBehavior \rightarrow Decision \rightarrow Method \rightarrow Goal
也必须向下追溯:
Behavior→Action→Execution→ResultBehavior \rightarrow Action \rightarrow Execution \rightarrow Result
因此:
Goal→Decision→Method→Behavior→Action→Execution→ResultGoal \rightarrow Decision \rightarrow Method \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result
系统可以回答:
为什么产生这个 Behavior?
Behavior 来自哪个 Decision?
使用了哪个 Method?
包含哪些 Action?
哪个 Action 执行失败?
产生了什么 Result?
对象状态发生了什么变化?
这构成 ICAI 行为系统的完整可追溯链。
199.47 BehaviorEngine工程边界
BehaviorEngine 的边界必须明确。
BehaviorEngine负责
- 行为计算;
- 行为条件;
- 行为结构建立;
- Action Sequence 组织;
- 行为状态计算;
- 行为执行协调;
- 行为结果计算。
BehaviorEngine不负责
- 最终决策;
- 底层 Action 实现;
- 底层 Execution 实现;
- 数据库持久化;
- 风险计算;
- 冲突计算;
- 故障诊断;
- 故障修复;
- 学习更新。
因此:
DecisionEngine→BehaviorEngine→ActionEngine→ExecutionEngineDecisionEngine \rightarrow BehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
是一条清晰的 Engine 职责链。
199.48 BehaviorEngine核心公式
本章可以将 BehaviorEngine 的核心公式归纳为:
行为计算
B=Build(D,G,M,O,S,C)B=Build(D,G,M,O,S,C)
行为条件
BehaviorReady=Gv∧Sv∧Mv∧Cv∧Rv∧EvBehaviorReady= G_v \land S_v \land M_v \land C_v \land R_v \land E_v
Action序列
A={A1,A2,…,An}A=\{A_1,A_2,\ldots,A_n\}
行为执行
B→A→Execution→ResultB \rightarrow A \rightarrow Execution \rightarrow Result
行为状态
SB=f(SA,SE,C)S_B=f(S_A,S_E,C)
行为结果
BR=f(Expected,Actual,State,Feedback,Verification)BR= f(Expected,Actual,State,Feedback,Verification)
行为验证
VerifiedBehavior=Execution∧Result∧State∧Condition∧EvidenceVerifiedBehavior = Execution \land Result \land State \land Condition \land Evidence
最终:
Decision→Behavior→Action→Execution→Result→Feedback→State→RecalculationDecision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow State \rightarrow Recalculation
199.49 本章总结
BehaviorEngine 是 ICAI 从“决策”进入“实际行为”的核心计算层。
它不是 DecisionEngine 的重复,也不是 ExecutionEngine 的替代。
它处于:
DecisionEngine→BehaviorEngine→ActionEngine→ExecutionEngineDecisionEngine \rightarrow BehaviorEngine \rightarrow ActionEngine \rightarrow ExecutionEngine
这一核心链条中。
其四个核心职责分别是:
行为计算:
根据 Decision、Goal、Method、Object、State 和 Runtime 建立 Behavior。
行为条件:
判断当前 Behavior 是否可以创建、启动、继续、暂停或结束。
行为执行:
组织 Action Sequence,并协调 ActionEngine 与 ExecutionEngine 完成实际行为。
行为结果:
收集实际 Action、Execution、State 和 Result,并形成可验证的 Behavior Result。
因此完整模型为:
ICAI Behavior=Decision+Method+Condition+ActionSequence+Execution+ResultICAI\ Behavior = Decision + Method + Condition + ActionSequence + Execution + Result
最终形成:
Goal→Decision→Behavior→Action→Execution→Result→Feedback→State→VerificationGoal \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow Feedback \rightarrow State \rightarrow Verification
如果出现异常:
Failure→Diagnosis→Repair→Verification→ReDecision→NewBehaviorFailure \rightarrow Diagnosis \rightarrow Repair \rightarrow Verification \rightarrow ReDecision \rightarrow NewBehavior
由此,BehaviorEngine 将 ICAI 的“决策结果”转化为“动态、受条件约束、可执行、可反馈、可验证的行为结构”,成为整个认知计算系统连接决策层与实际执行层的关键 Engine。