使用LangGraph和MCP的股票分析代理
这个项目展示了如何使用LangChain、LangGraph和多组件协议(MCP)来创建一个用于金融分析的AI代理。该代理能够回答有关股市的问题,包括当前股价、历史数据以及公司信息。
以下是两个实施示例:
sample_agent.py一个使用本地定义工具的同步代理。mcp_agent.py一个更高级的异步代理,通过MCP消耗远程服务器上的工具。
功能
该代理可以使用以下工具来回答问题:
- 获取当前股票价格返回某个股票代码的最新报价。
- 获取历史数据它提供了一定时间段内的价格历史记录。
- 获取公司信息返回有关公司的总体信息(行业、概述等)。
项目结构
stock_agent/
├── .env # Arquivo para variáveis de ambiente (não versionado)
├── mcp_agent.py # Ponto de entrada para o agente principal (assíncrono com MCP)
├── sample_agent.py # Ponto de entrada para o agente de exemplo (síncrono local)
├── tools.py # Definição das ferramentas locais que usam a biblioteca yfinance
├── mcp_servers.py # Configuração dos servidores MCP remotos
└── README.md # Este arquivomcp_agent.py实现主代理。它连接到MCP服务器(配置在mcp_servers.py) 以动态获取可用工具并异步执行它们。sample_agent.py一个更简单的实现方式是直接从文件中导入并使用工具。tools.py作为使用LangGraph的ReAct代理的基本示例。tools.py它包含了工具的业务逻辑。函数被装饰为@tool来自LangChain并使用该库yfinance以查找财务数据。mcp_servers.py为MCP服务器定义配置字典。在此示例中,它被配置为连接到Smithery.ai上的一个提供金融工具的端点。
安装与配置
按照以下步骤准备运行环境。
1. 创建一个虚拟环境
将项目依赖项隔离出来是一种良好的做法。
python -m venv .venv
source .venv/bin/activate
# No Windows, use: .venv\Scripts\activate2. 安装依赖项
安装所有必要的Python库。
pip install langchain langgraph langchain-openai yfinance python-dotenv langchain-mcp-adapters3. 配置环境变量
创建一个名为 .env 在项目根目录下,复制以下示例。
# .env
OPENAI_API_KEY="sk-sua-chave-da-openai"
SMITHERY_API_KEY="sua-chave-da-smithery-ai"OPENAI_API_KEY您的OpenAI API密钥,语言模型所需的(gpt-5-mini)。SMITHERY_API_KEY您的Smithery.ai API密钥,用于连接到远程MCP服务器mcp_agent.py。
如何执行
你可以与这两个代理中的任何一个进行交互。
运行主代理(带MCP)
这个代理连接到远程服务器以获取工具。
python mcp_agent.py运行示例代理(本地)
这个代理使用在文件中本地定义的工具 tools.py。
python sample_agent.py启动其中一个代理后,您会看到一个交互提示:
Digite: Qual o preço atual da PETR4.SA?