TradingAgents 架构分析

links

TradingAgents 是一个基于LangChain的金融交易框架,是一个使用了大语言模型(LLMs)的多 Agent 项目。

cli 目录中的 typer 依赖项提供了用户界面。setup.py 是项目的安装配置文件,其中配置了命令行入口,注册 tradingagents 命令,从 cli/main.py 启动应用程序。

代码目录

核心组件

  • TradingAgentsGraph:中央协调者,这个类位于 tradingagents/graph/trading_graph.py 中,定义并管理整个 Agent 工作流程。它为每个 Agent 初始化语言模型(LLMs)、工具和内存,然后使用 LangGraph 将它们组装成一个计算图。

  • main.pycli/main.py:该项目有两个主要入口点。main.py 提供了一个基本的命令行界面,用于运行单个分析,而 cli/main.py 则使用 Typer 和 Rich 库提供了丰富的交互体验。这个 cli 引导用户选择股票代码、分析日期和其他参数,然后实时可视化 Agent 的进展和报告。

  • langgraph:这个库是框架的核心,能够创建一个有状态的基于图的工作流程。Agent 之间的交互被建模为一系列节点和边,允许复杂的条件逻辑和循环。例如,牛市和熊市研究者之间的“辩论”是图中的一个循环,持续进行直到达成共识或达到最大轮次。

Agent 团队与工作流程:

项目框架

该框架围绕专业 Agent 团队构建,每个团队在分析过程中扮演着独特的角色:

分析师团队

  1. 分析师团队:该团队收集初步数据,并从多个角度提供基础分析:
  • 市场分析师:分析价格和交易量数据。

  • 社交分析师:从社交媒体中评估市场情绪。

  • 新闻分析师:从金融新闻中提取见解。

  • 基本面分析师:检查公司财务和内部交易情况。

  1. 研究团队:该团队通过结构化辩论深化分析:
  • 看涨研究员:支持对股票的积极展望。

  • 看跌研究员:提出对股票的负面展望。

  • 研究经理:主持辩论并做出最终判断,形成全面的投资论点。

  1. 交易团队
  • 交易员:根据研究团队的论点制定具体的可操作交易计划。
  1. 风险管理团队:该团队从不同风险角度审查交易计划:
  • 激进型保守型中立型辩论者:各自从分配的风险承受能力出发辩论计划。

  • 风险经理:类似于研究经理,该 Agent 将风险辩论综合成最终的风险调整交易决策。

数据和存储

FinancialSituationMemory

  • dataflows/: 该目录包含从各种来源获取数据的逻辑,包括 Yahoo Finance (yfinance) , Reddit (praw) , Finnhub和Google News。它抽象了数据检索过程,为代理提供了一个干净的接口。

  • FinancialSituationMemory: 每个代理都配备了记忆模块,使其能够保留过去分析的信息。这对于reflect_and_remember过程至关重要,该过程使系统能够从其过去交易的结果中学习,从而提高未来的表现。

配置和扩展性

default_config.py

  • default_config.py:该文件集中管理所有关键配置参数,例如使用哪些 LLM 模型、最大辩论轮数以及是否使用在线或缓存数据。这使得在不修改核心代码的情况下,轻松自定义框架的行为。

  • 模块化设计:该项目高度模块化。可以通过创建新类并将其集成到TradingAgentsGraph中,添加新的代理、数据源或甚至整个团队。使用 LangGraph 中的 ToolNode 使得为代理配备新工具和能力变得简单明了。


TradingAgents 架构分析
http://guoguo.host/blog/p/34149556.html
作者
Guoguo
发布于
2025年7月3日
许可协议