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

第162章 Behavior与Action类

第162章 Behavior与Action类

162.1 提出背景

在个体认知系统中,Capability解决“能不能做”,Method解决“怎么做”,Decision解决“在多个可行方案中选择哪一个”。

但是,仅仅完成Decision还不能产生真实结果。

例如,个体面对一个物体,需要完成“拿起物体”这一目标。系统经过认知过程后可能得到:

Need → Goal → Capability → Method → Decision → Selected Method

此时系统已经知道:

  • 要完成什么;
  • 是否具备完成任务的能力;
  • 可以采用什么方法;
  • 当前应该选择哪一种方法。

但是,系统仍然必须进入实际执行阶段。

因此必须继续解决五个问题:

Behavior是什么?

Action是什么?

Action如何执行?

执行以后产生什么Result?

执行过程中的State如何变化?

由此形成:

Decision → Behavior → Action → Execution → Result → State

Behavior与Action因此成为个体认知系统从“认知决定”进入“实际行为”的核心对象。


162.2 Behavior概念定义

**Behavior(行为)**是个体针对特定目标,在特定条件下,由一个或多个Action按照一定结构组织形成的可执行行为过程。

Behavior不是单个动作,而是具有目标、条件、动作组成、执行状态和结果的整体行为对象。

可以定义:

B=(G,C,A,E,R,S)B=(G,C,A,E,R,S)

其中:

  • BB:Behavior,行为;
  • GG:Goal,行为目标;
  • CC:Condition,行为条件;
  • AA:Action Set,行为动作集合;
  • EE:Execution,行为执行过程;
  • RR:Result,行为结果;
  • SS:State,行为状态。

因此:

Behavior = Goal + Condition + Action + Execution + Result + State

Behavior解决的问题是:

“个体现在正在实施什么行为?”

而Method解决的问题是:

“完成目标可以采用什么方法?”

两者不能混淆。

Method是一种可选择的实现方案,Behavior则是该方案被实际执行以后形成的行为过程。

因此:

Method → Decision → Behavior

表示:

方法候选 → 方法选择 → 实际行为


162.3 Action概念定义

**Action(动作)**是Behavior内部最基本的可执行操作单元。

一个Behavior通常由一个或多个Action组成。

例如“拿起一个杯子”可以分解为:

观察杯子 → 移动手部 → 接触杯子 → 抓取杯子 → 提起杯子

其中每一步都可以作为一个Action。

因此:

B={A1,A2,A3,…,An}B=\{A_1,A_2,A_3,\dots,A_n\}

其中:

  • BB:一个Behavior;
  • AiA_i:Behavior中的第 ii 个Action;
  • nn: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:Result,动作结果;
  • SS:State,动作状态。

因此:

Action = Type + Object + Condition + Parameter + Result + State

例如:

Action:
Type = Move
Object = Hand
Target = Cup
Distance = 20cm
State = Ready

执行后可能变成:

Action:
Type = Move
Object = Hand
Target = Cup
Distance = 20cm
State = Completed
Result = HandReachedCup

Action是可以被执行和验证的最小行为单位之一。


162.4 Behavior与Action的层级关系

Behavior与Action不是两个平行对象,而是具有组合关系。

可以表示为:

Behavior → Action1 → Action2 → Action3 → … → ActionN

例如:

Behavior:拿起杯子

可以分解为:

观察杯子 → 移动手 → 接触杯子 → 抓取杯子 → 提起杯子

因此:

Behavior=∑i=1nActioniBehavior=\sum_{i=1}^{n}Action_i

这里的“∑\sum”不是数学上的数值相加,而表示多个Action按照行为结构组合形成一个完整Behavior。

Behavior负责整体目标。

Action负责具体操作。

因此可以形成清晰的层次:

Goal → Behavior → Action → Execution

而不是:

Goal → Action

因为直接由Goal产生Action,会缺少中间的行为组织层。


162.5 Execution概念定义

**Execution(执行)**是系统将Behavior或Action从“准备状态”转变为“实际运行状态”的过程。

Execution不是Action本身。

Action描述:

做什么。

Execution描述:

实际怎么运行这个动作。

例如:

Action = Move Hand To Cup

只是定义了一个动作。

真正发生:

Action → Execution → Hand Position Changed

才形成实际执行。

因此可以定义:

E=(A,T,S,R)E=(A,T,S,R)

其中:

  • EE:Execution,执行;
  • AA:被执行的Action;
  • TT:Execution Time,执行时间;
  • SS:Execution State,执行状态;
  • RR:Execution Result,执行结果。

