股票分析代理系统

一个多代理、多工具的确定性股票分析系统,提供全面的财务分析、AI驱动的洞察、多代理协调和CI/CD自动化。

  • by Ragesh-Thangaraj
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ragesh-Thangaraj/Multiagent-Stock-Analytics-System

使用说明

股票分析代理

一个多代理、多工具、确定性股票分析系统,具有全面的财务分析、人工智能驱动的洞察力、多代理编排和CI/CD自动化功能。

该项目使用Google ADK(代理开发工具包)构建一个完全确定、可测试和生产就绪的财务分析管道。

项目概述

该系统使用Google ADK(agent Development Kit)实现了三层代理架构,用于确定性股票分析:

  • 第1层(确定性数据代理):从雅虎财经和MarketAux API获取数据
  • 第2层(ParallelAgent):确定性比率代理、确定性估值代理和确定性风险代理同时计算30多个财务指标
  • 第3层(确定性表示代理):生成全面的报告和摘要

ADK确定性编排

该系统使用ADK SequentialAgent 和 ParallelAgent 用于工作流编排,具有自定义功能 BaseAgent 用于确定性执行的子类。此模式允许:

  • ADK驱动的工作流程: Runner.run_async 执行代理管道
  • 确定性计算:每个代理直接调用现有的计算函数(数学上没有LLM推理)
  • 状态持久性:使用会话服务通过显式的ADK会话状态更新在代理之间传递结果
  • 基于工具的代理:所有计算都通过ADK工具运行,以实现确定性、结构化的执行。
  • MCP服务器:通过带有护栏、输入验证、速率限制和安全输出过滤的MCP端点暴露管道。
SequentialAgent (StockAnalyticsPipeline)
├── Layer 1: DeterministicDataAgent
│     ├── Tools:
│     │     ├── YahooFinanceClient
│     │     └── MarketAuxClient
│     └── Output: Canonical JSON (Layer 1)
│
├── Layer 2: ParallelAgent (Layer2ParallelAgent)
│     ├── DeterministicRatioAgent
│     ├── DeterministicValuationAgent
│     └── DeterministicRiskAgent
│
│     Tools (python-function tools):
│       - Profitability Tools  
│       - Liquidity Tools  
│       - Valuation Tools  
│       - Market Risk Tools  
│       - Financial Risk Tools  
│       - Efficiency Tools  
│
│     Output: Enriched calculated metrics (Layer 2)
│
└── Layer 3: DeterministicPresentationAgent 
      ├── Report generator tools (PDF/HTML)
      ├── Summary tools
      └── AI Chattool (Gemini)

主要特点

财务分析

  • 30+指标(python函数工具) 9个类别:
    • 盈利能力(毛利率/营业利润/净利润率、ROA、ROE、ROIC)
    • 流动性(流动/速动/现金比率、营运资金)
    • 杠杆率(债务股本比、债务资产比、利息覆盖率)
    • 效率(资产周转率、库存周转率、应收账款周转率)
    • 增长(收入、净收入、每股收益、自由现金流、营业收入增长)
    • 现金流(自由现金流、经营现金流比率、现金流利润率)
    • 估值(市盈率、远期市盈率、市盈率、P/S、EV/EBITDA、PEG、股息收益率)
    • 市场风险(贝塔、阿尔法、波动性、夏普比率、风险值、最大提款)
    • 财务风险(Altman Z评分、信用/流动性/操作风险评分)

人工智能聊天

  • ChatGPT风格的对话界面
  • Gemini 2.0 Flash用于智能分析
  • 用于上下文保持的长期记忆
  • 自然语言股票查询

报告生成

  • 通过ReportLab提供专业PDF报告
  • 带样式的HTML报告
  • 删除报表管理功能
  • 执行摘要和投资建议

数据源

  • 雅虎财经:价格历史、基本面、预先计算的比率、公司信息
  • MarketAux API:带有情绪分析的新闻文章

MCP护栏和验证

  • 在运行管道之前强制执行输入验证(股票代码格式,所需的基本原理)。
  • MCP服务器的护栏策略强制执行速率限制和执行时间上限。
  • 在返回结果之前应用了输出筛选。

CI/CD管道(GitHub操作)

  • 该项目使用位于以下位置的生产级CI/CD管道 github/workflows/ci.yml
  • 设置和安装:Python 3.11环境和Python 3.11环境
  • 代码质量:用Ruff勾选,用黑色勾选格式
  • 自动化测试:运行单元、集成和端到端测试,并生成覆盖率报告
  • 包装:构建用于部署的agent_engine_package包
  • Docker构建:构建生产就绪的Docker镜像

快速开始

先决条件

  • Python 3.11+
  • API密钥:
    • GEMINI_API_KEY -用于AI聊天和总结
    • MARKETAUX_API_KEY -新闻数据(可选)

运行应用程序

streamlit run app.py

### Usage Example

```python
from src.adk_agents.orchestrator import run_stock_analysis, get_orchestrator

# Run comprehensive stock analysis via ADK Runner
result = run_stock_analysis("AAPL", period_days=252)

# Access calculated metrics
profitability = result['calculated']['profitability']
valuation = result['calculated']['valuation']
risk = result['calculated']['risk_market']
overall_risk = result["overall_risk"]

# Get the generated report
report = result['report']

# Access ADK components
orchestrator = get_orchestrator()
pipeline = orchestrator.get_pipeline()      # SequentialAgent
parallel = orchestrator.get_parallel_agent()  # ParallelAgent
runner = orchestrator.get_runner()          # Runner

流线型UI功能

标签页

  1. 概述:公司信息、交互式价格图、近期情绪新闻
  2. 指标:所有30多个通过人工智能分析计算的财务指标
  3. 估值:市盈率、市盈率、EV/EBITDA、PEG比率分析
  4. 风险:市场风险(贝塔、阿尔法、波动性)和财务风险(Z分数)
  5. 报告:生成和下载具有删除功能的PDF/HTML报告
  6. 聊天:用于股票问题的ChatGPT式会话人工智能

数据存储

  • runs/ -标准JSON文件: <TICKER>_<TIMESTAMP>.json 和 <TICKER>_<TIMESTAMP>_calculated.json
  • reports/ -生成的PDF/HTML报告
  • logs/agents/ -代理执行日志和指标

测试

运行测试套件:

pytest src/tests/

运行特定测试:

pytest src/tests/unit/test_profitability.py
pytest src/tests/integration/test_data_fetch.py
pytest src/tests/e2e/test_full_pipeline.py

环境变量

  • GEMINI_API_KEY -人工智能代理的Google Gemini API密钥
  • MARKETAUX_API_KEY -MarketAux API新闻密钥
  • DATABASE_URL -PostgreSQL连接(供将来使用)

依赖项

谷歌广告和人工智能:

  • googleadk-代理开发工具包(SequentialAgent、ParallelAgent、BaseAgent、Runner)
  • 谷歌genai-用于对话式人工智能的Gemini 2.0 Flash

财务数据:

  • yfinance-雅虎财经API价格历史和基本面
  • MarketAux API-新闻文章和情绪分析

前端和报告:

  • Streamlit-交互式仪表板的Web框架
  • ReportLab-专业PDF报告生成
  • Plotly-交互式图表

数据处理:

  • NumPy-风险度量的统计计算
  • Pandas-时间序列数据处理

许可证

MIT许可证