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

第159章 Capability类

第159章 Capability类

159.1 提出背景

在个体认知系统中,仅仅拥有对象、属性、状态、关系、场景、知识、需求和目标,还不能直接产生行为。

个体必须回答一个更加基础的问题:

“我现在是否具有完成某项任务的能力?”

例如,一个个体面对“抓取杯子”这一目标,需要判断自己是否具有抓取能力;面对“移动到指定位置”,需要判断自己是否具有移动能力;面对“识别某种对象”,则需要判断自己是否具有对应的识别能力。

因此,Capability(能力)是连接认知结构与行为执行的重要工程对象。

能力不是简单的“可以”或“不可以”,而是一个具有明确条件、当前状态、适用范围和验证机制的结构。

其基本运行过程可以表示为:

Knowledge → Need → Goal → Capability → Condition → Method → Behavior → Result → Verification

其中,Capability负责回答:

当前个体在什么条件下,具有什么能力,以及该能力是否经过实际验证。

因此,本章建立 Capability类,将能力从抽象概念转换为可以被 PHP OOP 系统管理、查询、匹配、验证和更新的运行对象。


159.2 Capability概念定义

Capability(能力)是个体在一定条件和范围内,能够执行某种任务、产生某种行为并获得相应结果的结构化能力对象。

能力不是行为本身。

例如:

“抓取杯子”是一个具体行为;

“能够抓取物体”属于能力。

因此:

Capability ≠ Behavior

能力描述“能不能做以及在什么条件下能做”,行为描述“实际做了什么”。

可以定义:

Capability=Type+Condition+State+Range+VerificationCapability = Type + Condition + State + Range + Verification

其中:

  • Type:能力类型;
  • Condition:能力成立所需要的条件;
  • State:能力当前状态;
  • Range:能力能够适用的范围;
  • Verification:能力是否经过实际验证以及验证结果。

因此,一个完整能力对象可以表示为:

C=(T,Co,S,R,V)C=(T,Co,S,R,V)

其中:

  • CC:Capability,能力;
  • TT:Capability Type,能力类型;
  • CoCo:Condition,能力条件;
  • SS:Capability State,能力状态;
  • RR:Capability Range,能力范围;
  • VV:Capability Verification,能力验证。

159.3 Capability Type

Capability Type(能力类型)用于说明能力具体属于哪一种能力。

例如:

grasp
move
identify
compare
calculate
store
retrieve
operate

这些类型并不是自然语言描述,而是系统内部可以识别和匹配的能力类型标识。

例如:

$capability = new Capability(
    'grasp',
    array('object_type' => 'cup'),
    'available',
    array('weight_max' => 2)
);

其中:

grasp

表示抓取能力。

能力类型可以参与Goal与Capability之间的匹配:

Goal Type
   ↓
Required Capability
   ↓
Capability Type Matching
   ↓
Capability Available

如果目标要求:

grasp

系统首先查找能力类型为:

grasp

的Capability对象。

因此,Capability Type是能力匹配的第一层结构。


159.4 Condition

Condition(条件)是能力能够成立或执行所必须满足的前提状态。

能力不是任何时候都可以使用。

例如,一个个体具有:

grasp

能力,但该能力可能要求:

object_visible = true
object_distance < 10
hand_available = true
object_weight <= 2

因此:

Capability成立 ≠ Capability永远可执行。

能力必须经过条件判断。

可以表示为:

CapabilityAvailable=Condition1∧Condition2∧…∧ConditionnCapabilityAvailable = Condition_1 \land Condition_2 \land … \land Condition_n

当所有必要条件成立时:

CapabilityAvailable=trueCapabilityAvailable = true

否则:

CapabilityAvailable=falseCapabilityAvailable = false

例如:

抓取能力
    ↓
对象存在?
    ↓
对象可接触?
    ↓
手部可用?
    ↓
重量是否在范围内?
    ↓
能力可执行

因此,Condition是Capability与现实运行状态之间的连接结构。


