项目简介

LangAlpha 是一个先进的 AI 股票市场分析工具,它整合了大型语言模型(LLMs)和代理(Agent)工作流,自动化执行数据收集、处理和分析任务。其核心在于一个基于 LangGraph 的多智能体系统,该系统通过 MCP(Model Context Protocol)协议与各种数据提供方和服务(作为独立的 MCP 服务器)进行交互,从而获取股票价格、财务报表、新闻、市场情绪等关键信息,并生成结构化的分析报告。

主要功能点

  • 多智能体架构: 构建了一个由协调器、规划器、研究员、市场数据代理、分析师、报告员等组成的协作式智能体系统,能够理解复杂查询并分解执行。
  • 模块化数据访问 (通过 MCP): 将 Polygon、Yahoo Finance (通过 'yahooquery')、Tavily Search 和 Tickertick News 等数据源封装为独立的 MCP 服务器工具,智能体可以按需调用。
  • 全面的股票及市场分析: 提供包括股价变动、技术指标、公司基本面、财务健康状况、股东结构、分析师评级、交易策略信号(趋势、均值回归、动量、波动率、统计套利)等多维度分析能力。
  • 代码执行与网页浏览: 集成Python解释器和Bash工具,以及浏览器代理,支持更复杂的计算和非结构化信息获取。
  • 自动化报告生成: 将所有收集和分析的信息合成为易于阅读的 Markdown 格式报告。
  • 灵活的部署: 支持通过标准输入输出(stdio)或其他传输方式与 MCP 客户端通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Chen-zexi/LangAlpha.git
    cd LangAlpha
  2. 安装 uv (如果未安装):
    pip install uv
  3. 创建并激活虚拟环境:
    uv venv
    # macOS/Linux:
    source .venv/bin/activate
    # Windows:
    # .venv\Scripts\activate
  4. 安装依赖:
    uv pip sync requirements.lock
    # 或
    uv pip install -r requirements.txt
  5. 设置 API Key: 复制 '.env.example' 文件为 '.env',并填入项目所需的 API Key。至少需要以下 API Key:
    • 'POLYGON_API_KEY' (用于市场和股票数据)
    • 'TAVILY_API_KEY' (用于网页搜索)
    • 'GEMINI_API_KEY', 'OPENAI_API_KEY', 'ANTHROPIC_API_KEY' 等 (根据您配置和使用的 LLM 提供商选择填写)。
    • 注意:部分数据源(如 Polygon)可能需要付费订阅才能正常使用。
    • (可选)'WRDS_USERNAME' 和 'DB_USER'/'DB_PASSWORD' 用于 WRDS 数据和数据库集成。
  6. 创建数据库表 (可选,如果使用数据库):
    uv run src/database_tool/create_table.py

服务器配置

LangAlpha 仓库包含多个独立的 MCP 服务器实现,用于向 MCP 客户端(例如 LangAlpha 自身的多智能体系统)提供特定的工具能力。这些服务器可以通过以下 JSON 配置信息进行启动和连接:

[
  {
    "name": "market_data",
    "command": "python",
    "args": ["<项目根目录>/src/mcp_server/market_data.py"],
    "transport": "stdio",
    "description": "提供基于 Polygon API 的市场数据工具,例如获取股票指标、快照、市场动态和交易信号。"
  },
  {
    "name": "fundamental_data",
    "command": "python",
    "args": ["<项目根目录>/src/mcp_server/fundamental_data.py"],
    "transport": "stdio",
    "description": "提供基于 Yahoo Finance API 的股票基本面数据工具,例如获取财务摘要、事件预期、所有权和简化的DCF估值。"
  },
   {
    "name": "tavily_search",
    "command": "python",
    "args": ["<项目根目录>/src/mcp_server/tavily.py"],
    "transport": "stdio",
    "description": "提供基于 Tavily API 的网页搜索工具。"
  },
  {
    "name": "tickertick",
    "command": "python",
    "args": ["<项目根目录>/src/mcp_server/tickertick.py"],
    "transport": "stdio",
    "description": "提供基于 Tickertick API 的金融新闻和搜索股票代码的工具。"
  }
]

请将 '<项目根目录>' 占位符替换为您的 LangAlpha 项目在文件系统中的绝对路径。这些 JSON 配置描述了如何启动每个 MCP 服务器进程。一旦这些服务器进程启动并通过 'stdio' 传输进行通信,任何兼容的 MCP 客户端都可以连接并调用它们提供的工具。在 LangAlpha 的默认运行模式下,这些服务器进程会由其内部的 MCP 客户端('MultiServerMCPClient')在需要时自动启动和管理。

基本使用方法

激活虚拟环境后,在项目根目录运行主程序:

uv run main.py

程序将提示你输入本次分析任务的名称(用于保存文件)和具体的查询(例如 "Analyze the recent performance and outlook of NVIDIA (NVDA)")。然后,智能体系统将开始执行分析工作流,并在控制台输出过程信息,最终将生成的报告保存到 'assets/reports' 文件夹。

您也可以安装 'langgraph-cli' ('pip install langgraph-cli') 并使用开发模式运行,以便通过 LangGraph Studio 查看工作流执行过程 (需先启动 'langgraph dev --allow-blocking'):

uv run main.py -dev

信息

分类

AI与计算