第271章 Behavior API|行为 API
271.1 行为 API 的提出背景
第270章建立了 Method API|方法 API,完成了:
Cognition→MethodCognition\rightarrow Method
方法解决的是:
在当前目标、对象、状态和场景条件下,采用什么方式实现目标。
但是,方法确定之后,机器仍然需要将方法转化为一个能够随着时间、状态和环境变化而持续运行的过程。
这个过程就是 Behavior|行为。
因此,需要建立:
Behavior API|行为 API。
Behavior API 位于 Method API 与 Action API 之间:
Cognition
↓
Method
↓
Behavior API
↓
Behavior
↓
Action
↓
Device
Behavior API 的作用,是把方法转化为动态行为结构,管理行为的创建、启动、更新、暂停、恢复、终止、状态转换、动作生成以及行为反馈。
因此:
Method→BehaviorMethod\rightarrow Behavior
是 ICAI 从“方法确定”进入“动态行为运行”的关键工程转换。
271.2 Behavior API 的定义
Behavior API|行为 API,是用于建立、管理、更新、执行和监控机器行为过程的标准程序接口。
可以定义:
BehaviorAPI(Mt,Gt,Ct,St,Sct)→BtBehaviorAPI(M_t,G_t,C_t,S_t,Sc_t)\rightarrow B_t
其中:
- MtM_t:当前方法;
- GtG_t:当前目标;
- CtC_t:当前认知;
- StS_t:当前状态;
- SctSc_t:当前场景;
- BtB_t:当前行为。
行为可以进一步表示为:
Bt=F(Gt,Ct,Mt,Ot,St,Sct,Pt)B_t=F(G_t,C_t,M_t,O_t,S_t,Sc_t,P_t)
其中:
- OtO_t:对象;
- PtP_t:动态参数。
因此,Behavior API 并不是简单保存一个 behavior_type,而是负责建立一个具有目标、方法、状态、步骤、动作、条件和反馈的动态运行结构。
271.3 行为的定义
Behavior|行为,是机器为了实现某一目标,在特定场景和状态条件下,根据某种方法连续组织动作并随着环境变化不断更新的动态过程。
可以简单表示为:
Behavior=Process(Method,State,Action,Feedback)Behavior=Process(Method,State,Action,Feedback)
行为与方法、动作必须严格区分。
Cognition
↓
认识当前情况
Method
↓
确定实现目标的方法
Behavior
↓
形成连续的动态过程
Action
↓
产生具体执行单元
因此:
Cognition≠MethodCognition\neq Method Method≠BehaviorMethod\neq Behavior Behavior≠ActionBehavior\neq Action
行为不是一个瞬间发生的动作,而是一组受目标和状态控制的连续过程。
271.4 行为的基本结构
一个行为对象可以定义为:
B=(I,G,M,O,S,C,P,A,T,F,Status)B=(I,G,M,O,S,C,P,A,T,F,Status)
其中:
- II:Behavior ID,行为标识;
- GG:Goal,行为目标;
- MM:Method,行为采用的方法;
- OO:Object,行为作用对象;
- SS:State,当前状态;
- CC:Condition,行为条件;
- PP:Parameters,动态参数;
- AA:Actions,行为动作集合;
- TT:Timeline,行为时间结构;
- FF:Feedback,行为反馈;
Status:行为当前运行状态。
软件结构可以表示为:
Behavior
├── ID
├── Goal
├── Method
├── Object
├── State
├── Condition
├── Parameters
├── Actions
├── Timeline
├── Feedback
└── Status
由此,Behavior 成为一个独立的机器认知工程对象。
271.5 行为与方法的关系
方法确定行为的基本实现方式。
因此:
Bt=F(Mt,Gt,Ot,St,Pt)B_t=F(M_t,G_t,O_t,S_t,P_t)
例如:
Goal:抓取鸡蛋
Method:Grasp
形成:
Behavior
├── Approach
├── Contact
├── Apply Force
├── Hold
└── Lift
因此:
Method→BehaviorMethod\rightarrow Behavior
但是,方法并不等于行为。
例如:
Method = Grasp
只是说明采用“抓取”方法。
而:
Behavior =
接近
→
接触
→
施加作用力
→
保持
→
提升
描述的是实际行为过程。
因此:
方法规定行为的基本方式,行为负责将方法转化为动态过程。
271.6 行为与目标
行为始终围绕目标运行。
定义:
Bt=F(Gt,Mt,Ct,St)B_t=F(G_t,M_t,C_t,S_t)
目标发生变化,行为也可能发生变化。
例如:
Goal = Grasp Egg
行为:
Approach
→
Contact
→
Hold
→
Lift
如果目标变成:
Goal = Release Egg
行为可能变为:
Move To Target
→
Reduce Force
→
Release
→
Confirm Release
因此:
Gt→BtG_t\rightarrow B_t
但目标并不能单独决定行为。
行为还必须受到:
Method
+
Object
+
State
+
Scene
+
Device Capability
等条件共同约束。
271.7 行为状态
行为是动态过程,因此必须具有行为状态。
定义:
BStBS_t
表示时间 tt 的 Behavior State。
典型状态可以包括:
Created
↓
Ready
↓
Started
↓
Running
↓
Paused
↓
Resumed
↓
Completed
异常情况下:
Running
↓
Condition Changed
↓
Interrupted
或者:
Running
↓
Execution Failed
↓
Failed
因此:
BSt→BSt+1BS_t\rightarrow BS_{t+1}
行为状态转换可以表示为:
BSt+1=T(BSt,St,At,Ft)BS_{t+1}=T(BS_t,S_t,A_t,F_t)
其中:
- BStBS_t:当前行为状态;
- StS_t:当前世界状态;
- AtA_t:当前动作;
- FtF_t:当前反馈;
- TT:状态转换函数。
271.8 行为的时间结构
行为与静态对象最大的区别之一,是行为具有时间过程。
因此可以建立:
B(t)B(t)
表示行为随时间变化。
例如抓取行为:
B(t)=Approach→Contact→Hold→LiftB(t)= Approach \rightarrow Contact \rightarrow Hold \rightarrow Lift
可以进一步定义离散行为状态:
B0→B1→B2→B3B_0\rightarrow B_1\rightarrow B_2\rightarrow B_3
其中:
B0 = Approach
B1 = Contact
B2 = Hold
B3 = Lift
在 PHP 运行环境中,可以采用离散时间:
Bt+1=T(Bt,Xt,Gt)B_{t+1}=T(B_t,X_t,G_t)
其中:
- BtB_t:当前行为状态;
- XtX_t:当前实时属性向量;
- GtG_t:当前目标;
- TT:行为转换函数。
因此无需将行为固定为静态流程表,而可以根据实时数据不断计算下一行为状态。
271.9 行为与动态属性
行为运行过程中,实时属性不断变化。
例如:
Xt=[Position,Velocity,Force,Pressure,Distance,Stability]TX_t= [ Position, Velocity, Force, Pressure, Distance, Stability ]^T
行为状态由当前属性决定:
Bt+1=F(Bt,Xt,Gt)B_{t+1}=F(B_t,X_t,G_t)
例如:
Distance>Threshold→ApproachDistance>Threshold \rightarrow Approach
当:
Distance≤ThresholdDistance\leq Threshold
则:
Approach→ContactApproach\rightarrow Contact
进一步:
Contact=True∧Force>FminContact=True\land Force>F_{min}
则:
Contact→HoldContact\rightarrow Hold
因此:
Dynamic Attribute
↓
State
↓
Behavior State
↓
Action
行为不是预先完全确定,而是在当前数据基础上动态推进。
271.10 行为与动作
行为由一个或多个动作构成。
可以表示:
B={A1,A2,⋯ ,An}B=\{A_1,A_2,\cdots,A_n\}
例如:
Behavior = Grasp
可以包含:
Action 1 → Move
Action 2 → Contact
Action 3 → Apply Force
Action 4 → Hold
Action 5 → Lift
因此:
Behavior→ActionBehavior\rightarrow Action
但是:
Behavior≠ActionBehavior\neq Action
行为是过程结构。
动作是过程中的执行单元。
可以进一步表示:
At=F(Bt,St,Pt,Dt)A_t=F(B_t,S_t,P_t,D_t)
其中:
- BtB_t:行为;
- StS_t:状态;
- PtP_t:参数;
- DtD_t:设备。
271.11 行为条件
行为必须具有执行条件。
定义:
Condition(B)=C1∧C2∧⋯∧CnCondition(B)=C_1\land C_2\land\cdots\land C_n
例如:
Object Exists
∧
Target Valid
∧
Object Reachable
∧
Device Available
∧
State Valid
当:
Condition(B)=TrueCondition(B)=True
行为可以继续。
如果:
Condition(B)=FalseCondition(B)=False
则:
Behavior
↓
Pause / Interrupt / Re-Evaluate
因此行为不是简单按照固定顺序执行,而是受到当前世界条件约束。
271.12 行为过程模型
一个通用行为模型可以表示为:
Bt+1=T(Bt,Xt,Gt,Mt,Ft)B_{t+1}=T(B_t,X_t,G_t,M_t,F_t)
其中:
- BtB_t:当前行为;
- XtX_t:当前实时数据;
- GtG_t:目标;
- MtM_t:方法;
- FtF_t:反馈;
- TT:行为转换函数。
基本运行过程:
Goal
+
Method
+
Current State
+
Current Data
↓
Behavior State
↓
Action
↓
Execution
↓
Feedback
↓
Behavior Update
因此行为系统形成:
Behavior→Action→Feedback→BehaviorBehavior\rightarrow Action\rightarrow Feedback\rightarrow Behavior
这是行为动态运行的基本闭环。
271.13 Behavior API 的核心接口
Behavior API 可以提供:
/api/behavior/create
/api/behavior/get
/api/behavior/update
/api/behavior/delete
/api/behavior/list
/api/behavior/query
/api/behavior/start
/api/behavior/pause
/api/behavior/resume
/api/behavior/stop
/api/behavior/update-state
/api/behavior/actions
/api/behavior/validate
/api/behavior/history
其中:
create:创建行为;
get:获取行为;
update:更新行为;
delete:删除行为;
list:获取行为集合;
query:查询行为;
start:启动行为;
pause:暂停行为;
resume:恢复行为;
stop:停止行为;
update-state:更新行为状态;
actions:获取当前行为动作;
validate:验证行为;
history:获取行为历史。
也可以使用资源型接口:
/api/behaviors
/api/behaviors/{id}
/api/behaviors/{id}/start
/api/behaviors/{id}/pause
/api/behaviors/{id}/resume
/api/behaviors/{id}/stop
/api/behaviors/{id}/actions
/api/behaviors/{id}/history
271.14 Behavior API 请求结构
一个行为请求可以定义为:
{
"request_id": "B10001",
"goal": {
"type": "grasp",
"target": "egg_01"
},
"method": {
"id": "method_grasp"
},
"cognition_id": "C10001",
"scene_id": "SC10001",
"object_id": "egg_01",
"state": {
"type": "stable"
},
"parameters": {
"position": {},
"force": 0.8,
"pressure": 0.5
},
"timestamp": 1788500000
}
系统处理流程:
JSON
↓
Behavior API
↓
Behavior Controller
↓
Behavior Service
↓
Behavior Engine
↓
Behavior Model
↓
Behavior Instance
271.15 Behavior API 响应结构
行为 API 可以返回:
{
"request_id": "B10001",
"status": "running",
"behavior": {
"id": "behavior_10001",
"type": "grasp",
"state": "approach"
},
"actions": [
{
"type": "move",
"target": "egg_01"
}
],
"parameters": {
"velocity": 0.2,
"force": 0
},
"timestamp": 1788500000
}
其基本结构:
BR=(I,B,BS,A,P,F,T)BR=(I,B,BS,A,P,F,T)
其中:
- II:请求 ID;
- BB:行为;
- BSBS:行为状态;
- AA:动作;
- PP:参数;
- FF:反馈;
- TT:时间。
271.16 BehaviorController
PHP OOP 中可以建立:
class BehaviorApiController
{
protected $service;
public function create()
{
$input = $this->getRequestData();
$result = $this->service->create($input);
return $this->json($result);
}
public function start()
{
$input = $this->getRequestData();
$result = $this->service->start($input);
return $this->json($result);
}
public function updateState()
{
$input = $this->getRequestData();
$result = $this->service->updateState($input);
return $this->json($result);
}
}
Controller 的职责保持明确:
Receive Request
↓
Call Service
↓
Return Response
它不负责行为状态计算。
271.17 BehaviorService
BehaviorService 负责组织行为业务流程:
class BehaviorService
{
protected $engine;
public function create($input)
{
$this->validate($input);
return $this->engine->createBehavior($input);
}
public function start($input)
{
$this->validate($input);
return $this->engine->start($input);
}
public function updateState($input)
{
$this->validate($input);
return $this->engine->updateState($input);
}
protected function validate($input)
{
return true;
}
}
形成:
Behavior API
↓
BehaviorController
↓
BehaviorService
↓
BehaviorEngine
271.18 BehaviorEngine
BehaviorEngine 是行为动态计算的核心。
class BehaviorEngine
{
public function createBehavior($input)
{
return array(
'goal' => $input['goal'],
'method' => $input['method'],
'object' => $input['object_id'],
'state' => 'created'
);
}
public function start($input)
{
return array(
'state' => 'running'
);
}
public function updateState($input)
{
return $this->calculateNextState($input);
}
protected function calculateNextState($input)
{
return array(
'state' => 'next_state'
);
}
}
实际系统中,calculateNextState() 可以进一步结合:
Goal
+
Method
+
Object
+
Attribute
+
Relation
+
State
+
Scene
+
Feedback
进行行为状态计算。
271.19 BehaviorModel
BehaviorModel 表示软件系统中的行为对象。
class BehaviorModel
{
protected $id;
protected $goal;
protected $method;
protected $object;
protected $state;
protected $conditions;
protected $parameters;
protected $actions;
protected $feedback;
protected $status;
public function getId()
{
return $this->id;
}
public function getMethod()
{
return $this->method;
}
public function getState()
{
return $this->state;
}
public function getActions()
{
return $this->actions;
}
}
其工程转换关系为:
Behavior Theory
↓
Behavior Object Model
↓
BehaviorModel
↓
Behavior Instance
↓
Runtime Behavior
271.20 BehaviorRepository
BehaviorRepository 负责行为数据持久化。
class BehaviorRepository
{
public function save($behavior)
{
// Save behavior
}
public function find($id)
{
// Find behavior
}
public function update($id, $behavior)
{
// Update behavior
}
public function delete($id)
{
// Delete behavior
}
public function history($id)
{
// Behavior history
}
}
数据库可以建立:
cognitive_behaviors
例如:
id
behavior_type
goal
method_id
object_id
current_state
conditions
parameters
status
timestamp
created_at
updated_at
行为动作可以通过:
cognitive_behavior_actions
进行管理。
行为历史可以通过:
cognitive_behavior_history
保存。
271.21 行为状态转换
行为运行的核心之一是状态转换。
定义:
BSt+1=T(BSt,Xt,Gt,Ft)BS_{t+1}=T(BS_t,X_t,G_t,F_t)
例如抓取行为:
Approach
↓
Distance <= Threshold
↓
Contact
↓
Force >= Minimum
↓
Hold
↓
Object Stable
↓
Lift
可以表示:
Approach→ContactApproach\rightarrow Contact Contact→HoldContact\rightarrow Hold Hold→LiftHold\rightarrow Lift
如果条件失败:
Hold→InterruptedHold\rightarrow Interrupted
如果执行成功:
Lift→CompletedLift\rightarrow Completed
因此行为是一个动态状态转换系统。
271.22 行为与反馈
行为不能只根据过去条件运行。
它必须不断接收反馈。
完整结构:
Behavior
↓
Action
↓
Device
↓
World Change
↓
Feedback
↓
State Update
↓
Behavior Update
形式化:
Bt+1=T(Bt,At,Ft,St)B_{t+1}=T(B_t,A_t,F_t,S_t)
例如:
行为:
Lift Egg
设备执行后:
Feedback:
Egg Position Changed
系统更新:
Egg State
↓
Scene
↓
Cognition
↓
Behavior
如果鸡蛋没有成功移动:
Feedback
↓
Behavior Evaluation
↓
Method Re-Evaluation
↓
New Behavior
因此反馈可以改变当前行为。
271.23 行为暂停与恢复
现实运行过程中,行为可能暂时无法继续。
例如:
Running
↓
Obstacle Detected
↓
Paused
当条件恢复:
Paused
↓
Condition Valid
↓
Resumed
因此:
Running→Paused→RunningRunning\rightarrow Paused\rightarrow Running
也可能:
Running→Interrupted→Re−EvaluateRunning\rightarrow Interrupted\rightarrow Re-Evaluate
行为 API 必须支持这种状态管理。
这使 Behavior API 不只是一个行为记录接口,而是一个动态行为控制接口。
271.24 行为终止
行为可以因为成功、失败或条件变化而终止。
定义:
Terminate(B)=Success∨Failure∨InvalidTerminate(B)=Success\lor Failure\lor Invalid
例如:
Behavior
↓
Goal Achieved
↓
Completed
或者:
Behavior
↓
Object Lost
↓
Failed
或者:
Behavior
↓
Method Condition Invalid
↓
Interrupted
终止之后可以进入新的认知周期:
Behavior End
↓
Feedback
↓
State Update
↓
Scene Update
↓
Re-Cognition
271.25 行为与设备
Behavior API 不直接操作物理设备。
行为产生动作:
Bt→AtB_t\rightarrow A_t
动作再进行设备匹配:
At→DtA_t\rightarrow D_t
因此:
Behavior
↓
Action
↓
Device Capability
↓
Device
这种结构可以避免 Behavior Engine 与具体设备硬绑定。
例如:
Behavior = Move
可以产生:
Action = MoveTo(Position)
随后由 Device Engine 判断:
Which device can execute MoveTo?
因此:
Behavior≠DeviceBehavior\neq Device Action≠DeviceAction\neq Device
三者保持工程边界。
271.26 行为与动态数学关系
ICAI 行为工程可以使用动态参数建立数学关系。
例如位置:
Pt+1=Pt+VtΔtP_{t+1}=P_t+V_t\Delta t
其中:
- PtP_t:当前空间位置;
- VtV_t:当前速度;
- Δt\Delta t:时间间隔。
速度变化:
Vt+1=Vt+AtΔtV_{t+1}=V_t+A_t\Delta t
其中:
- AtA_t:加速度。
作用力可以进一步参与行为参数:
Ft=mAtF_t=mA_t
其中:
- FtF_t:作用力;
- mm:对象质量;
- AtA_t:加速度。
因此:
Position
+
Velocity
+
Acceleration
+
Force
↓
Dynamic State
↓
Behavior Update
在 PHP 工程中,可以采用离散时间计算:
Xt+1=F(Xt,Ut)X_{t+1}=F(X_t,U_t)
从而将行为动态变化转换为可执行的软件计算。
271.27 通用行为模型
ICAI 不应该为每一个具体对象建立完全独立的行为程序。
例如不应该分别建立:
GrabEgg()
GrabGlass()
GrabBottle()
GrabCup()
而可以建立通用:
Grasp(Object, Attributes, State, Relation)
其结构:
Bt=F(Gt,Ot,At,Rt,St,Mt)B_t=F(G_t,O_t,A_t,R_t,S_t,M_t)
对象不同:
Egg
Glass
Bottle
Cup
进入同一个行为模型。
但:
At,Rt,StA_t,R_t,S_t
不同。
于是:
BtEgg≠BtGlassB_t^{Egg}\neq B_t^{Glass}
即使方法类别相同,具体行为参数和状态过程仍然可以根据当前对象动态产生。
这正是通用行为工程的基础。
271.28 Behavior API 与实时系统
在实时认知运行中,Behavior API 位于:
Real-Time Data
↓
Object
↓
State
↓
Scene
↓
Cognition
↓
Method
↓
Behavior API
↓
Action
当实时数据发生变化:
Attribute Changed
↓
State Changed
↓
Scene Changed
↓
Cognition Changed
↓
Method Changed
↓
Behavior Re-Evaluation
因此:
Bt+1=F(Mt+1,Ct+1,St+1,Sct+1)B_{t+1}=F(M_{t+1},C_{t+1},S_{t+1},Sc_{t+1})
行为随着当前机器世界变化而变化。
271.29 Behavior API 的完整闭环
完整行为运行过程:
World
↓
Real-Time Data
↓
Element
↓
Object
↓
Attribute
↓
Relation
↓
State
↓
Scene
↓
Cognition
↓
Method
↓
Behavior
↓
Action
↓
Device
↓
World Change
↓
Feedback
↓
State Update
↓
Scene Update
↓
Re-Cognition
↓
Method Re-Evaluation
↓
Behavior Re-Evaluation
因此:
Behaviort→Actiont→Worldt+1Behavior_t\rightarrow Action_t\rightarrow World_{t+1}
同时:
Worldt+1→Feedbackt+1→Behaviort+1World_{t+1}\rightarrow Feedback_{t+1}\rightarrow Behavior_{t+1}
最终:
Bt+1=T(Bt,Xt,Gt,Ft)B_{t+1}=T(B_t,X_t,G_t,F_t)
行为成为整个机器认知闭环中的动态执行层。
271.30 Behavior API 的系统定位
Behavior API 在 ICAI 中可以正式定义为:
Behavior API 是连接方法层与动作执行层的标准程序接口,负责根据目标、认知、方法、对象、状态和场景建立动态行为,并管理行为状态、行为条件、行为动作、动态参数和反馈,使方法能够转化为可持续运行的行为过程。
其核心关系为:
Cognition→Method→Behavior→ActionCognition\rightarrow Method\rightarrow Behavior\rightarrow Action
其中:
- Cognition:当前认知;
- Method:实现目标的方法;
- Behavior:方法形成的动态过程;
- Action:行为中的具体执行单元。
因此 Behavior API 是 ICAI 从认知结构进入实际执行结构的重要接口。
271.31 本章总结
第271章建立了 Behavior API|行为 API。
第269章完成:
Scene→CognitionScene\rightarrow Cognition
第270章完成:
Cognition→MethodCognition\rightarrow Method
第271章进一步完成:
Method→BehaviorMethod\rightarrow Behavior
行为的核心不是一个静态名称,而是一个动态过程:
Bt=F(Gt,Ct,Mt,Ot,St,Sct,Pt)B_t=F(G_t,C_t,M_t,O_t,S_t,Sc_t,P_t)
行为随着实时数据和反馈持续变化:
Bt+1=T(Bt,Xt,Gt,Ft)B_{t+1}=T(B_t,X_t,G_t,F_t)
行为进一步产生动作:
Behavior→ActionBehavior\rightarrow Action
动作进入设备执行:
Action→DeviceAction\rightarrow Device
设备改变现实世界:
Device→WorldChangeDevice\rightarrow WorldChange
反馈重新进入认知系统:
WorldChange→Feedback→State→Scene→CognitionWorldChange\rightarrow Feedback\rightarrow State\rightarrow Scene\rightarrow Cognition
因此形成完整闭环:
World
↓
Element
↓
Object
↓
Attribute
↓
Relation
↓
State
↓
Scene
↓
Cognition
↓
Method
↓
Behavior
↓
Action
↓
Device
↓
World Change
↓
Feedback
↓
Re-Cognition
到第271章,ICAI API 层已经形成:
Element API
↓
Object API
↓
Attribute API
↓
Relation API
↓
State API
↓
Scene API
↓
Cognition API
↓
Method API
↓
Behavior API
其中前三个层次建立机器世界结构:
Element→Object→AttributeElement\rightarrow Object\rightarrow Attribute
中间三个层次建立世界关系与场景:
Relation→State→SceneRelation\rightarrow State\rightarrow Scene
后三个层次建立机器认知与行为:
Cognition→Method→BehaviorCognition\rightarrow Method\rightarrow Behavior
下一层将进入 Action API|动作 API,完成:
Behavior→ActionBehavior\rightarrow Action
使行为过程正式转换为独立、可调用、可验证的动作执行单元。