159.5 Condition对象化

为了使条件能够进入系统运行,Condition不应只作为字符串存在,而应该成为独立的结构。

例如:

class CapabilityCondition
{
    protected $type;
    protected $operator;
    protected $value;

    public function __construct($type, $operator, $value)
    {
        $this->type = $type;
        $this->operator = $operator;
        $this->value = $value;
    }

    public function getType()
    {
        return $this->type;
    }

    public function getOperator()
    {
        return $this->operator;
    }

    public function getValue()
    {
        return $this->value;
    }
}

例如:

$condition = new CapabilityCondition(
    'object_visible',
    '=',
    true
);

系统得到一个明确的条件对象:

Condition
    Type = object_visible
    Operator = =
    Value = true

这使能力条件可以进入离散判断过程。


159.6 State

Capability State(能力状态)表示能力当前处于什么状态。

能力不是静态数据。

随着个体状态、环境状态和历史经验发生变化,能力状态也可能变化。

例如:

unknown
available
unavailable
limited
disabled
verified
failed

其中:

  • unknown:能力未知;
  • available:当前可用;
  • unavailable:当前不可用;
  • limited:能力受到限制;
  • disabled:能力被禁止使用;
  • verified:已经经过验证;
  • failed:最近验证失败。

因此:

CapabilityState=f(Condition,Range,Verification)CapabilityState = f(Condition, Range, Verification)

能力状态不是凭空产生,而是由条件、范围和验证结果共同影响。


159.7 Capability State与Object State的区别

Capability State不能与Object State混淆。

例如:

Object State:
cup = broken

表示杯子的状态。

而:

Capability State:
grasp = available

表示个体抓取能力的状态。

两者属于不同对象。

可以表示:

Object
    ↓
Object State

Individual
    ↓
Capability
    ↓
Capability State

对象状态可能导致能力条件发生变化:

Cup State = broken
        ↓
Condition Change
        ↓
Grasp Capability
        ↓
Capability State = limited

因此,Capability State是能力对象自身的运行状态,而不是被操作对象的状态。


159.8 Range

Range(能力范围)用于定义能力能够处理的对象、状态、数量、距离、尺寸或其他边界。

没有Range的能力通常无法准确描述实际能力边界。

例如:

一个抓取能力可能是:

object_type = cup
weight_max = 2kg
distance_max = 10cm
size_max = 15cm

因此:

Range={r1,r2,…,rn}Range = \{r_1,r_2,…,r_n\}

Range可以包含:

  • 对象类型范围;
  • 数值范围;
  • 空间范围;
  • 时间范围;
  • 状态范围;
  • 数量范围;
  • 尺寸范围。

例如:

抓取能力
    对象:杯子
    重量:0~2kg
    距离:0~10cm
    尺寸:0~15cm

这意味着系统不能简单地判断:

“我有抓取能力。”

而应该进一步判断:

“我有针对这个对象、在这个条件和范围内的抓取能力。”

159.9 Range匹配

Capability Range需要与Goal要求进行匹配。

例如Goal要求:

抓取一个重量为1kg的杯子

系统首先读取:

Goal
    object_type = cup
    weight = 1kg

然后读取Capability:

Capability
    type = grasp
    object_type = cup
    weight_max = 2kg

进行匹配:

ObjectTypegoal=ObjectTypecapabilityObjectType_{goal}=ObjectType_{capability}

以及:

Weightgoal≤WeightmaxWeight_{goal}\leq Weight_{max}

如果两个条件均成立:

Range Match = true

否则:

Range Match = false

因此能力匹配可以表示为:

Goal Requirement → Capability Type → Condition Check → Range Check → Capability State → Capability Available


159.10 Verification

Verification(能力验证)是对Capability是否真实存在、是否能够实际运行以及运行结果是否符合预期进行确认的过程。

这是能力工程中非常重要的部分。

系统不能因为数据库中存在:

grasp

就直接认为个体具有抓取能力。

必须通过实际运行进行验证。

