内置工具分类与使用

📎 引用文件

本文引用的文件 - agent/src/tools/__init__.py - agent/src/tools/market_data_tool.py - agent/src/tools/backtest_tool.py - agent/src/tools/factor_analysis_tool.py - agent/src/tools/financial_statements_tool.py - agent/src/tools/technical_indicator_tool.py - agent/src/tools/market_screener_tool.py - agent/src/tools/sentiment_tool.py - agent/src/tools/alpha_bench_tool.py - agent/src/tools/cashflow_analytics_tool.py - agent/src/tools/options_chain_tool.py - agent/src/tools/portfolio_risk_tool.py

目录

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

简介

本文件面向 Vibe-Trading 的“内置工具系统”,系统化梳理并说明市场数据、回测、因子分析、财务报表、技术指标、情绪指标、期权、投资组合风险等工具的分类、参数、调用方式与结果处理。文档同时提供工具间组合模式、性能调优建议与错误处理策略,帮助读者以最小成本完成复杂金融分析任务。

项目结构

Vibe-Trading 的工具通过统一注册机制自动发现并挂载,支持本地工具与远程 MCP 工具合并注册;每个工具继承基类并声明名称、描述、参数与执行逻辑。关键入口位于工具包初始化模块,负责扫描、过滤、注入上下文(如会话 ID、持久化内存)以及可选的 MCP 工具集成。

graph TB A["工具注册中心<br/>build_registry()"] --> B["本地工具自动发现<br/>BaseTool 子类扫描"] A --> C["MCP 工具包装器<br/>按配置追加"] B --> D["MarketDataTool<br/>get_market_data"] B --> E["BacktestTool<br/>backtest"] B --> F["FactorAnalysisTool<br/>factor_analysis"] B --> G["FinancialStatementsTool<br/>get_financial_statements"] B --> H["TechnicalIndicatorTool<br/>technical_indicators"] B --> I["MarketScreenerTool<br/>screen_market"] B --> J["SentimentTool<br/>sentiment"] B --> K["AlphaBenchTool<br/>alpha_bench"] B --> L["CashFlowPerformanceTool<br/>cashflow_performance"] B --> M["OptionsChainTool<br/>get_options_chain"] B --> N["PortfolioRiskXrayTool<br/>portfolio_risk_xray"]

图表来源 - agent/src/tools/__init__.py:66-245

章节来源 - agent/src/tools/__init__.py:1-365

核心组件

章节来源 - agent/src/tools/__init__.py:33-63 - agent/src/tools/__init__.py:66-245

架构总览

工具层围绕“数据获取—计算—报告”的流水线组织: - 数据获取:市场数据、财报、情绪指数、期权链等。 - 计算:技术指标、因子 IC/IR、分层净值、组合风险、现金流回报等。 - 报告:结构化 JSON、HTML 报告、CSV 输出等。

sequenceDiagram participant U as "用户/Agent" participant R as "工具注册中心" participant T as "具体工具" participant D as "数据源/加载器" participant C as "计算引擎" U->>R : 选择并调用工具 R->>T : 分发到对应 execute() T->>D : 拉取数据(行情/财报/情绪/期权) D-->>T : 标准化数据 T->>C : 执行计算(指标/因子/风险/回报) C-->>T : 计算结果 T-->>U : 返回 JSON 结果(含元数据/分页/错误)

图表来源 - agent/src/tools/market_data_tool.py:94-103 - agent/src/tools/technical_indicator_tool.py:200-283 - agent/src/tools/factor_analysis_tool.py:19-105 - agent/src/tools/portfolio_risk_tool.py:84-131

详细组件分析

市场数据工具

flowchart TD S["开始"] --> P["校验参数<br/>codes/start/end/source/interval/max_rows"] P --> Q["调用统一数据接口<br/>fetch_market_data_json"] Q --> R{"是否成功?"} R -- 否 --> E["返回错误信封"] R -- 是 --> O["返回标准化数据+来源信息"] O --> End["结束"]

图表来源 - agent/src/tools/market_data_tool.py:20-91 - agent/src/tools/market_data_tool.py:94-103

章节来源 - agent/src/tools/market_data_tool.py:1-104

回测工具