Execution可以具有以下状态:

pending
ready
running
completed
failed
blocked
cancelled

其状态转换可以表示为:

Pending → Ready → Running → Completed

失败时:

Running → Failed

被阻止时:

Ready → Blocked

被取消时:

Running → Cancelled

因此Execution本质上是行为运行时的过程对象。


162.6 Result概念定义

**Result(结果)**是Action或Behavior执行以后产生的实际状态变化、输出信息或执行结论。

Result不能简单等同于“成功”。

因为执行结果可能包括:

Success
Partial Success
Failure
No Change
Unexpected Result
Blocked
Cancelled

因此:

R=(E,O,S,C)R=(E,O,S,C)

其中:

  • RR:Result;
  • EE:Execution,产生结果的执行过程;
  • OO:Output,执行输出;
  • SS:Result State,结果状态;
  • CC:Comparison,实际结果与预期结果之间的比较。

例如:

Expected:
Hand reaches Cup

Actual:
Hand reaches Cup

Result:
Success

也可能:

Expected:
Hand reaches Cup

Actual:
Hand stops 5cm before Cup

Result:
Failure

因此系统不能在Action开始以后直接把结果设置成Success。

必须遵循:

Action → Execution → Actual Result → Expected/Actual Comparison → Result

这样才能保证认知系统中的结果来自真实执行,而不是来自预先假设。


162.7 State概念定义

**State(状态)**表示Behavior、Action或Execution在当前时刻所处的运行状态。

状态不是行为本身,而是行为当前所处的位置。

例如一个Behavior可以具有:

Created
Ready
Running
Paused
Completed
Failed
Blocked
Cancelled

状态变化可以表示为:

Created → Ready → Running → Completed

也可以:

Created → Ready → Blocked

或者:

Running → Failed

因此:

St+1=F(St,E,R)S_{t+1}=F(S_t,E,R)

其中:

  • StS_t:当前时刻的状态;
  • St+1S_{t+1}:执行后的下一状态;
  • EE:执行事件;
  • RR:执行结果;
  • FF:状态转换规则。

状态转换必须由明确规则控制。

例如:

if ExecutionResult = success
    State = completed

if ExecutionResult = failure
    State = failed

这里不是依靠随机判断,而是根据执行事实和规则进行离散状态转换。


162.8 Behavior与Action的区别

Behavior与Action虽然都属于行为系统,但层级不同。

概念 作用
Behavior 描述完整行为
Action 描述具体动作
Execution 描述实际执行
Result 描述执行结果
State 描述当前状态

例如目标:

拿起杯子

Behavior:

PickUpCupBehavior

Action:

MoveHand
TouchCup
GripCup
LiftCup

Execution:

MoveHand Execution
TouchCup Execution
GripCup Execution
LiftCup Execution

Result:

HandReachedCup
CupContacted
CupGripped
CupLifted

State:

Running
→
Running
→
Running
→
Completed

因此:

Behavior是行为整体,Action是行为组成单元,Execution是实际运行过程,Result是运行产生的事实,State是当前运行状态。


162.9 Behavior运行模型

一个完整Behavior可以建立如下运行模型:

Goal → Behavior Creation → Condition Check → Action Loading → Execution → Result → State Update

进一步展开:

Goal → Behavior → Action1 → Execution1 → Result1 → State1 → Action2 → Execution2 → Result2 → State2 → … → Behavior Result

例如:

拿起杯子目标

首先创建:

Behavior = PickUpCup

然后加载:

Action1 = MoveHand
Action2 = TouchCup
Action3 = GripCup
Action4 = LiftCup

形成:

PickUpCup → MoveHand → TouchCup → GripCup → LiftCup

每一个Action都必须经过实际Execution。

因此:

Action → Execution → Result → State

当Action1完成后,系统才能进入Action2。

这形成了严格的顺序控制:

Action1 Completed → Action2 Ready → Action2 Running

而不是所有Action同时被认为已经完成。


162.10 Behavior状态模型

Behavior的状态必须由其内部Action和Execution共同决定。

可以定义:

Bs=F(As,Es,R)B_s=F(A_s,E_s,R)

其中:

  • BsB_s:Behavior当前状态;
  • AsA_s:Action状态集合;
  • EsE_s:Execution状态;
  • RR:执行结果;
  • FF:行为状态转换规则。

例如:

如果:

所有Action = Completed

则:

Behavior = Completed

如果:

某关键Action = Failed

则:

Behavior = Failed

如果:

下一Action的Condition不满足

则:

Behavior = Blocked