因此:

Capability≠VerifiedCapabilityCapability \neq VerifiedCapability

只有经过验证之后,能力才可以获得更高的可信状态。

能力验证过程可以表示为:

Capability → Condition → Execute Method → Behavior → Result → Compare → Verification

例如:

声明:
具有抓取能力
        ↓
建立测试条件
        ↓
执行抓取方法
        ↓
产生实际行为
        ↓
获得结果
        ↓
结果比较
        ↓
Verification

如果结果满足要求:

Verification = passed

如果结果不满足要求:

Verification = failed

159.11 Verification不是简单的Boolean

工程系统中,Verification不应该只有:

true

或者:

false

更合理的结构应该保存验证历史。

例如:

array(
    'status' => 'passed',
    'time' => '2026-09-08 10:00:00',
    'method' => 'grasp_method_01',
    'result' => 'object_held'
)

这样系统不仅知道:

能力已经验证

还知道:

什么时候验证
使用什么方法验证
获得什么结果

验证历史可以继续进入Experience:

Capability Verification
        ↓
Result
        ↓
Experience
        ↓
Capability Update

因此,Capability具有一定的学习和更新能力,但这里的“学习”仍然是基于实际结果、离散记录和规则更新,而不是依赖任何生成式模型。


159.12 Capability类

根据前面的理论,可以建立PHP Capability类。

<?php

class Capability
{
    protected $type;
    protected $conditions;
    protected $state;
    protected $range;
    protected $verification;
    protected $history;

    public function __construct($type)
    {
        $this->type = $type;
        $this->conditions = array();
        $this->state = 'unknown';
        $this->range = array();
        $this->verification = 'unverified';
        $this->history = array();
    }

    public function getType()
    {
        return $this->type;
    }

    public function addCondition($condition)
    {
        $this->conditions[] = $condition;
    }

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

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

    public function setRange($range)
    {
        $this->range = $range;
    }

    public function getRange()
    {
        return $this->range;
    }

    public function verify($result)
    {
        $this->verification = $result;

        $this->history[] = array(
            'verification' => $result,
            'time' => date('Y-m-d H:i:s')
        );

        if ($result == 'passed') {
            $this->state = 'verified';
        } else {
            $this->state = 'failed';
        }
    }

    public function getVerification()
    {
        return $this->verification;
    }

    public function getHistory()
    {
        return $this->history;
    }
}

该类将五个核心结构直接映射到对象:

Capability
├── Type
├── Conditions
├── State
├── Range
└── Verification

同时保留:

History

用于保存能力验证变化。


159.13 Capability条件检查

Capability不能只保存Condition,还需要执行条件检查。

例如:

public function checkConditions($context)
{
    foreach ($this->conditions as $condition) {

        if (!isset($context[$condition->getType()])) {
            return false;
        }

        if ($context[$condition->getType()] != $condition->getValue()) {
            return false;
        }
    }

    return true;
}

系统可以提供当前运行上下文:

$context = array(
    'object_visible' => true,
    'hand_available' => true
);

然后:

if ($capability->checkConditions($context)) {
    $capability->setState('available');
}

这形成了明确的离散计算过程:

Context → Condition → Compare → Boolean Result → Capability State


159.14 Capability范围检查

范围检查也应该进入独立的方法。

例如:

public function checkRange($object)
{
    if (!isset($object['weight'])) {
        return false;
    }

    if (isset($this->range['weight_max'])) {
        if ($object['weight'] > $this->range['weight_max']) {
            return false;
        }
    }

    return true;
}

于是完整判断过程变成:

Capability Type Match
        ↓
Condition Check
        ↓
Range Check
        ↓
State Check
        ↓
Verification Check
        ↓
Capability Available

这比单纯保存一个:

can = true

更加符合认知工程要求。


159.15 Capability Manager

当系统拥有多个Capability时,需要建立CapabilityManager统一管理能力对象。

class CapabilityManager
{
    protected $capabilities;

