第16章 能力结构
在第15章中,我们建立了:
Knowledge
↓
Parameter Extraction
↓
Parameter Assignment
↓
Capability Instance
第16章进一步回答:
一个 Capability 到底由什么组成?
在 WSaiOS-ICAI 中,能力不能只是一个名称,例如:
Movement Capability
Recognition Capability
Grasp Capability
Learning Capability
一个真正可以被认知系统调用的能力,必须具有明确的定义、参数、约束、输入和输出。
因此,可以建立基本能力结构:
Capability
│
├── Capability Definition
├── Capability Parameter
├── Capability Constraint
├── Capability Input
└── Capability Output
这五个部分构成 Capability 的基本结构。
16.1 Capability Definition
**Capability Definition(能力定义)**回答的是:
这个能力是什么?
它负责确定能力的身份、类型和基本语义。
例如:
Capability Definition
Name:
Object Recognition
Type:
Perception Capability
Purpose:
Identify an object from available perception data.
一个能力定义可以包含:
CapabilityDefinition
│
├── ID
├── Name
├── Type
├── Description
├── Purpose
├── Target
└── Version
例如:
id = CAP-001
name = ObjectRecognition
type = Perception
target = Object
purpose = Identify Object
Capability Definition 本身并不负责执行。
它只是告诉系统:
“这是一个什么能力”
因此:
Definition = Identity + Meaning
16.2 Capability Parameter
**Capability Parameter(能力参数)**描述能力运行过程中需要使用的变量。
例如:
Object Recognition
可能需要:
image
object_type
feature
confidence_threshold
而移动能力可能需要:
start_position
target_position
speed
direction
distance
因此:
Capability
↓
Parameters
能力参数可以进一步定义:
CapabilityParameter
│
├── Name
├── Type
├── Data Type
├── Default Value
├── Current Value
├── Range
└── Source
例如:
Parameter:
speed
Type:
Physical Parameter
Data Type:
Float
Range:
0 ~ 2 m/s
Current Value:
1.5 m/s
这里需要特别区分:
Parameter Definition
和:
Parameter Value
例如:
speed
是参数。
而:
speed = 1.5 m/s
是参数赋值。
这与上一章的:
Parameter Assignment
直接连接。
16.3 Capability Constraint
**Capability Constraint(能力约束)**定义:
能力在什么条件下可以成立、可以运行,以及参数允许达到什么范围。
没有约束的能力是不完整的。
例如:
Movement Capability
存在:
speed <= max_speed
distance <= operating_range
又例如抓取能力:
Grasp Capability
可能存在:
object_weight <= maximum_load
object_position must be reachable
gripper must be available
因此:
Capability Constraint
可以包括:
├── Parameter Constraint
├── State Constraint
├── Object Constraint
├── Scene Constraint
├── Resource Constraint
└── Execution Constraint
例如:
speed <= 2 m/s
属于参数约束。
而:
robot_state = READY
属于状态约束。
再例如:
target_distance <= arm_reach
属于执行范围约束。
16.4 Constraint 的作用
约束并不是为了限制能力本身,而是为了确定:
Capability
↓
Can Execute?
因此可以形成:
Input
↓
Parameter
↓
Constraint Evaluation
↓
Valid
/ \
Yes No
↓ ↓
Execute Reject
这使能力具备了可判断性。
系统不是简单地:
调用能力
而是:
判断能力
↓
确认条件
↓
确定参数
↓
允许执行
这也是 ICAI 与简单函数调用之间的重要区别。
16.5 Capability Input
**Capability Input(能力输入)**定义:
能力启动时需要获得什么信息或对象。
例如:
Object Recognition
输入可能是:
Image
进一步可能包括:
Image
+
Scene
+
Known Objects
移动能力:
Current Position
+
Target Position
+
Environment
抓取能力:
Target Object
+
Object Position
+
Object State
因此:
Capability Input
并不一定等同于参数。
这是一个重要区别。
例如:
Input:
Target Object
而:
Parameter:
grasp_force
grasp_position
输入是能力获得的数据、对象或状态。
参数则是能力运行过程中需要使用的变量。
因此:
Input → Provides Information
Parameter → Controls Processing
二者存在联系,但不能完全等同。
16.6 Capability Output
**Capability Output(能力输出)**定义:
能力执行之后产生什么结果。
例如:
Object Recognition
输出:
Object Identity
Confidence
Object State
移动能力:
Final Position
Movement State
Execution Result
抓取能力:
Grasp State
Object Position
Execution Result
因此:
Capability
↓
Execution
↓
Output
输出可以进一步成为下一层能力的输入。
例如:
Visual Recognition
↓
Object = Cup
↓
Grasp Capability Input
↓
Grasp
↓
Object State = Held
这样不同能力之间就可以形成连续的能力链。
16.7 Capability 的五层结构
因此,一个完整的 Capability 可以表示为:
┌──────────────────────────────┐
│ Capability │
├──────────────────────────────┤
│ Definition │
│ │
│ Parameter │
│ │
│ Constraint │
│ │
│ Input │
│ │
│ Output │
└──────────────────────────────┘
它们分别回答五个问题:
| 结构 | 核心问题 |
|---|---|
| Capability Definition | 这是什么能力? |
| Capability Parameter | 运行需要哪些变量? |
| Capability Constraint | 在什么条件下成立? |
| Capability Input | 需要获得什么? |
| Capability Output | 最终产生什么? |
因此可以形成:
Definition
↓
Parameter
↓
Constraint
↓
Input
↓
Capability Processing
↓
Output
16.8 一个完整示例:Object Recognition
假设建立一个:
Object Recognition Capability
其结构可以是:
Capability Definition
name = ObjectRecognition
type = Perception
target = Object
参数:
Capability Parameter
feature_set
confidence_threshold
object_category
约束:
Capability Constraint
input must be valid
confidence >= threshold
输入:
Capability Input
image
scene
输出:
Capability Output
object
category
confidence
state
于是:
Image
↓
Object Recognition Capability
↓
Object
+
Category
+
Confidence
+
State
输出的 Object 又可以成为下一项能力的输入:
Object
↓
Grasp Capability
这就形成了能力之间的组合关系。
16.9 Capability 不是一个 Function
在传统程序设计中,可以简单表示:
recognize(image)
返回:
object
但是 ICAI 的 Capability 更接近:
Capability
│
├── Definition
├── Input
├── Parameters
├── Constraints
├── Method
├── Behavior
├── Execution
└── Output
所以:
Function
只是一个执行机制。
而:
Capability
是一个完整的认知—执行结构。
可以表示为:
Function
↓
Method
↓
Capability
或者从能力运行角度:
Capability
↓
Method Selection
↓
Function / Method Execution
因此 Capability 比 Function 更高一个抽象层级。
16.10 Capability 与 Method 的关系
前面已经定义:
Capability ≠ Method
现在可以进一步明确:
Capability
│
├── Definition
├── Parameters
├── Constraints
├── Input
├── Output
└── Methods
├── Method A
├── Method B
└── Method C
一个能力可以拥有多个方法。
例如:
Recognition Capability
可以存在:
Feature Matching
Pattern Matching
Historical Matching
Scene Matching
系统根据:
Input
+
State
+
Constraint
+
Experience
选择适合的方法。
因此:
Capability
↓
Method Selection
↓
Method
能力负责“能够完成什么”。
方法负责“采用什么方式完成”。
16.11 Capability Input → Output
能力结构最重要的动态关系之一,就是:
Input
↓
Capability
↓
Output
例如:
Image
↓
Object Recognition
↓
Object
但是 ICAI 中还应该加入:
Input
↓
Parameter Assignment
↓
Constraint Evaluation
↓
Method Selection
↓
Behavior
↓
Execution
↓
Output
因此完整结构变成:
Input
↓
Parameters
↓
Constraints
↓
Capability
↓
Method
↓
Behavior
↓
Execution
↓
Output
这已经开始形成一个真正的能力运行模型。
16.12 Capability Output → New Capability Input
能力输出并不是流程终点。
输出可以进入下一能力:
Capability A
↓
Output A
↓
Input B
↓
Capability B
↓
Output B
例如:
Visual Perception
↓
Object Recognition
↓
Object
↓
Object Positioning
↓
Position
↓
Grasp Planning
↓
Grasp Parameters
↓
Grasp Execution
于是多个能力可以形成:
Capability Chain
进一步形成:
Capability Network
这为后续的复杂行为、任务分解和认知执行提供基础。
16.13 Capability Instance 的结构
结合第15章,可以进一步得到:
Capability Definition
↓
Parameter Definition
↓
Constraint Definition
↓
Input
↓
Parameter Assignment
↓
Capability Instance
例如:
Capability:
Movement
实例化之后:
Capability Instance
│
├── capability_id = Movement
├── agent_id = Robot-A
├── input
│ ├── start = A
│ └── target = B
│
├── parameters
│ ├── speed = 1.5
│ ├── direction = 63°
│ └── distance = 22.36
│
├── constraints
│ ├── speed <= 2
│ └── obstacle = false
│
└── output
├── final_position
└── execution_state
这时,Capability 已经从抽象定义进入当前场景。
16.14 能力结构的动态化
Capability 不是静态数据表。
在 ICAI 中,它应该随着:
State
Scene
Knowledge
Experience
Feedback
动态变化。
例如:
Capability
↓
Current Scene
↓
Parameter Assignment
↓
Constraint Evaluation
↓
Available
场景变化:
Obstacle Appears
于是:
Constraint
↓
Invalid
能力状态从:
Available
变成:
Unavailable
当障碍消失:
Unavailable
↓
Available
所以能力本身可以成为动态状态对象。
16.15 本章核心模型
第16章最终可以形成 WSaiOS-ICAI 的基础 Capability Model:
Capability
│
┌─────────────────────┼─────────────────────┐
↓ ↓ ↓
Definition Parameter Constraint
│ │ │
└─────────────────────┼─────────────────────┘
↓
Input
↓
Parameter Assignment
↓
Capability Instance
↓
Method Selection
↓
Behavior
↓
Execution
↓
Output
↓
Next Capability Input
由此可以建立一个连续结构:
Knowledge
↓
Parameter
↓
Capability Definition
↓
Capability Instance
↓
Method
↓
Behavior
↓
Action
↓
Execution
↓
Output
↓
Feedback
↓
Knowledge / Capability Update
第16章核心结论
能力结构不是一个简单的功能名称,而是由 Capability Definition、Capability Parameter、Capability Constraint、Capability Input 和 Capability Output 共同构成的完整结构。Definition 确定能力是什么,Parameter 描述能力如何被参数化,Constraint 确定能力何时成立,Input 提供能力运行所需的信息,Output 表示能力执行产生的结果。通过这五个结构,抽象能力才能进一步实例化为当前场景中可判断、可调用、可执行的 Capability Instance。