技术栈概览

📎 引用文件

本文引用的文件 - pyproject.toml - requirements.txt - api_server.py - main.tsx - package.json(前端) - package.json(Electron) - main.ts(Electron) - base.py(数据加载缓存) - store.py(目标存储)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本技术栈概览面向 Vibe-Trading 项目的工程与研发读者,系统梳理后端、前端、桌面端的技术选型与职责边界,解释关键依赖库的作用与选型原因,并给出前后端分离与微服务化设计的整体视图。项目采用: - 后端:Python + FastAPI,提供 REST/SSE/MCP 等接口,承载 AI 代理、回测、因子计算、会话与策略编排等能力 - 前端:React + TypeScript + Tailwind CSS,构建 Web UI,通过 API 与后端交互 - 桌面应用:Electron 封装本地运行时,内嵌后端进程并提供安全凭证管理、多语言与生命周期控制

开发环境要求: - Python 3.11+(兼容 3.11/3.12/3.13,上限 <3.14) - Node.js >=22(前端要求),Electron 用于桌面打包与运行

版本兼容性说明详见“依赖关系分析”章节。

项目结构

仓库采用多模块组织: - agent:后端核心,包含 FastAPI 入口、AI 代理、回测引擎、数据加载器、通道集成、量化库等 - frontend:Web 前端,基于 React + TypeScript + Tailwind,使用 Vite 构建 - desktop/electron:桌面壳层,负责启动/管理后端进程、渲染界面、安全凭证与本地化 - 其他:测试、文档站点、脚本与配置

graph TB subgraph "桌面端" EMain["Electron 主进程<br/>main.ts"] EPreload["预加载脚本"] end subgraph "前端" FMain["React 入口<br/>main.tsx"] FRouter["路由与页面"] FTailwind["Tailwind 样式"] end subgraph "后端" AServer["FastAPI 应用<br/>api_server.py"] ARoutes["路由模块<br/>runs/sessions/system/..."] AAgent["AI 代理/工具/会话"] ABacktest["回测/因子/量化库"] AData["数据加载器/缓存"] end EMain --> |启动/管理| AServer EMain --> |注入鉴权头| AServer FMain --> |HTTP/SSE| AServer AServer --> AAgent AServer --> ABacktest AServer --> AData

图表来源 - api_server.py:163-183 - main.tsx:1-36 - main.ts(Electron):49-192

章节来源 - api_server.py:163-183 - package.json(前端):1-58 - package.json(Electron):1-86

核心组件

章节来源 - api_server.py:127-183 - api_server.py:321-395 - main.tsx:1-36 - main.ts(Electron):49-192

架构总览

Vibe-Trading 采用前后端分离与可插拔的微服务化设计: - 前端作为展示与交互层,不直接访问外部数据源或模型 - 后端以 FastAPI 为中心,聚合 AI 代理、回测、因子、数据加载、通道、调度等能力 - 桌面端作为宿主,负责安全地启动后端、注入凭据、隔离权限与资源 - 数据层通过 DuckDB/SQLite 进行高性能分析与持久化;消息队列与通道通过异步框架与第三方 SDK 接入

sequenceDiagram participant U as "用户" participant FE as "前端(React)" participant BE as "后端(FastAPI)" participant AG as "AI 代理/工具" participant DB as "DuckDB/SQLite" participant DL as "数据加载器" U->>FE : 发起研究/回测/交易指令 FE->>BE : HTTP/SSE 请求 BE->>AG : 解析意图、调用工具/模型 AG->>DL : 拉取市场数据/基本面 DL-->>AG : OHLCV/指标/面板 AG->>DB : 写入会话/结果/缓存 BE-->>FE : 流式响应/事件 FE-->>U : 渲染进度与结果

图表来源 - api_server.py:163-183 - base.py(数据加载缓存):517-571 - store.py(目标存储):1-60

详细组件分析

后端(FastAPI)

flowchart TD Start(["服务启动"]) --> Preflight["启动前检查/迁移"] Preflight --> Routes["注册路由模块"] Routes --> Dev{"开发模式?"} Dev -- 是 --> Vite["启动 Vite 开发服务器"] Dev -- 否 --> Static["挂载前端静态资源"] Vite --> Run["启动 Uvicorn 服务"] Static --> Run Run --> End(["就绪"])

图表来源 - api_server.py:127-183 - api_server.py:321-395

章节来源 - api_server.py:127-183 - api_server.py:321-395

前端(React + TypeScript + Tailwind)

章节来源 - main.tsx:1-36 - package.json(前端):1-58

桌面端(Electron)

sequenceDiagram participant EM as "Electron 主进程" participant BW as "BrowserWindow" participant BM as "BackendManager" participant BE as "后端服务" EM->>EM : 初始化/设置主题/本地化 EM->>BW : 创建窗口(沙箱/隔离) EM->>BM : start() BM->>BE : 启动后端(随机端口/鉴权) BE-->>BM : 返回 URL BM->>BW : loadURL(url) BW-->>EM : ready-to-show EM->>BW : 显示窗口

图表来源 - main.ts(Electron):49-192

章节来源 - main.ts(Electron):49-192 - package.json(Electron):1-86

数据处理与存储

classDiagram class DataLoaderCache { +write(frame) void +read(key) DataFrame +metadata() dict } class GoalStore { +create_goal(data) id +update_goal(id, data) bool +list_goals(filter) list +delete_goal(id) bool } DataLoaderCache --> "使用" DuckDB : "Parquet 缓存" GoalStore --> "使用" SQLite : "事务/并发"

图表来源 - base.py(数据加载缓存):517-571 - store.py(目标存储):1-60

章节来源 - base.py(数据加载缓存):517-571 - store.py(目标存储):1-60

AI 代理与模型集成

章节来源 - pyproject.toml:24-69

依赖关系分析

版本兼容性 - Python:>=3.11,<3.14(受限于部分依赖如 llvmlite 的 wheel 支持) - Node.js:>=22(前端 engines 字段限定) - Electron:43.x(社区构建)

章节来源 - pyproject.toml:1-272 - package.json(前端):1-58 - package.json(Electron):1-86

性能考量

[本节为通用指导,不直接分析具体文件]

故障排查指南

章节来源 - api_server.py:127-183 - base.py(数据加载缓存):517-571 - store.py(目标存储):1-60

结论

Vibe-Trading 以 FastAPI 为核心,结合 LangChain 的 AI 代理能力,构建了覆盖数据获取、因子计算、回测与交易的完整研究闭环。前端以 React + TypeScript + Tailwind 提供现代化交互体验,Electron 则封装本地运行时,保障安全与易用性。通过 DuckDB/SQLite 的高性能存储与缓存机制,以及丰富的数据源与通道集成,项目在可扩展性与稳定性方面具备良好基础。建议在生产环境中严格遵循版本约束与安全配置,并结合监控与日志完善运维体系。

[本节为总结性内容,不直接分析具体文件]

附录

[本节为补充信息,不直接分析具体文件]