sequenceDiagram participant U as "用户" participant BT as "BacktestTool" participant FS as "文件系统" participant EN as "Runner/引擎" U->>BT : backtest(run_dir) BT->>FS : 读取 config.json / code/signal_engine.py BT->>EN : 执行回测(带超时) EN-->>BT : 结果(成功/失败, 产物) BT-->>U : JSON 结果(状态/日志/产物)

图表来源 - agent/src/tools/backtest_tool.py:15-74 - agent/src/tools/backtest_tool.py:77-95

章节来源 - agent/src/tools/backtest_tool.py:1-95

因子分析工具

flowchart TD A["读取 factor_csv / return_csv"] --> B{"数据有效?"} B -- 否 --> E["返回错误"] B -- 是 --> C["计算 IC 序列"] C --> D{"IC 有效?"} D -- 否 --> E D -- 是 --> F["统计 IC 均值/标准差/IR/正胜率"] F --> G["分层回测生成 group_equity"] G --> H["输出 CSV/JSON 与摘要"]

图表来源 - agent/src/tools/factor_analysis_tool.py:19-105 - agent/src/tools/factor_analysis_tool.py:108-152

章节来源 - agent/src/tools/factor_analysis_tool.py:1-152

财务报表工具

sequenceDiagram participant U as "用户" participant FS as "FinancialStatementsTool" participant EM as "Eastmoney/SEC 客户端" U->>FS : get_financial_statements(code, statement, period, offset) FS->>EM : 拉取报表/指标 EM-->>FS : 原始数据 FS-->>U : 标准化分页结果(含 market/source/statement/period/data/paging)

图表来源 - agent/src/tools/financial_statements_tool.py:589-726

章节来源 - agent/src/tools/financial_statements_tool.py:1-726

技术指标工具

flowchart TD S["开始"] --> L["拉取收盘价序列(连续无截断)"] L --> C{"数据可用?"} C -- 否 --> E["返回错误"] C -- 是 --> I["计算 RSI/MACD/布林/SMA/EMA"] I --> O["返回指标字典与最新价/日期"]

图表来源 - agent/src/tools/technical_indicator_tool.py:157-283

章节来源 - agent/src/tools/technical_indicator_tool.py:1-283

全市场选股器

章节来源 - agent/src/tools/market_screener_tool.py:1-257

情绪指标工具

章节来源 - agent/src/tools/sentiment_tool.py:1-147

Alpha 基准评测工具

章节来源 - agent/src/tools/alpha_bench_tool.py:1-800

现金流绩效工具

章节来源 - agent/src/tools/cashflow_analytics_tool.py:1-489

期权链工具

章节来源 - agent/src/tools/options_chain_tool.py:1-156

投资组合风险 X 光

章节来源 - agent/src/tools/portfolio_risk_tool.py:1-195

依赖关系分析

graph LR Reg["工具注册中心"] --> MD["市场数据工具"] Reg --> FT["财务报表工具"] Reg --> TI["技术指标工具"] Reg --> FA["因子分析工具"] Reg --> PR["组合风险工具"] MD --> DL["数据加载器/客户端"] FT --> DL TI --> DL FA --> AL["因子库/计算核心"] PR --> RL["风险计算库"]

图表来源 - agent/src/tools/__init__.py:66-245 - agent/src/tools/market_data_tool.py:94-103 - agent/src/tools/financial_statements_tool.py:589-726 - agent/src/tools/technical_indicator_tool.py:200-283 - agent/src/tools/factor_analysis_tool.py:19-105 - agent/src/tools/portfolio_risk_tool.py:84-131

章节来源 - agent/src/tools/__init__.py:1-365

性能考虑

[本节为通用指导,无需特定文件引用]

故障排查指南

章节来源 - agent/src/tools/financial_statements_tool.py:114-124 - agent/src/tools/technical_indicator_tool.py:200-283 - agent/src/tools/alpha_bench_tool.py:162-273 - agent/src/tools/cashflow_analytics_tool.py:476-489

结论

Vibe-Trading 的内置工具体系以统一注册为核心,围绕数据、计算、报告形成清晰流水线。通过标准化的参数与结果契约,工具之间可灵活组合,支撑从基础数据获取到高级因子与组合分析的完整工作流。遵循本文的参数规范、性能建议与故障排查方法,可高效完成复杂金融分析任务。

[本节为总结性内容,无需特定文件引用]

附录:组合使用与最佳实践

[本节为概念性指导,无需特定文件引用]