因此Behavior状态不是人为指定,而是由内部执行事实计算得到。


162.11 Behavior与Method的关系

第160章已经定义Method。

Method解决:

“如何完成目标?”

Behavior解决:

“当前正在实施什么行为?”

两者之间存在转换关系:

Capability → Method Candidate → Decision → Selected Method → Behavior → Action → Execution

例如:

Goal = Pick Up Cup

Capability = Object Grasping

Methods:
M1 = Direct Grasp
M2 = Two-Step Grasp

Decision:
M1 Selected

此时:

Selected Method = Direct Grasp

进入:

Behavior = DirectGraspBehavior

然后:

Behavior
→ Action1
→ Action2
→ Action3
→ Execution
→ Result

因此Method并不直接等于Behavior。

Method是可选择的方案结构。

Behavior是方案进入执行阶段后的行为结构。


162.12 Behavior与Decision的关系

Decision完成的是选择。

Behavior完成的是执行。

因此:

Decision ≠ Behavior

Decision:

Candidate A
Candidate B
Candidate C
↓
Condition
↓
Comparison
↓
Selected Candidate

Behavior:

Selected Candidate
↓
Behavior
↓
Action
↓
Execution
↓
Result

完整关系为:

Need → Goal → Capability → Method Candidates → Decision → Selected Method → Behavior → Action → Execution → Result

这形成从需求到实际行为的完整链路。


162.13 Behavior工程对象模型

在PHP OOP工程中,可以建立Behavior类:

class Behavior
{
    protected $id;
    protected $name;
    protected $goalId;
    protected $condition;
    protected $actions;
    protected $state;
    protected $result;

    public function addAction($action)
    {
        $this->actions[] = $action;
    }

    public function setState($state)
    {
        $this->state = $state;
    }

    public function getState()
    {
        return $this->state;
    }

    public function setResult($result)
    {
        $this->result = $result;
    }

    public function getResult()
    {
        return $this->result;
    }
}

Behavior对象负责管理完整行为。

Action则可以独立建立:

class Action
{
    protected $id;
    protected $type;
    protected $object;
    protected $condition;
    protected $parameter;
    protected $state;
    protected $result;

    public function execute()
    {
        $this->state = 'running';
    }
}

这里的execute()只代表进入执行过程。

真正的Execution应该继续独立建模。


162.14 Execution工程对象

可以建立:

class Execution
{
    protected $id;
    protected $actionId;
    protected $startTime;
    protected $endTime;
    protected $state;
    protected $result;

    public function start()
    {
        $this->state = 'running';
    }

    public function complete($result)
    {
        $this->result = $result;
        $this->state = 'completed';
    }

    public function fail($result)
    {
        $this->result = $result;
        $this->state = 'failed';
    }
}

这样就形成:

Action
    ↓
Execution
    ↓
Result
    ↓
State

Action负责描述动作。

Execution负责记录动作运行过程。

Result负责记录实际结果。

State负责表示当前状态。

四者职责不能混在一个对象中。


162.15 Result工程对象

可以建立:

class Result
{
    protected $id;
    protected $executionId;
    protected $expected;
    protected $actual;
    protected $status;
    protected $data;

    public function compare()
    {
        if ($this->expected == $this->actual) {
            $this->status = 'success';
            return true;
        }

        $this->status = 'failure';
        return false;
    }
}

这里最重要的是:

Expected ≠ Actual

系统首先保存预期结果:

Expected

然后从Execution中获得:

Actual

最后执行:

Expected + Actual
→ Comparison
→ Result

这样才能使Result成为真正的执行事实。


162.16 BehaviorManager

当Behavior数量增加以后,需要建立BehaviorManager负责行为管理。

class BehaviorManager
{
    protected $behaviors;

    public function register($behavior)
    {
        $this->behaviors[] = $behavior;
    }

    public function find($id)
    {
        foreach ($this->behaviors as $behavior) {
            if ($behavior->getId() == $id) {
                return $behavior;
            }
        }

        return null;
    }
}

BehaviorManager主要负责:

  • 创建Behavior;
  • 加载Behavior;
  • 查找Behavior;
  • 更新Behavior;
  • 管理Behavior状态;
  • 管理Action;
  • 记录Behavior结果。

它不负责替代Decision,也不负责替代Method。


162.17 数据库模型

Behavior可以建立:

behaviors

主要字段:

id
name
goal_id
condition
state
result
created_at
updated_at

Action可以建立:

actions

主要字段:

id
behavior_id
action_type
object_id
condition
parameter
state
result
sequence

Execution可以建立:

executions

