Skip to content

总体架构(面向需求)

三层结构

  • 仿真底座层:UNET / UnetStack / UnetSim(Java/Agent-based)
  • 调度与一致性层:Python(Orchestrator + Scheduler + Barrier/Clock)
  • 观测与可视化层:Python(FastAPI + WebSocket + Dashboard,MVP 用 Streamlit)

组件关系(逻辑视图)

+---------------------+        +----------------------------------+
|  UNET/UnetSim       | <----> | UnetAdapter (Gateway/LogOnly)    |
|  (multiple nodes)   |        +----------------------------------+
+---------------------+                      |
                                             v
                        +-----------------------------------------+
                        | Orchestrator (run/step/barrier)         |
                        |  - 启动/停止 UNET                        |
                        |  - step loop (ΔT, K)                     |
                        |  - 记录 schedule_decisions               |
                        +-----------------------------------------+
                                             |
                                             v
                        +-----------------------------------------+
                        | Metrics/Storage                          |
                        |  - traces.csv / metrics.csv / report.md  |
                        +-----------------------------------------+
                                             |
                           +-----------------+-----------------+
                           v                                   v
                 +------------------+                +----------------------+
                 | FastAPI REST/WS  |                | Dashboard (Streamlit) |
                 +------------------+                +----------------------+

两条集成路径(必须保留)

  • Path-1(优先):Python 通过 fjage gateway 连接 UNET,订阅通知、下发发送/控制指令。
  • Path-2(兜底):无法直接控制时,通过日志解析采集指标(控制简化为启动/停止/跑到结束)。

关键要求:UNET 相关操作必须封装为 UnetAdapter,主流程不写死 agent 名称/消息类名。

可复现与一致性设计

  • seed 固定:影响随机流量、策略选择、(可选)仿真参数随机扰动
  • 逻辑时间步进:step_id = 0..K-1,每步窗口 [t_start, t_end)
  • barrier:每步收敛“当步事件/统计”后才进入下一步
  • 落盘:每次 run 输出 runs/<run_id>/,保存场景/策略/版本/trace/metrics/report