API参考

📎 引用文件

本文档引用的文件
- agent/api_server.py - agent/mcp_server.py - agent/src/api/security.py - agent/src/api/auth_routes.py - agent/src/api/sessions_routes.py - agent/src/api/runs_routes.py - agent/src/api/live_routes.py - agent/src/api/system_routes.py - frontend/src/lib/apiAuth.ts

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能与速率限制
  8. 故障排查指南
  9. 结论
  10. 附录:协议与版本信息

简介

本参考文档面向 Vibe-Trading 的对外接口,覆盖以下通信方式与能力: - RESTful API:HTTP 方法、URL 模式、请求/响应模型、认证与安全头。 - WebSocket/SSE:事件流连接、消息格式、重连与会话状态。 - MCP(Model Context Protocol):stdio、SSE、Streamable HTTP 三种传输;工具清单与调用约定。 - 安全与鉴权:API Key、SSE 票据、CORS、CSP、DNS 反查防护。 - 实时交易控制面:授权、指令提交、熔断开关、运行器状态。 - 运维与系统:健康检查、就绪探针、文档访问、关闭进程。 - 性能优化与调试:限流、缓存、日志脱敏、监控端点。

项目结构

Vibe-Trading 将 API 服务以 FastAPI 应用为中心,通过模块化路由注册组织功能域: - 入口与生命周期:api_server.py 负责创建 FastAPI 实例、挂载中间件、注册各模块路由、启动/停止后台任务。 - 安全与鉴权:security.py 提供 Bearer 校验、SSE 票据、CORS/CSP、本地回环信任策略。 - 业务路由:sessions、runs、live、system、auth、channels、swarm、alpha、qveris 等。 - MCP 服务:mcp_server.py 暴露研究工具集,支持 stdio、SSE、Streamable HTTP 传输。

graph TB Client["客户端"] --> API["FastAPI 应用<br/>agent/api_server.py"] API --> Sec["安全中间件<br/>agent/src/api/security.py"] API --> Auth["认证路由<br/>agent/src/api/auth_routes.py"] API --> Sessions["会话与目标<br/>agent/src/api/sessions_routes.py"] API --> Runs["回测运行结果<br/>agent/src/api/runs_routes.py"] API --> Live["实盘控制面<br/>agent/src/api/live_routes.py"] API --> System["系统与诊断<br/>agent/src/api/system_routes.py"] API --> MCP["MCP 服务<br/>agent/mcp_server.py"]

图表来源 - agent/api_server.py:163-293 - agent/src/api/security.py:166-253 - agent/src/api/auth_routes.py:21-56 - agent/src/api/sessions_routes.py:289-800 - agent/src/api/runs_routes.py:226-445 - agent/src/api/live_routes.py:631-800 - agent/src/api/system_routes.py:166-438 - agent/mcp_server.py:1-80

章节来源 - agent/api_server.py:163-293

核心组件

章节来源 - agent/src/api/security.py:343-623 - agent/src/api/auth_routes.py:21-56 - agent/src/api/sessions_routes.py:289-800 - agent/src/api/runs_routes.py:226-445 - agent/src/api/live_routes.py:631-800 - agent/src/api/system_routes.py:166-438 - agent/mcp_server.py:1-80

架构总览

sequenceDiagram participant C as "客户端" participant A as "FastAPI 应用" participant S as "安全中间件" participant R as "业务路由" participant E as "事件总线" C->>A : "POST /auth/sse-ticket (Bearer)" A->>S : "校验 Bearer" S-->>A : "通过" A-->>C : "{ticket}" C->>A : "GET /sessions/{id}/events?ticket=..." A->>S : "校验 ticket/Bearer" S-->>A : "通过" A->>R : "建立 SSE 流" R->>E : "订阅事件" E-->>R : "事件" R-->>C : "text/event-stream"

