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

第67章 SAI 与外部设备

第67章 SAI 与外部设备

第66章建立了 Device Object,解决了 SAI 如何在内部描述一个设备。

第67章进一步解决一个更重要的问题:

SAI 如何与外部真实设备形成双向关系?

这里的“外部设备”是指 SAI 系统之外、能够通过接口、协议、控制器或通信通道与 SAI 交换信息的设备。

核心不是单向控制,而是:

SAI → Device
Device → SAI

最终形成:

感知 → 认知 → 推理 → 决策 → 行为 → 动作 → 设备
                                      ↓
                                  设备状态
                                      ↓
                                  设备反馈
                                      ↓
                                   SAI感知

因此,SAI 与设备之间形成一个双向闭环


1. SAI → Device

SAI → Device 表示 SAI 向外部设备发送控制信息。

基本路径:

SAI
 ↓
Decision
 ↓
Behavior
 ↓
Action
 ↓
Device Command
 ↓
DeviceAdapter
 ↓
External Device

例如:

Decision
{
    goal: "turn_on_light",
    choice: "Light_A.powerOn"
}

形成行为:

Behavior
{
    target: "Light_A",
    action: "powerOn",
    state: "READY"
}

再形成设备命令:

DeviceCommand
{
    device_id: "Light_A",
    command: "POWER_ON",
    parameters: {}
}

最后:

DeviceAdapter
        ↓
Light_A

设备实际执行。

因此:

SAI 不直接等同于物理设备,而是通过 Action、Device Command 和 DeviceAdapter 对设备进行操作。


2. Device → SAI

反方向是:

Device → SAI

设备可以向 SAI 提供:

  • 当前状态
  • 属性数据
  • 传感器数据
  • 执行结果
  • 错误信息
  • 异常信息
  • 状态变化
  • 完成通知

例如温度传感器:

Sensor_A
{
    temperature: 28.5,
    humidity: 62
}

通过 Adapter 进入 SAI:

Sensor_A
    ↓
SensorAdapter
    ↓
DeviceResponse / DeviceData
    ↓
Perception
    ↓
Cognition

所以 Device → SAI 并不是“设备自己进行认知”。

设备只是提供外部信息。

SAI 再对这些信息进行:

获取
 ↓
感知
 ↓
识别
 ↓
理解
 ↓
记忆
 ↓
推理

3. 行为执行

SAI 的行为执行是从内部决策走向外部设备的过程。

完整路径:

Reasoning
    ↓
Decision
    ↓
Behavior
    ↓
Action
    ↓
DeviceCommand
    ↓
DeviceAdapter
    ↓
Device

例如:

当前状态:

Room_Temperature = 31

规则:

IF temperature > 30
THEN air_conditioner = ON

推理得到:

Conclusion
{
    subject: "AirConditioner_A",
    predicate: "needs_control",
    value: "ON",
    state: "CONFIRMED"
}

Decision:

Choice = "PowerOn"

Behavior:

Behavior
{
    target: "AirConditioner_A",
    action: "powerOn",
    state: "READY"
}

Action:

Action
{
    type: "EXECUTE",
    target: "AirConditioner_A",
    method: "powerOn"
}

Device Command:

DeviceCommand
{
    device_id: "AirConditioner_A",
    command: "POWER_ON"
}

最终设备执行。


4. 设备控制

设备控制是 SAI 对外部设备产生实际影响的过程。

可以分为几种基本类型:

POWER
START
STOP
SET
MOVE
OPEN
CLOSE
RESET
CONFIGURE

例如灯:

POWER_ON
POWER_OFF
SET_BRIGHTNESS

电机:

START
STOP
SET_SPEED
SET_DIRECTION

机器人:

MOVE
STOP
GRAB
RELEASE

设备控制的基本结构:

Control
{
    device_id
    command
    parameters
    condition
    state
}

例如:

Control
{
    device_id: "Motor_A",
    command: "SET_SPEED",
    parameters:
    {
        speed: 1500
    },
    condition: "state == READY",
    state: "READY"
}

这里需要注意:

SAI 不能因为生成了一个 Command 就认为设备已经完成操作。

