股票分析代理

一个生产就绪的股票分析代理,用于获取实时金融数据、执行分析并通过模型上下文协议(MCP)与Claude Desktop集成。

  • by neelagarwal98
  • Jupyter Notebook
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 neelagarwal98/stock-analysis-agent-langgraph

使用说明

📈 基于LangGraph的股票分析代理

这个仓库记录了构建一个可投入生产的(系统/应用)的过程 股票分析代理 该系统能够获取实时金融数据,进行分析,并通过(某种接口)与Claude Desktop集成 模型上下文协议(MCP)。
这项工作从探索性笔记本开始,最终成果是可部署的 MCP服务器 在……之下;低于 stock-agent-mcp/。


📂 项目结构

stock-analysis-agent-langgraph/
├─ .env.example                # Example env vars for root
├─ README.md                   # This README
│
├─ docs/                       # Screenshots & traces from LangSmith runs
│
├─ 1_simple_graph.ipynb        # Basics of LangGraph state graphs
├─ 2_graph_with_condition.ipynb # Adding conditional flows
├─ 3_chatbot.ipynb             # Simple chatbot agent
├─ 4_tool_call.ipynb           # Demonstrates calling external tools
├─ 5_tool_call_agent.ipynb     # Agent with tool orchestration
├─ 6_memory.ipynb              # LangGraph agent with memory
├─ 7_langsmith.ipynb           # Integration with LangSmith tracing
├─ 8_HITL.py                   # Human-in-the-loop example in Python
├─ 9_agent_real_time_stock_price.ipynb # Final stock analysis agent with tools
│
└─ stock-agent-mcp/            # Production-ready MCP server
   ├─ .env.example             # Example env for server
   ├─ README.md                # Server-specific README
   ├─ server.py                # MCP server entrypoint
   ├─ docs/                    # Demo media for MCP server
   └─ src/
      └─ langgraph_agent/
         └─ tools.py           # Tool definitions (stock price, earnings, etc.)

✨ 主要特点

  • LangGraph 工具编排
  • Alpha Vantage API 用于财务数据(价格、收益、公司概况、历史数据)
  • 双子座大型语言模型(Gemini LLM) 用于推理/编排(langchain-google-genai)
  • LangSmith 追踪(添加环境变量后自动工作)
  • HITL(Human-in-the-Loop) 敏感操作的示例
  • MCP服务器 Claude Desktop的集成

🧭 架构(笔记本9 – 最终代理)

flowchart LR
    U["User Query"] --> LLM["Gemini 2.0 Flash<br>(LangGraph Orchestrator)"]
    LLM --> T["Tools<br/>(search_ticker, overview, earnings, realtime, history)"]
    T --> AV["Alpha Vantage API"]
    AV -- JSON --> T --> LLM --> A["Final Answer"]

    %% Observability
    LS["LangSmith Tracing (optional)"]
    LLM -.-> LS
    T -.-> LS

🛠️ 技术栈


📸 Trace的快照

追踪解释: 这个快照展示了代理如何逐步处理查询——从大型语言模型(LLM)的推理,到调用工具,最终生成答案。


⚡ 设置

前提条件:Python 3.12+, uv 安装的

  1. 克隆并进入仓库
git clone https://github.com/neelagarwal98/stock-analysis-agent-langgraph.git
cd stock-analysis-agent-langgraph
  1. 安装依赖项(根工作区)
uv sync
  1. 配置环境变量
    根目录和服务器各自提供了一个单独的示例文件:
  • Root(词根/根源/根源性的) 复制 .env.example → .env (笔记本电脑使用)
  • 服务器: 复制 stock-agent-mcp/.env.example → stock-agent-mcp/.env

填入你已有的密钥:

# Common (used across notebooks / server)
ALPHAVANTAGE_API_KEY=...
ALPHA_VANTAGE_BASE_URL=https://www.alphavantage.co/query

GEMINI_API_KEY=...

# Optional (enables tracing automatically if set)
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGSMITH_API_KEY=...
LANGSMITH_PROJECT=<project-name>
  1. 运行笔记本(以root身份)
uv run jupyter lab

📬 接下来该去哪里看


📝 许可证

这个项目根据以下所述条款获得许可: 许可证。