    public function __construct()
    {
        $this->capabilities = array();
    }

    public function addCapability($capability)
    {
        $this->capabilities[] = $capability;
    }

    public function findByType($type)
    {
        foreach ($this->capabilities as $capability) {
            if ($capability->getType() == $type) {
                return $capability;
            }
        }

        return null;
    }
}

例如:

CapabilityManager
    ├── grasp
    ├── move
    ├── identify
    ├── compare
    └── calculate

Goal产生之后,可以通过Manager查询所需能力:

Goal
 ↓
Required Capability Type
 ↓
CapabilityManager
 ↓
Capability
 ↓
Condition
 ↓
Range
 ↓
State
 ↓
Verification

159.16 Capability与Goal的关系

Goal描述目标。

Capability描述完成目标所需要的能力。

例如:

Goal:
把杯子移动到桌面

系统可以分析目标需要:

Capability:
grasp
move
release

因此:

Goal→RequiredCapabilityGoal \rightarrow RequiredCapability

再进一步:

RequiredCapability→AvailableCapabilityRequiredCapability \rightarrow AvailableCapability

如果:

Required Capability = grasp
Available Capability = grasp

且:

Condition = true
Range = matched
State = available
Verification = passed

则:

Capability Match = true

否则不能直接执行。


159.17 Capability与Method的关系

Capability不是Method。

Method(方法)描述“采用什么方式完成”。

Capability描述“是否具备完成该任务的能力”。

例如:

Capability:
grasp

可以对应多个Method:

Method A → two_finger_grasp
Method B → palm_grasp
Method C → side_grasp

因此:

Capability→MethodCapability \rightarrow Method

可以形成:

Capability
    ↓
Available Methods
    ↓
Method Selection
    ↓
Behavior

能力决定可行空间,方法决定具体执行方式。


159.18 Capability与Behavior的关系

Behavior(行为)是能力经过条件判断和方法选择后实际发生的执行过程。

因此:

Capability ≠ Behavior

完整关系为:

Capability → Method → Behavior

例如:

具有抓取能力
        ↓
选择抓取方法
        ↓
执行抓取行为
        ↓
产生结果

如果行为失败,并不一定说明Capability永久不存在。

可能原因包括:

Condition失败
Range超限
Method选择错误
Object State变化
Environment变化

因此验证结果必须回到Capability结构中进行分析。


159.19 Capability动态更新

能力是动态结构。

能力状态可以随着验证结果发生变化:

Unknown
   ↓
Verified
   ↓
Available
   ↓
Limited
   ↓
Failed
   ↓
Re-verified
   ↓
Available

例如某个能力原本:

grasp = verified

后来对象重量超过能力范围:

weight > weight_max

此时不能简单地删除Capability。

应该更新为:

grasp = limited

当范围重新满足条件后:

grasp = available

因此:

CapabilityStatet+1=f(CapabilityStatet,Condition,Range,Verification)CapabilityState_{t+1} = f(CapabilityState_t, Condition, Range, Verification)

能力状态是一个随运行过程不断变化的离散状态。


159.20 Capability Verification闭环

能力验证最终应该形成闭环:

Capability → Condition → Range → Method → Behavior → Result → Verification → Capability State

例如:

Capability
grasp
 ↓
Condition
object_visible = true
 ↓
Range
weight <= 2kg
 ↓
Method
grasp_method_01
 ↓
Behavior
执行抓取
 ↓
Result
object_held
 ↓
Verification
passed
 ↓
Capability State
verified

如果结果失败:

Result
object_dropped
 ↓
Verification
failed
 ↓
Capability State
failed
 ↓
Experience
记录失败原因
 ↓
Capability Update

由此,能力不再是静态配置,而成为一个能够参与实际认知运行的对象。


159.21 Capability在个体认知架构中的位置

Capability位于认知结构和执行结构之间。

完整结构可以表示为:

Individual
   ↓
Knowledge
   ↓
Need
   ↓
Goal
   ↓