必须等待 Device Response。

所以:

Command Created
    ≠
Command Executed

只有获得设备反馈后,才能确定执行结果。


5. 设备状态

外部设备具有自己的实际状态。

例如:

Light_A = ON
Motor_A = RUNNING
Robot_A = MOVING
Machine_A = ERROR
Sensor_A = ACTIVE

SAI 中保存的是:

对外部设备当前状态的结构化认识。

例如:

Device Object
{
    id: "Motor_A",
    state: "RUNNING",
    properties:
    {
        speed: 1500,
        temperature: 42
    }
}

但这里需要区分:

Physical Device State

和:

SAI Device Object State

两者可能暂时不一致。

例如:

Physical Device
    state = ERROR

SAI Device Object
    state = RUNNING

这说明 SAI 当前保存的信息已经过期。

因此设备状态必须不断通过反馈进行更新。

Device State
    ↓
Device Response
    ↓
Perception
    ↓
State Recognition
    ↓
Device Object Update

这样可以避免 SAI 永远使用旧状态。


6. 设备反馈

反馈是 Device → SAI 的重要信息。

例如发送:

POWER_ON

设备返回:

SUCCESS

这只是最基本的反馈。

更加完整的反馈可以是:

DeviceResponse
{
    device_id: "Motor_A",
    command_id: "CMD_1001",
    state: "SUCCESS",
    output:
    {
        state: "RUNNING",
        speed: 1500,
        temperature: 42
    },
    error: null
}

如果失败:

DeviceResponse
{
    device_id: "Motor_A",
    command_id: "CMD_1002",
    state: "FAILED",
    output: null,
    error:
    {
        code: "OVERHEAT",
        message: "Motor temperature too high"
    }
}

SAI 接收到后不能简单地把错误当成普通数据。

应该进入:

Feedback
    ↓
Perception
    ↓
Cognition
    ↓
State Recognition
    ↓
Risk
    ↓
Reasoning

例如:

temperature = 95

可以形成:

Device State = OVERHEAT

然后进入风险判断:

RiskLevel = CRITICAL

最终可能产生:

Decision = STOP_MOTOR

形成新的:

Action
    ↓
DeviceCommand
    ↓
Motor

这就形成了设备控制闭环。


7. 双向通信

SAI 与外部设备不是简单的:

SAI → Device

而应该是:

SAI → Device
Device → SAI

形成:

       ┌──────────────────┐
       │       SAI        │
       │                  │
       │ Perception       │
       │ Cognition        │
       │ Reasoning        │
       │ Decision         │
       │ Behavior         │
       │ Action           │
       └────────┬─────────┘
                │
          DeviceAdapter
                │
        ┌───────┴───────┐
        │               │
        ↓               ↑
   Device Command   Device Response
        │               │
        ↓               ↑
       Device ───────────

双向通信包含两个方向。

SAI → Device

Decision
 ↓
Action
 ↓
DeviceCommand
 ↓
DeviceAdapter
 ↓
Device

Device → SAI

Device
 ↓
DeviceResponse
 ↓
DeviceAdapter
 ↓
Perception
 ↓
Cognition
 ↓
Memory / Reasoning

因此:

SAI ↔ Device

不是简单的数据传输,而是:

控制 → 执行 → 状态 → 反馈 → 再判断 → 再控制

8. 完整案例

下面使用一个 自动风扇设备作为完整案例。

设备:

Fan_A

Device Object:

Device
{
    id: "Fan_A",

    identity:
    {
        type: "Fan",
        name: "Office Fan",
        model: "F-100"
    },

    state: "OFF",

    properties:
    {
        speed: 0,
        temperature: 32,
        power: false
    },

    methods:
    [
        "powerOn",
        "powerOff",
        "setSpeed"
    ],

    abilities:
    [
        "PowerControl",
        "SpeedControl"
    ]
}

8.1 Device → SAI:产生环境信息

温度传感器发现:

temperature = 32

信息进入:

Sensor
 ↓
SensorAdapter
 ↓
SAI Perception

形成:

Element
{
    object: "Room",
    property: "temperature",
    value: 32,
    unit: "C"
}