主要字段:

id
action_id
start_time
end_time
state
result

Result可以建立:

behavior_results

主要字段:

id
behavior_id
execution_id
expected_result
actual_result
status
created_at

这样形成:

behaviors
    ↓
actions
    ↓
executions
    ↓
behavior_results

数据库结构与对象结构保持一致。


162.18 行为执行闭环

Behavior不能只执行一次就结束。

真正的个体行为系统应该形成:

Behavior → Action → Execution → Result → State → Feedback

如果Result符合预期:

Result → Completed → Behavior Completed

如果Result不符合预期:

Result → Failed → Behavior Failed

如果出现新的条件:

Result → State Change → Condition Re-evaluation → New Action

因此行为系统实际上形成一个闭环:

Behavior → Action → Execution → Result → State → Behavior Update

这使Behavior成为动态运行对象,而不是静态数据记录。


162.19 行为与认知闭环

将本章与前面的Capability、Method、Decision结合起来,可以形成完整的认知—行为链:

Need → Goal → Capability → Method → Decision → Behavior → Action → Execution → Result → State → Experience

其中:

  • Need产生需求;
  • Goal确定目标;
  • Capability判断能力;
  • Method提供方法;
  • Decision进行选择;
  • Behavior组织实际行为;
  • Action产生具体动作;
  • Execution执行动作;
  • Result产生实际结果;
  • State记录当前状态;
  • Experience记录执行经验。

因此:

Cognitive Decision→Behavioral ExecutionCognitive\ Decision \rightarrow Behavioral\ Execution

即:

认知决策 → 行为执行

这是ICAI从“思考”进入“行动”的关键连接。


162.20 行为工程的核心原则

Behavior与Action工程必须遵循以下原则。

第一,Behavior不能等于Action

Behavior是整体行为,Action是行为组成单元。

第二,Action不能等于Execution

Action描述要执行什么,Execution描述实际执行过程。

第三,Execution不能直接等于Result

执行过程和执行结果是两个不同对象。

第四,Result必须来自实际执行

不能因为Action被创建,就直接认为Action成功。

第五,State必须根据事实变化

状态转换必须由Execution、Result和Condition共同决定。

第六,失败必须成为合法状态

系统不能强制所有Behavior最终得到Success。

第七,Behavior必须能够产生经验

行为执行结果是Experience的重要来源:

Behavior → Result → Experience

这样,个体才可以根据过去的行为结果形成后续能力和方法变化。


162.21 Behavior类完整模型

综合本章,可以建立:

B=(G,C,A,E,R,S)B=(G,C,A,E,R,S)

其中:

  • GG:目标;
  • CC:条件;
  • AA:动作集合;
  • EE:执行过程;
  • RR:结果;
  • SS:状态。

Action模型为:

A=(T,O,C,P,R,S)A=(T,O,C,P,R,S)

其中:

  • TT:动作类型;
  • OO:动作对象;
  • CC:动作条件;
  • PP:动作参数;
  • RR:动作结果;
  • SS:动作状态。

Behavior执行模型:

B→A→E→R→SB \rightarrow A \rightarrow E \rightarrow R \rightarrow S

完整认知行为模型:

Need→Goal→Capability→Method→Decision→Behavior→Action→Execution→Result→State→ExperienceNeed \rightarrow Goal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow Result \rightarrow State \rightarrow Experience

这条链路把前面的需求、目标、能力、方法和决策,最终连接到真实行为。


162.22 本章总结

Behavior与Action是ICAI从认知结构进入行为结构的核心对象。

Capability回答:

“能不能做?”

Method回答:

“怎么做?”

Decision回答:

“选择哪个?”

Behavior回答:

“现在实施什么行为?”

Action回答:

“具体执行什么动作?”

Execution回答:

“这个动作实际上如何运行?”

Result回答:

“实际产生了什么结果?”

State回答:

“当前处于什么状态?”

因此形成:

Capability → Method → Decision → Behavior → Action → Execution → Result → State

进一步形成完整个体运行闭环:

Need → Goal → Capability → Method → Decision → Behavior → Action → Execution → Result → State → Experience → Learning

从工程角度看,Behavior、Action、Execution、Result、State不应该被设计成一个巨大的混合对象,而应该保持明确的对象职责:

Behavior管理行为整体,Action管理动作,Execution管理执行过程,Result管理执行事实,State管理运行状态。

这种对象分离使ICAI能够将“认知决定”真正转换为“可执行行为”,也为后续的反馈、经验、学习、能力变化和行为优化建立工程基础。

Leave a Reply

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