开发者指南

📎 引用文件

本文引用的文件 - README.md - CONTRIBUTING.md - AGENT_CONTRIBUTOR_GUIDE.md - SECURITY.md - CODE_OF_CONDUCT.md - pyproject.toml - agent/requirements.txt - .devcontainer/devcontainer.json - docker-compose.yml - Dockerfile - frontend/package.json

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖与开发环境
  7. 贡献流程与代码规范
  8. 调试与排错
  9. 性能与可维护性建议
  10. 结论
  11. 附录:常用命令与环境变量

简介

本指南面向希望参与 Vibe-Trading 后端、前端、MCP/CLI、回测与数据加载器开发的工程师。内容覆盖本地与容器化开发环境搭建、依赖安装、工具链配置、调试技巧、贡献流程、代码规范、协作方式、常见问题及解决方案,并结合仓库中的实际配置文件给出可操作的步骤。

项目结构

Vibe-Trading 采用前后端分离与多语言工程组织: - 后端与 CLI/MCP:位于 agent/,提供 FastAPI 服务、命令行入口、MCP 服务器、回测引擎、数据加载器、策略因子库等。 - 前端:位于 frontend/,基于 React + Vite,提供 Web UI、图表、会话与运行详情展示。 - 桌面端:desktop/electron/,用于打包 Electron 宿主与后端生命周期管理(Windows 安全打包等)。 - 文档与 Wiki:wiki/,包含教程、Alpha Library、研究实验室等内容。 - 构建与部署:Dockerfile、docker-compose.yml、GitHub Actions 工作流。

graph TB subgraph "前端" FE["React/Vite 应用<br/>frontend/"] end subgraph "后端" API["FastAPI 服务<br/>agent/api_server.py"] CLI["CLI 入口<br/>agent/cli/"] MCP["MCP 服务器<br/>agent/mcp_server.py"] BT["回测引擎<br/>agent/backtest/"] DL["数据加载器<br/>agent/backtest/loaders/"] end subgraph "运行时" DB["持久化存储<br/>runs/sessions/memory"] ENV[".env / 环境变量"] end FE --> API CLI --> API MCP --> API API --> DB API --> ENV API --> DL BT --> DL

图示来源 - docker-compose.yml:1-90 - Dockerfile:1-108 - pyproject.toml:77-87

章节来源 - README.md:1-182 - pyproject.toml:77-87

核心组件

章节来源 - pyproject.toml:77-87 - agent/requirements.txt:1-69 - frontend/package.json:1-58

架构总览

下图展示了开发时常见的请求路径与组件交互:浏览器访问前端,通过 Vite 代理到后端;CLI/MCP 直接调用后端;后端调度数据加载器与回测引擎,并将结果持久化。

sequenceDiagram participant Dev as "开发者" participant FE as "前端(Vite)" participant API as "后端(FastAPI)" participant DL as "数据加载器" participant BT as "回测引擎" participant FS as "文件系统(运行/会话/内存)" Dev->>FE : 打开 Web UI FE->>API : HTTP 请求(会话/运行/设置) API->>DL : 获取行情/基本面数据 DL-->>API : 标准化面板/时间序列 API->>BT : 执行回测/因子计算 BT-->>API : 指标/报告/产物 API->>FS : 写入 run_card/日志/制品 API-->>FE : SSE/JSON 响应

图示来源 - docker-compose.yml:1-90 - Dockerfile:82-108 - pyproject.toml:77-87

详细组件分析

开发环境与容器化

flowchart TD Start(["启动开发环境"]) --> DC["DevContainer 初始化<br/>安装依赖/转发端口"] DC --> FE["前端开发服务器<br/>npm run dev --port 5899"] DC --> API["后端服务<br/>vibe-trading serve --port 8899"] API --> Vol["持久化卷<br/>runs/sessions/.vibe-trading"] FE --> API API --> Vol

图示来源 - .devcontainer/devcontainer.json:1-40 - docker-compose.yml:1-90 - Dockerfile:1-108

章节来源 - .devcontainer/devcontainer.json:1-40 - docker-compose.yml:1-90 - Dockerfile:1-108

CLI 与 MCP

classDiagram class CLI { +chat() +run() +data() +channels() +goal() +memory() +update() } class MCP { +tools_list() +tools_call() } class API { +sessions_routes() +runs_routes() +settings_routes() +system_routes() } CLI --> API : "HTTP/本地调用" MCP --> API : "工具路由"

图示来源 - pyproject.toml:77-87

章节来源 - pyproject.toml:77-87

回测与数据加载器

flowchart TD A["选择市场/标的/周期"] --> B["加载器注册表"] B --> C{"可用源?"} C --> |是| D["按优先级拉取数据"] C --> |否| E["失败/降级提示"] D --> F["标准化面板/时间序列"] F --> G["回测引擎计算指标"] G --> H["输出制品(run_card/报告)"]

图示来源 - agent/requirements.txt:39-48 - pyproject.toml:89-103

章节来源 - agent/requirements.txt:39-48 - pyproject.toml:89-103

前端与构建

graph LR Dev["开发者"] --> NPM["npm ci / npm run dev"] NPM --> VITE["Vite 开发服务器<br/>:5899"] VITE --> API["后端 API<br/>:8899"]

图示来源 - frontend/package.json:1-58 - docker-compose.yml:68-83

章节来源 - frontend/package.json:1-58 - docker-compose.yml:68-83

依赖与开发环境

环境要求

章节来源 - pyproject.toml:1-23 - frontend/package.json:1-16

依赖安装

章节来源 - pyproject.toml:105-230 - agent/requirements.txt:1-69

开发工具配置

章节来源 - pyproject.toml:224-271 - .devcontainer/devcontainer.json:26-38

贡献流程与代码规范

提交流程

章节来源 - CONTRIBUTING.md:18-42 - CONTRIBUTING.md:85-138

代码规范

章节来源 - CONTRIBUTING.md:140-157 - pyproject.toml:240-271

团队协作与安全

章节来源 - CODE_OF_CONDUCT.md:1-129 - SECURITY.md:1-48 - AGENT_CONTRIBUTOR_GUIDE.md:41-56

调试与排错

常见开发问题与解决

章节来源 - docker-compose.yml:1-90 - Dockerfile:31-43 - frontend/package.json:1-16

调试技巧

章节来源 - AGENT_CONTRIBUTOR_GUIDE.md:24-39 - .devcontainer/devcontainer.json:26-38 - pyproject.toml:232-238

性能与可维护性建议

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

结论

本指南提供了从环境搭建、依赖管理、工具链配置到贡献流程与调试排错的完整开发路径。结合仓库中的 devcontainer、Docker 与 pyproject 配置,开发者可以快速建立一致的开发体验,并在严格的代码规范与安全策略下高效协作。

[本节为总结,不直接引用具体文件]

附录:常用命令与环境变量

常用命令

章节来源 - pyproject.toml:224-230 - frontend/package.json:9-15 - docker-compose.yml:1-90

关键环境变量

章节来源 - docker-compose.yml:8-19 - docker-compose.yml:75-77