8.2 SAI:形成认知

Cognition 识别:

Room.temperature = 32

状态:

TemperatureState = HIGH

8.3 SAI:进行推理

规则:

IF
Room.temperature >= 30

THEN
Fan_A should_be_on

ReasoningEngine 得到:

Conclusion
{
    subject: "Fan_A",
    predicate: "should_be",
    value: "ON",
    state: "CONFIRMED"
}

8.4 SAI:进行决策

Decision:

Decision
{
    goal: "reduce_temperature",

    candidates:
    [
        "Fan_A.powerOn",
        "Fan_A.setSpeed"
    ],

    choice: "Fan_A.powerOn",

    state: "DECIDED"
}

8.5 SAI:形成行为

Behavior
{
    id: "B_1001",
    type: "EXECUTE",
    target: "Fan_A",
    action: "powerOn",
    state: "READY"
}

8.6 SAI:形成设备命令

DeviceCommand
{
    id: "CMD_1001",
    device_id: "Fan_A",
    type: "CONTROL",
    command: "POWER_ON",
    parameters: {},
    state: "READY"
}

8.7 DeviceAdapter → Fan

DeviceCommand
        ↓
DeviceAdapter
        ↓
Fan_A

风扇实际启动。


8.8 Fan → SAI:返回响应

DeviceResponse
{
    id: "RES_1001",
    device_id: "Fan_A",
    command_id: "CMD_1001",
    state: "SUCCESS",

    output:
    {
        power: true,
        state: "ON",
        speed: 1
    },

    error: null
}

8.9 SAI 更新 Device Object

原来:

Fan_A
{
    state: "OFF",
    power: false
}

更新:

Fan_A
{
    state: "ON",
    power: true,
    speed: 1
}

8.10 后续异常反馈

运行一段时间后:

Fan_A
{
    temperature: 85,
    state: "OVERHEAT"
}

反馈进入:

Device
 ↓
DeviceAdapter
 ↓
Perception
 ↓
Cognition
 ↓
Risk
 ↓
Reasoning
 ↓
Decision

Risk:

Risk
{
    object: "Fan_A",
    event: "OVERHEAT",
    score: 0.90,
    level: "CRITICAL"
}

Decision:

Choice = "Fan_A.powerOff"

形成新的:

Action
 ↓
DeviceCommand
 ↓
DeviceAdapter
 ↓
Fan_A

于是形成:

控制
 ↓
执行
 ↓
反馈
 ↓
感知
 ↓
认知
 ↓
风险
 ↓
推理
 ↓
决策
 ↓
控制

本章核心模型

第67章可以最终归纳为:

             ┌───────────────┐
             │      SAI      │
             │               │
             │ Perception    │
             │ Cognition     │
             │ Reasoning     │
             │ Decision      │
             │ Behavior      │
             │ Action        │
             └───────┬───────┘
                     │
                DeviceAdapter
                     │
          ┌──────────┴──────────┐
          ↓                     ↑
   Device Command        Device Response
          ↓                     ↑
          └─────── Device ──────┘
                     │
                 State/Data
                     ↓
                   Feedback

最终形成:

SAI
 ↓
Decision
 ↓
Behavior
 ↓
Action
 ↓
Device Command
 ↓
DeviceAdapter
 ↓
External Device
 ↓
Device State / Response
 ↓
DeviceAdapter
 ↓
Perception
 ↓
Cognition
 ↓
Memory / Reasoning
 ↓
Decision

本章核心定义

SAI 与外部设备的关系,是通过 DeviceAdapter 建立的双向信息与行为通道。SAI 向设备发送 Device Command,使设备执行实际行为;设备向 SAI 返回 Device Response、状态和数据,使 SAI 更新 Device Object,并重新进入感知、认知、推理和决策过程。

因此,SAI 与 Device 的核心关系不是单纯的“控制设备”,而是:

SAI → 控制
Device → 执行
Device → 反馈
SAI → 认识
SAI → 再决策
SAI → 再控制

这也是 SAI 从内部认知系统进入外部现实环境后的一个基本闭环。

Leave a Reply

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