模块以 models.py 中的 Pydantic 模型(SwarmRun/SwarmTask/SwarmAgentSpec/WorkerResult/SwarmEvent)为唯一数据契约,被其余子模块共享。 - 入口与装配:__init__.py 统一暴露 SwarmRuntime、SwarmStore、run_worker、build_run_from_preset 等 API。 - 配置层:presets.py 从包内 presets/*.yaml 与用户目录 ~/.vibe-trading/swarm/presets/ 加载 YAML,构建 SwarmRun 并做 DAG 校验;grounding.py 在 run 启动时预取 OHLCV 行情注入 prompt。 - 编排层:runtime.py 的 SwarmRuntime 是核心协调器,通过 threading.Thread 启动后台 daemon 线程,用 concurrent.futures.ThreadPoolExecutor 在每个拓扑层内并行提交任务,层间串行推进;提供 start_run/cancel_run 生命周期与 live_callback SSE 事件通道。 - 执行层:worker.py 实现轻量 ReAct 循环,调用 ChatLLM.stream_chat + ToolRegistry 工具集,支持超时、token 上限、内容过滤熔断、重试与心跳上报。 - 存储层:store.py 将每个 run 持久化为 .swarm/runs/{id}/ 下的 run.json(原子写入)、events.jsonl(追加式事件日志)、tasks/、inboxes/、artifacts/;task_store.py 管理 per-task JSON 文件及依赖解析;serialization.py 提供序列化辅助。 - 依赖方向:runtime → worker/store/presets/models,worker → models/tools/providers,store → task_store/models,反向无依赖,形成清晰的单向数据流。