Capability
   ↓
Condition
   ↓
Range
   ↓
Method
   ↓
Behavior
   ↓
Result
   ↓
Verification
   ↓
Experience
   ↓
Capability Update

Capability因此成为:

“目标要求”与“实际执行能力”之间的匹配层。

它回答的不是:

“系统知道什么?”

而是:

“系统能够做什么?”

进一步回答:

“在什么条件下能够做?”
“能够处理什么范围?”
“当前是否能够做?”
“以前是否验证成功?”

159.22 工程数据库映射

Capability可以映射到MySQL数据库。

例如建立:

CREATE TABLE capabilities (
    id INT NOT NULL AUTO_INCREMENT,
    capability_type VARCHAR(100) NOT NULL,
    capability_state VARCHAR(50) NOT NULL,
    verification_state VARCHAR(50) NOT NULL,
    range_data TEXT,
    created_at DATETIME,
    updated_at DATETIME,
    PRIMARY KEY (id)
);

条件可以独立保存:

CREATE TABLE capability_conditions (
    id INT NOT NULL AUTO_INCREMENT,
    capability_id INT NOT NULL,
    condition_type VARCHAR(100) NOT NULL,
    operator VARCHAR(20) NOT NULL,
    condition_value VARCHAR(255),
    PRIMARY KEY (id)
);

验证记录可以保存:

CREATE TABLE capability_verifications (
    id INT NOT NULL AUTO_INCREMENT,
    capability_id INT NOT NULL,
    verification_state VARCHAR(50) NOT NULL,
    method_type VARCHAR(100),
    result_value TEXT,
    created_at DATETIME,
    PRIMARY KEY (id)
);

于是数据库结构对应:

capabilities
      ↓
capability_conditions
      ↓
capability_verifications

PHP对象则对应:

Capability
CapabilityCondition
CapabilityVerification
CapabilityManager

这样实现理论对象到工程对象的一一映射。


159.23 Capability的核心判定模型

综合本章内容,可以建立Capability核心判定公式:

A=T∧C∧R∧S∧VA = T \land C \land R \land S \land V

其中:

  • AA:Capability Available,能力可用;
  • TT:Type Match,能力类型匹配;
  • CC:Condition满足;
  • RR:Range满足;
  • SS:Capability State允许执行;
  • VV:Verification通过。

只有当这些条件同时满足时:

A=trueA=true

系统才允许进入Method选择和Behavior执行阶段。

因此:

Capability Available = Type Match ∧ Condition ∧ Range ∧ State ∧ Verification

这是一种明确的离散规则判断,而不是概率生成式判断。


159.24 Capability运行模型

最终形成完整的能力运行链:

Goal → Required Capability → Capability Type → Condition → Range → State → Verification → Method → Behavior → Result

执行结果再反馈:

Result → Verification → Capability State → Experience → Capability Update

因此形成:

Goal → Capability → Execution → Result → Verification → Capability

这是个体能力从“认知对象”进入“实际运行对象”的重要闭环。


159.25 本章总结

Capability类建立了个体“能够做什么”的工程表达。

本章定义了五个核心结构:

Capability
├── Condition
├── State
├── Range
└── Verification

其中:

Condition决定能力成立需要什么前提。

State表示能力当前是否可用、受限或失败。

Range定义能力能够处理的范围和边界。

Verification通过实际执行结果确认能力是否真实有效。

因此,Capability不再是一个简单的Boolean值,而是一个具有类型、条件、状态、范围、验证和历史的动态认知工程对象。

其完整关系可以总结为:

Goal → Capability → Condition → Range → State → Verification → Method → Behavior → Result → Verification → Capability Update

由此,个体认知系统开始从“知道对象”进一步进入“具备能力并能够验证能力”的工程阶段。

Capability是连接:

Knowledge → Goal → Capability → Method → Behavior

的重要中间层,也是后续 Method类、Behavior类、Action类、Execution类建立的直接基础。

Leave a Reply

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