图表来源 - agent/src/api/auth_routes.py:21-56 - agent/src/api/security.py:591-623 - agent/src/api/sessions_routes.py:752-800

详细组件分析

REST API:会话与目标(Sessions & Goals)

flowchart TD Start(["进入 /sessions/{id}/events"]) --> CheckAuth{"认证通过?"} CheckAuth --> |否| Err401["返回 401/403"] CheckAuth --> |是| Subscribe["订阅事件总线"] Subscribe --> Loop{"有事件?"} Loop --> |是| Emit["序列化 SSE 帧"] Emit --> Relay["可选转发 mandate.proposal / live.action"] Relay --> Loop Loop --> |否| Wait["等待新事件"] Wait --> Loop

图表来源 - agent/src/api/sessions_routes.py:752-800 - agent/src/api/sessions_routes.py:189-282

章节来源 - agent/src/api/sessions_routes.py:289-800

REST API:运行结果(Runs)

章节来源 - agent/src/api/runs_routes.py:226-445

REST API:实盘控制面(Live)

sequenceDiagram participant UI as "前端" participant API as "Live 路由" participant Bus as "事件总线" UI->>API : "POST /mandate/commit" API->>Bus : "emit mandate.committed" API->>Bus : "emit live.action" API-->>UI : "提交结果" UI->>API : "POST /live/halt" API->>Bus : "emit live.halted" API->>Bus : "emit live.action" API-->>UI : "熔断结果"

图表来源 - agent/src/api/live_routes.py:649-720 - agent/src/api/live_routes.py:339-354

章节来源 - agent/src/api/live_routes.py:631-800

REST API:系统与诊断(System)

章节来源 - agent/src/api/system_routes.py:166-438

认证与安全(Security)

章节来源 - agent/src/api/security.py:166-253 - agent/src/api/security.py:300-341 - agent/src/api/security.py:343-623 - agent/src/api/auth_routes.py:21-56 - frontend/src/lib/apiAuth.ts:18-53

WebSocket/SSE 事件流

章节来源 - agent/src/api/sessions_routes.py:752-800 - agent/src/api/sessions_routes.py:189-282 - frontend/src/lib/apiAuth.ts:18-53

MCP 协议(Model Context Protocol)

章节来源 - agent/mcp_server.py:1-80 - agent/mcp_server.py:130-317 - agent/mcp_server.py:350-457

依赖关系分析

graph LR API["FastAPI 应用"] --> Sec["安全中间件"] API --> SR["Sessions 路由"] API --> LR["Live 路由"] API --> Sys["System 路由"] SR --> Bus["事件总线"] LR --> Bus LR --> Runner["LiveRunner"] Runner --> Broker["经纪商适配器"]

图表来源 - agent/api_server.py:163-293 - agent/src/api/sessions_routes.py:289-800 - agent/src/api/live_routes.py:631-800

章节来源 - agent/api_server.py:163-293

性能与速率限制

章节来源 - agent/src/api/system_routes.py:58-99 - agent/src/api/live_routes.py:172-219 - agent/src/api/security.py:256-297

故障排查指南

章节来源 - agent/src/api/sessions_routes.py:289-800 - agent/src/api/runs_routes.py:226-445 - agent/src/api/live_routes.py:631-800 - agent/src/api/system_routes.py:166-438

结论

Vibe-Trading 的 API 体系围绕 FastAPI 构建,采用模块化路由与安全中间件,提供稳健的 REST、SSE 与 MCP 接口。认证机制兼顾浏览器与非浏览器场景,安全策略覆盖 CORS/CSP、DNS 反查与日志脱敏。实盘控制面通过明确的生命周期与事件广播,确保前端一致体验。性能方面通过限流与缓存优化关键路径。建议在生产环境启用 API Key、合理配置 CORS/CSP,并结合健康/就绪探针进行监控。

附录:协议与版本信息

章节来源 - agent/src/api/system_routes.py:368-438 - agent/mcp_server.py:25-35