XINVAY

第四章 Nexus 架构设计

4.1 三层架构模型

Nexus 采用感知-决策-执行三层架构,实现关注点分离:

点击放大 (Click to zoom)
graph TB
    subgraph "用户接口层"
        UI[用户请求] --> API[API Gateway]
    end
    
    subgraph "感知层 (Perception Layer)"
        API --> P1[意图解析器]
        P1 --> P2[任务识别器]
        P2 --> P3[资源发现器]
        P3 --> P4["设备能力目录<br/>(Capability Directory)"]
    end
    
    subgraph "决策层 (Decision Layer)"
        P2 --> D1[任务分解引擎]
        D1 --> D2["加权与或图构建器<br/>(WAOAG Builder)"]
        D2 --> D3[调度优化器]
        D3 --> D4["信息素场管理器<br/>(Pheromone Manager)"]
        D4 --> D5[Queen Agent]
    end
    
    subgraph "执行层 (Execution Layer)"
        D5 --> E1["蜂巢节点 1<br/>Worker A, B"]
        D5 --> E2["蜂巢节点 2<br/>Worker C, D"]
        D5 --> E3["蜂巢节点 3<br/>Worker E, F"]
        
        E1 <-->|"信息素<br/>通信"| PCP[(信息素场)]
        E2 <-->|"信息素<br/>通信"| PCP
        E3 <-->|"信息素<br/>通信"| PCP
    end
    
    subgraph "存储层"
        PCP --> S1[(全局状态库)]
        PCP --> S2[(任务历史库)]
        PCP --> S3[(设备注册表)]
    end
    
    E1 --> R1[结果聚合器]
    E2 --> R1
    E3 --> R1
    R1 --> OUT[最终交付物]

4.2 蜂巢节点抽象

定义 4.1(蜂巢节点):一个蜂巢节点 $h$ 是一个物理或虚拟计算设备的抽象,定义为:

$$h = \langle id, \mathcal{C}, \mathcal{A}, \sigma, \mathcal{N} \rangle$$

其中:

  • $id$:节点唯一标识
  • $\mathcal{C} = \langle cpu, mem, gpu, net \rangle$:计算资源容量向量
  • $\mathcal{A} = {a_1, a_2, \ldots, a_k}$:该节点上运行的 Agent 集合
  • $\sigma \in {ONLINE, BUSY, DEGRADED, OFFLINE}$:节点状态
  • $\mathcal{N} \subseteq \mathcal{D}$:邻接节点集合(网络可达性)

蜂巢节点管理协议

点击放大 (Click to zoom)
stateDiagram-v2
    [*] --> OFFLINE
    OFFLINE --> ONLINE : 设备上线 / 注册
    ONLINE --> BUSY : 接收任务执行
    BUSY --> ONLINE : 任务完成
    BUSY --> DEGRADED : 部分 Agent 故障
    DEGRADED --> BUSY : 故障恢复
    DEGRADED --> OFFLINE : 全部故障
    ONLINE --> OFFLINE : 设备下线
    OFFLINE --> [*]
    
    note right of DEGRADED
        触发 Worker 替代机制
        由其他节点的 Worker 接管任务
    end note

4.3 皇后-工蜂协作模型

Nexus 将经典的蜂群分工模式形式化为皇后-工蜂(Queen-Worker)协作模型

角色类比自然蜂群Nexus 职责实例
Queen Agent蜂后(繁殖与协调)任务分解、调度决策、全局状态管理每个任务域一个 Queen
Worker Agent工蜂(采集与建造)执行具体子任务、释放信息素每个蜂巢节点 1-N 个
Scout Agent侦查蜂(探索新资源)设备发现、资源探测、新能力注册可选角色
Doctor Agent护理蜂(照料幼虫)状态监控、故障诊断、健康报告系统级角色

Queen 的决策流程

点击放大 (Click to zoom)
flowchart TD
    START([接收用户任务 T]) --> ANALYZE[意图分析]
    ANALYZE --> DECOMPOSE[任务分解为 WAOAG]
    DECOMPOSE --> CHECK_PARALLEL{子任务可并行?}
    
    CHECK_PARALLEL -->|是| PARALLEL[并行分发策略]
    CHECK_PARALLEL -->|否| SEQUENTIAL[串行编排策略]
    
    PARALLEL --> BROADCAST[广播信息素 τ_task]
    SEQUENTIAL --> SCHEDULE[按依赖拓扑排序]
    
    BROADCAST --> WAIT_ACK[等待 Worker 确认]
    SCHEDULE --> ASSIGN[指定 Worker 执行]
    
    WAIT_ACK --> COLLECT[收集 τ_done]
    ASSIGN --> COLLECT
    
    COLLECT --> CHECK_ALL{所有任务完成?}
    CHECK_ALL -->|否| CHECK_TIMEOUT{超时?}
    CHECK_TIMEOUT -->|是| REROUTE[重新路由到其他 Worker]
    CHECK_TIMEOUT -->|否| COLLECT
    REROUTE --> BROADCAST
    CHECK_ALL -->|是| ASSEMBLE[组装结果]
    ASSEMBLE --> DELIVER([交付最终结果])

4.4 故障检测与自愈机制

Nexus 的故障自愈基于心跳检测 + 工蜂替代策略:

故障检测

  • 每个 Worker 定期(每 30s)释放 τ_heartbeat 信息素
  • Queen 的信息素管理器监控所有 Worker 的心跳
  • 若 Worker 连续 3 次(90s)未释放心跳 → 标记为 DEGRADED

自愈策略

  1. 本地替代:同一蜂巢节点上的其他 Worker 接管故障 Worker 的任务
  2. 跨节点替代:若本地无可用 Worker,Queen 将任务信息素重新广播,由其他节点的 Worker 竞争领取
  3. Queen 故障转移:若 Queen 本身故障,系统中的 Scout Agent 发起新一轮 Queen 选举(基于信息素浓度最高的 Worker 提升为 Queen)