第四章 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
自愈策略:
- 本地替代:同一蜂巢节点上的其他 Worker 接管故障 Worker 的任务
- 跨节点替代:若本地无可用 Worker,Queen 将任务信息素重新广播,由其他节点的 Worker 竞争领取
- Queen 故障转移:若 Queen 本身故障,系统中的 Scout Agent 发起新一轮 Queen 选举(基于信息素浓度最高的 Worker 提升为 Queen)