第269章 Cognition API|认知 API
269.1 认知 API 的提出背景
前面的 Element API、Object API、Attribute API、Relation API、State API 和 Scene API,已经建立了机器世界从基础数据到场景结构的连续工程接口。
其结构为:
Element
↓
Object
↓
Attribute
↓
Relation
↓
State
↓
Scene
但是,场景本身还不是认知。
场景回答的是:
当前机器世界中存在什么对象,这些对象具有怎样的属性、关系和状态,并处于怎样的环境、空间和时间结构中。
认知则进一步回答:
在当前目标和当前场景条件下,机器形成了什么认识,以及应该形成什么方法、行为和动作。
因此需要建立:
Cognition API|认知 API。
Cognition API 是 ICAI 系统中连接当前场景结构与认知运行系统的标准通信接口。
其基本结构为:
Scene
↓
Cognition API
↓
Cognitive Service
↓
Cognitive Engine
↓
Cognitive Model
↓
Cognition Result
Cognition API 本身不等于 Cognitive Engine。
API 负责:
接收认知数据
↓
验证认知输入
↓
调用认知服务
↓
进入认知引擎
↓
返回认知结果
而 Cognitive Engine 负责真正的认知计算。
269.2 Cognition API 的定义
Cognition API|认知 API,是用于向 ICAI 认知系统提交目标、对象、场景和认知条件,并获得认知结果、方法、行为和动作结构的标准程序接口。
可以定义:
CognitionAPI(Input)→CognitionResultCognitionAPI(Input)\rightarrow CognitionResult
其中:
Input:认知输入;CognitionResult:认知输出。
完整认知输入可以表示为:
It=(Gt,Ot,At,Rt,St,Sct,Et,Pt,Tt)I_t=(G_t,O_t,A_t,R_t,S_t,Sc_t,E_t,P_t,T_t)
其中:
- GtG_t:目标;
- OtO_t:对象;
- AtA_t:属性;
- RtR_t:关系;
- StS_t:状态;
- SctSc_t:场景;
- EtE_t:环境;
- PtP_t:空间位置;
- TtT_t:时间。
认知结果可以表示为:
Ct=F(Gt,Ot,At,Rt,St,Sct)C_t=F(G_t,O_t,A_t,R_t,S_t,Sc_t)
进一步:
Ct→Mt→Bt→ActC_t\rightarrow M_t\rightarrow B_t\rightarrow Ac_t
其中:
- CtC_t:认知;
- MtM_t:方法;
- BtB_t:行为;
- ActAc_t:动作。
269.3 Cognition API 的核心作用
Cognition API 主要承担六类任务。
第一,接收认知输入。
第二,验证认知输入结构。
第三,建立 Cognitive Runtime Context。
第四,调用 Cognitive Engine。
第五,获得认知结果。
第六,将认知结果结构化返回给调用系统。
基本流程:
External System
↓
Cognition API
↓
Cognition Controller
↓
Cognition Service
↓
Cognitive Engine
↓
Cognitive Model
↓
Cognition Result
↓
JSON
↓
External System
因此 Cognition API 是认知能力的通信入口。
269.4 Cognition API 与 Scene API 的关系
Scene API 解决:
Structure→SceneStructure\rightarrow Scene
Cognition API 解决:
Scene→CognitionScene\rightarrow Cognition
两者形成连续关系:
Object
+
Attribute
+
Relation
+
State
↓
Scene API
↓
Scene
↓
Cognition API
↓
Cognition
因此:
Scene 是认知的结构输入,Cognition 是对当前结构进行认知计算后的结果。
Scene API 不应该直接承担认知决策。
同样,Cognition API 也不应该重新承担对象、关系和状态的基础管理职责。
这种边界可以表示为:
Object API
↓
Attribute API
↓
Relation API
↓
State API
↓
Scene API
↓
Cognition API
↓
Cognitive Engine
由此保持 API 层的清晰结构。
269.5 Cognition Input|认知输入
认知 API 的输入可以定义为:
CognitionInput
{
request_id
goal
object
scene
context
timestamp
}
更完整的认知输入结构:
CognitionInput
├── Request ID
├── Goal
├── Objects
├── Attributes
├── Relations
├── States
├── Scene
├── Environment
├── Position
├── Time
└── Context
其中:
Request ID 用于标识本次认知请求;
Goal 表示当前目标;
Objects 表示相关对象;
Attributes 表示对象属性;
Relations 表示对象关系;
States 表示对象状态;
Scene 表示当前场景;
Environment 表示环境;
Position 表示空间信息;
Time 表示时间;
Context 表示当前认知上下文。
269.6 Cognition Context|认知上下文
认知不是脱离条件独立产生的。
同一个对象,在不同场景和不同目标下,可以产生不同的认知结果。
因此建立:
Cognition Context|认知上下文。
可以定义:
Contextt=(Gt,Sct,Et,Pt,Tt)Context_t=(G_t,Sc_t,E_t,P_t,T_t)
其中:
- GtG_t:目标;
- SctSc_t:场景;
- EtE_t:环境;
- PtP_t:空间;
- TtT_t:时间。
认知过程可以表示:
Ct=F(Contextt,Ot,At,Rt,St)C_t=F(Context_t,O_t,A_t,R_t,S_t)
例如,同一个“杯子”对象:
目标:拿起杯子
系统关注:
杯子位置
杯子状态
手的位置
手与杯子的距离
手与杯子的接触关系
而目标变成:
目标:判断杯子是否装满
认知关注结构则发生变化:
杯子
↓
内部状态
↓
液体
↓
液面
↓
容量状态
因此目标和场景共同决定认知过程中的结构关注。
269.7 Cognitive Model|认知模型
Cognition API 的核心输入最终进入 Cognitive Model|认知模型。
认知模型可以表示:
CMt=F(Gt,Ot,At,Rt,St,Sct)CM_t=F(G_t,O_t,A_t,R_t,S_t,Sc_t)
其中:
- CMtCM_t:当前认知模型;
- GtG_t:目标;
- OtO_t:对象;
- AtA_t:属性;
- RtR_t:关系;
- StS_t:状态;
- SctSc_t:场景。
认知模型可以组织为:
Cognitive Model
├── Goal
├── Scene
│ ├── Objects
│ ├── Attributes
│ ├── Relations
│ └── States
├── Cognition
├── Methods
├── Behaviors
└── Actions
因此 Cognitive Model 是认知运行过程中的统一结构。
Cognition API 的作用,就是将外部输入转换为可以进入该结构的认知请求。
269.8 Cognition API 的认知过程
一次完整的认知 API 请求可以表示为:
Request
↓
Input Validation
↓
Object Validation
↓
Scene Validation
↓
Context Construction
↓
Cognitive Model Construction
↓
Cognitive Matching
↓
Cognition
↓
Method Selection
↓
Behavior Formation
↓
Action Formation
↓
Response
其中核心认知过程可以抽象为:
Ct=F(Gt,CMt)C_t=F(G_t,CM_t)
然后:
Mt=SelectMethod(Ct)M_t=SelectMethod(C_t)
进一步:
Bt=BuildBehavior(Gt,Ct,Mt)B_t=BuildBehavior(G_t,C_t,M_t)
最后:
Act=GenerateAction(Bt)Ac_t=GenerateAction(B_t)
这使 Cognition API 不只是一个普通的数据查询接口,而是机器认知运行能力的程序入口。
269.9 Cognition Result|认知结果
认知 API 返回的结果应该是结构化数据,而不是一段非结构化描述。
可以定义:
CognitionResult
{
request_id
status
cognition
matched_objects
matched_scene
method
behavior
action
confidence
timestamp
}
其中:
request_id:请求编号;status:处理状态;cognition:认知结果;matched_objects:匹配到的对象;matched_scene:匹配到的场景;method:形成的方法;behavior:形成的行为;action:形成的动作;confidence:认知结果的可信度;timestamp:认知时间。
因此:
Result=(C,O,Sc,M,B,Ac,F,T)Result=(C,O,Sc,M,B,Ac,F,T)
其中 FF 可以表示认知之后产生的反馈或结果状态。
269.10 Cognition API 与认知匹配
ICAI 认知过程中的重要基础机制是Cognitive Matching|认知匹配。
认知 API 可以将当前输入交给认知引擎进行结构匹配:
Goal
↓
Current Scene
↓
Object Matching
↓
Attribute Matching
↓
Relation Matching
↓
State Matching
↓
Scene Matching
↓
Cognition
可以表示:
Match(G,O,A,R,S,Sc)→CMatch(G,O,A,R,S,Sc)\rightarrow C
这里的 Match 不是简单字符串比较,而是对机器世界结构进行条件匹配。
例如:
目标:抓取对象
当前场景:
Hand
Egg
Table
关系:
Hand → Near → Egg
状态:
Hand = Moving
Egg = Stable
认知系统可以形成:
目标对象 = Egg
目标关系 = Hand → Grasp → Egg
目标状态 = Egg 可被抓取
进一步形成:
Method
↓
Grasp
↓
Behavior
↓
Action
因此 Cognition API 是认知匹配过程的系统入口。
269.11 Cognition API 与 Method
认知不是最终执行动作。
认知结果需要进一步找到能够实现目标的方法。
因此:
Ct→MtC_t\rightarrow M_t
其中:
- CtC_t:当前认知;
- MtM_t:当前方法。
方法可以定义为:
Mt=F(Gt,Ot,St,Ct)M_t=F(G_t,O_t,S_t,C_t)
例如:
Goal = Grasp
Object = Egg
State = Stable
Relation = Near
系统形成:
Method = Grasp
方法本身不是一次具体的设备动作。
它是从当前认知结构到行为结构之间的中间层。
因此:
Cognition
↓
Method
↓
Behavior
↓
Action
Cognition API 可以将 Method 作为认知结果的一部分返回。
269.12 Cognition API 与 Behavior
方法确定之后,还需要形成行为过程。
定义:
Bt=F(Gt,Ct,Mt,St)B_t=F(G_t,C_t,M_t,S_t)
例如:
Goal
↓
Grasp Egg
↓
Method
↓
Grasp
↓
Behavior
↓
Approach
↓
Contact
↓
Apply Force
↓
Hold
↓
Lift
这里:
Method|方法 是行为实现的规则和方式。
Behavior|行为 是按照目标、状态和方法形成的动态过程。
Action|动作 是具体可执行单元。
因此:
Method≠Behavior≠ActionMethod\neq Behavior\neq Action
Cognition API 可以返回三层结构:
Cognition
↓
Method
↓
Behavior
然后由后续 Action / Device 层完成执行。
269.13 Cognition API 与 Action
当行为形成后,可以产生动作:
Act=M(Bt,St,Pt)Ac_t=M(B_t,S_t,P_t)
其中:
- ActAc_t:动作;
- BtB_t:行为;
- StS_t:当前状态;
- PtP_t:动态参数。
动作可以包含:
Action
{
type
target
parameters
device
expected_state
}
例如:
Action
{
type: "grasp",
target: "egg",
parameters:
{
position: ...,
force: ...,
pressure: ...,
velocity: ...
}
}
其中动态参数不是固定常量,而是根据当前对象和当前状态计算得到。
因此:
Actiont=F(Ct,Mt,Bt,St,At)Action_t=F(C_t,M_t,B_t,S_t,A_t)
这使认知结果能够继续进入设备执行系统。
269.14 Cognition API 的 PHP OOP 架构
Cognition API 可以采用:
CognitionApiController
↓
CognitionService
↓
CognitiveEngine
↓
CognitiveModel
↓
CognitiveRepository
其中:
CognitionApiController
负责 API 请求和响应。
CognitionService
负责认知服务流程。
CognitiveEngine
负责认知计算。
CognitiveModel
负责认知运行结构。
CognitiveRepository
负责认知数据持久化。
269.15 CognitionApiController
PHP 可以建立:
class CognitionApiController
{
protected $service;
public function analyze()
{
$input = $this->getRequestData();
$result = $this->service->cognize($input);
return $this->json($result);
}
public function current()
{
$result = $this->service->currentCognition();
return $this->json($result);
}
public function history()
{
$result = $this->service->history();
return $this->json($result);
}
}
Controller 的职责是:
Receive
↓
Route
↓
Call Service
↓
Return JSON
而不是直接实现认知算法。
269.16 CognitionService
CognitionService 负责组织认知流程:
class CognitionService
{
protected $engine;
public function cognize($input)
{
$this->validate($input);
return $this->engine->cognize($input);
}
protected function validate($input)
{
return true;
}
}
因此:
API Controller
↓
Service
↓
Engine
形成稳定的工程边界。
269.17 CognitiveEngine
真正的认知计算进入 CognitiveEngine。
class CognitiveEngine
{
public function cognize($input)
{
$goal = $input['goal'];
$scene = $input['scene'];
$object = $input['objects'];
$cognition = $this->buildCognition(
$goal,
$scene,
$object
);
$method = $this->selectMethod($cognition);
$behavior = $this->buildBehavior(
$cognition,
$method
);
$action = $this->buildAction(
$behavior
);
return array(
'cognition' => $cognition,
'method' => $method,
'behavior' => $behavior,
'action' => $action
);
}
}
这里最重要的是职责分离。
Controller 不认知。
Service 不认知。
API 不认知。
真正的认知计算属于:
CognitiveEngine
269.18 Cognition API 的请求接口
可以建立:
/api/cognition/analyze
/api/cognition/current
/api/cognition/get
/api/cognition/history
/api/cognition/validate
/api/cognition/method
/api/cognition/behavior
/api/cognition/action
其中:
/analyze:提交认知请求;
/current:获取当前认知;
/get:获取指定认知;
/history:获取认知历史;
/validate:验证认知输入;
/method:获得对应方法;
/behavior:获得行为结构;
/action:获得动作结构。
也可以采用资源型设计:
/api/cognitions
/api/cognitions/{id}
/api/cognitions/{id}/method
/api/cognitions/{id}/behavior
/api/cognitions/{id}/action
/api/cognitions/{id}/history
269.19 JSON 认知请求
一个基本的认知请求可以表示为:
{
"request_id": "C10001",
"goal": {
"type": "grasp",
"target": "egg"
},
"scene_id": "SC10001",
"objects": [
{
"id": "hand_01",
"type": "hand"
},
{
"id": "egg_01",
"type": "egg"
}
],
"context": {
"timestamp": 1788500000
}
}
系统收到请求后:
JSON
↓
Decode
↓
Cognition Input
↓
Scene Load
↓
Cognitive Model
↓
Cognitive Engine
因此 JSON 仍然只是通信数据结构。
认知计算发生在:
CognitiveEngine
中。
269.20 JSON 认知响应
认知 API 可以返回:
{
"request_id": "C10001",
"status": "success",
"cognition": {
"target_object": "egg_01",
"state": "graspable"
},
"method": {
"type": "grasp"
},
"behavior": {
"type": "approach_contact_grasp"
},
"action": {
"type": "grasp",
"target": "egg_01"
}
}
这形成:
Cognition
↓
Method
↓
Behavior
↓
Action
因此外部系统不仅可以知道“机器认知到了什么”,还可以获得认知之后形成的结构化行为信息。
269.21 Cognition API 与实时认知
Cognition API 不仅适用于一次性请求,也可以用于实时认知。
实时认知过程:
Sensor
↓
Element API
↓
Object Update
↓
Attribute Update
↓
Relation Update
↓
State Update
↓
Scene Update
↓
Cognition API
↓
Cognitive Engine
↓
Cognition
↓
Behavior
↓
Action
当动作执行后:
Action
↓
Device
↓
World Change
↓
Feedback
↓
Element API
↓
Scene Update
↓
Cognition API
↓
Re-Cognition
因此:
Ct→At→Wt+1→Ft+1→Ct+1C_t\rightarrow A_t\rightarrow W_{t+1}\rightarrow F_{t+1}\rightarrow C_{t+1}
形成认知闭环。
269.22 Cognition History|认知历史
机器认知不是只有当前认知,还需要保存认知变化过程。
定义:
HC={(t1,C1),(t2,C2),⋯ ,(tn,Cn)}H_C=\{(t_1,C_1),(t_2,C_2),\cdots,(t_n,C_n)\}
例如:
t1 → Egg not reachable
t2 → Egg reachable
t3 → Egg graspable
t4 → Egg grasping
t5 → Egg lifted
这形成:
C1→C2→C3→C4→C5C_1\rightarrow C_2\rightarrow C_3\rightarrow C_4\rightarrow C_5
认知历史可以用于:
当前认知
+
过去认知
↓
认知变化
并进一步支持:
Cognition
↓
Experience
↓
Memory
从而与后续 ICAI Memory API、Experience API 等接口产生连接。
269.23 Cognition API 与反馈
认知结果执行后,现实世界会发生变化。
因此认知结果不能永久保持有效。
例如:
Cognition:
Egg is graspable
执行:
Action:
Grasp Egg
现实世界发生变化:
Egg Position Changed
Egg State Changed
Hand-Egg Relation Changed
于是:
Feedback
↓
State Update
↓
Scene Update
↓
Cognition Update
因此:
Ct+1=F(Gt+1,Ot+1,At+1,Rt+1,St+1,Sct+1)C_{t+1}=F(G_{t+1},O_{t+1},A_{t+1},R_{t+1},S_{t+1},Sc_{t+1})
新的认知来自新的世界结构。
这说明 ICAI 的认知不是一次性计算,而是动态运行过程。
269.24 Cognition API 的验证机制
认知 API 必须验证输入是否具备基本结构。
可以定义:
Valid(CInput)=Valid(G)∧Valid(O)∧Valid(Sc)∧Valid(T)Valid(CInput)=Valid(G)\land Valid(O)\land Valid(Sc)\land Valid(T)
其中:
- GG:目标;
- OO:对象;
- ScSc:场景;
- TT:时间。
进一步要求:
Goal Valid
+
Object Valid
+
Scene Valid
+
State Valid
+
Relation Valid
↓
Valid Cognition Input
如果场景不存在,则不能形成有效的当前场景认知。
如果目标不存在,则无法确定当前认知方向。
因此:
Valid(Sc)∧Valid(G)⇒CognitionInputValidValid(Sc)\land Valid(G)\Rightarrow CognitionInputValid
269.25 Cognition API 的统一数据链
到第269章,ICAI API 层已经形成:
Element API
↓
Object API
↓
Attribute API
↓
Relation API
↓
State API
↓
Scene API
↓
Cognition API
其理论结构为:
E→O→A→R→S→Sc→CE\rightarrow O\rightarrow A\rightarrow R\rightarrow S\rightarrow Sc\rightarrow C
进一步:
C→M→B→Ac→DC\rightarrow M\rightarrow B\rightarrow Ac\rightarrow D
其中:
- EE:Element;
- OO:Object;
- AA:Attribute;
- RR:Relation;
- SS:State;
- ScSc:Scene;
- CC:Cognition;
- MM:Method;
- BB:Behavior;
- AcAc:Action;
- DD:Device。
最终形成:
Element
↓
Object
↓
Attribute
↓
Relation
↓
State
↓
Scene
↓
Cognition
↓
Method
↓
Behavior
↓
Action
↓
Device
↓
Feedback
↓
Re-Cognition
这已经形成 ICAI 的完整机器认知运行结构。
269.26 Cognition API 的系统边界
Cognition API 建立之后,ICAI 开始具有明确的外部系统通信能力。
外部系统可以提交:
Goal
+
Object
+
Scene
+
Context
ICAI 返回:
Cognition
+
Method
+
Behavior
+
Action
因此:
External System
↓
Cognition API
↓
ICAI Runtime
↓
Cognitive Engine
↓
Cognition
↓
Method
↓
Behavior
↓
Action
↓
JSON Response
↓
External System
这使 ICAI 的认知能力可以作为一个独立的软件能力被其他系统调用。
269.27 Cognition API 与 ICAI Runtime
Cognition API 并不直接代替 ICAI Runtime。
其关系为:
Cognition API
↓
API Controller
↓
Cognition Service
↓
ICAI Runtime
↓
Cognitive Engine
↓
Cognitive Model
ICAI Runtime 保存当前运行状态:
Rt=[Gt,Ot,Sct,Ct,Bt,At,Dt,Ft]R_t=[G_t,O_t,Sc_t,C_t,B_t,A_t,D_t,F_t]
其中:
- GtG_t:目标;
- OtO_t:对象;
- SctSc_t:场景;
- CtC_t:认知;
- BtB_t:行为;
- AtA_t:动作;
- DtD_t:设备;
- FtF_t:反馈。
因此 API 请求进入 Runtime 后,可以读取当前运行状态,也可以推动运行状态发生变化。
Rt+1=T(Rt,Dt)R_{t+1}=T(R_t,D_t)
269.28 Cognition API 的工程定位
Cognition API 在 ICAI 中可以正式定义为:
Cognition API 是 ICAI 对外提供机器认知能力的标准程序接口,负责接收目标、对象、场景和上下文数据,调用 Cognitive Engine 形成当前认知,并以结构化数据返回认知、方法、行为和动作结果。
其核心边界为:
Scene
↓
Cognition API
↓
Cognitive Engine
↓
Cognition
↓
Method
↓
Behavior
↓
Action
API 负责通信。
Service 负责业务流程。
Engine 负责认知计算。
Model 负责认知结构。
Runtime 负责持续运行。
这五者形成清晰的工程分层。
269.29 本章总结
第269章建立了 Cognition API|认知 API。
前六个 API 完成了机器世界结构建设:
Element→Object→Attribute→Relation→State→SceneElement\rightarrow Object\rightarrow Attribute\rightarrow Relation\rightarrow State\rightarrow Scene
第269章进一步建立:
Scene→CognitionScene\rightarrow Cognition
从而形成:
Scene
↓
Cognition API
↓
Cognitive Engine
↓
Cognition
认知继续向行为执行扩展:
Cognition→Method→Behavior→ActionCognition\rightarrow Method\rightarrow Behavior\rightarrow Action
再进入设备:
Action→Device→WorldAction\rightarrow Device\rightarrow World
世界变化产生反馈:
World→Feedback→SceneUpdate→Re−CognitionWorld\rightarrow Feedback\rightarrow SceneUpdate\rightarrow Re-Cognition
因此,第269章完成了 ICAI API 层最关键的一次跨越:
机器世界结构
↓
Scene
↓
机器认知
↓
Cognition
到此,ICAI 已经形成从基础元素到机器认知的连续 API 结构:
Element API
↓
Object API
↓
Attribute API
↓
Relation API
↓
State API
↓
Scene API
↓
Cognition API
下一阶段可以继续向 Method API|方法 API 延伸,使认知结果进入方法结构,进一步建立:
Cognition→MethodCognition\rightarrow Method
的独立系统通信接口。