LLM应用剖析: AI对冲基金

1. 背景

  • 上周发表了一篇LLM应用--微舆的应用剖析,收到一位读者的留言,想要了解基于LangGraph构建的多Agent应用,因此想起来了几个月前深入研究的LLM应用AI对冲基金(ai-hedge-fund),遂将以前的内容整理整理。

  • AI Hedge Fund是一个基于AI对冲基金的概念验证项目,github星标已达42K+, 探索如何利用人工智能进行交易决策。仅用于教育目的,不用于实操。

2. 核心特色

2.1 内置18+投资Agent

该项目基于LangGraph构建了多Agent的协作机制,包括18个投资领域的Agent,且每个Agent关注各自主题相关的投资指标进行评判,分组如下:

(1) 价值投资Agent

  • 1)阿斯沃思·达莫达兰【估值院长】

    通过严格的估值分析,关注内在价值和财务指标来评估投资机会。

    1. 本杰明·格雷厄姆【价值投资之父】

    通过系统价值分析,强调安全边际,投资于基本面强劲但被低估的公司。

    1. 查理·芒格【理性思想家】

    倡导价值投资,专注于优质企业和通过理性决策实现长期增长。

    1. 沃伦·巴菲特【奥马哈先知】

    通过价值投资和长期持有,寻找基本面强劲且具有竞争优势的公司。

    1. 莫尼斯·帕伯莱【丹霍投资者】

    通过基本面分析和安全边际,专注于价值投资和长期增长。

    1. 迈克尔·伯里【大空头逆向投资者】

    进行逆向押注,通常做空被高估的市场,并通过深入的基本面分析投资于被低估的资产。

    1. 基本面分析【财务报表专家】

    通过基本面分析,深入研读财务报表和经济指标,评估公司的内在价值。

    1. 估值分析【公司估值专家】

    专长于确定公司的公平价值,使用各种估值模型和财务指标进行投资决策。

(2) 成长投资Agent

    1. 凯茜·伍德【增长投资女王】

    关注颠覆性创新和增长,投资于引领技术进步和市场颠覆的公司。

    1. 彼得·林奇【十倍股投资者】

    使用"买你所知"策略,投资于业务模式易懂且增长潜力强劲的公司。

    1. 菲利普·费雪【小道消息投资者】

    强调投资于管理强大和产品创新的公司,通过小道消息研究专注于长期增长。

    1. 成长分析【增长专家】

    通过增长分析,分析增长趋势和估值,以识别增长机会。

(3) 宏观投资Agent

    1. 斯坦利·朱肯米勒【宏观投资者】

    关注宏观经济趋势,通过自上而下分析,对货币、商品和利率进行大额押注。

    1. 雷卡·拉凯什·朱朱瓦拉【印度大牛】

    利用宏观经济洞察,投资于高增长行业,特别是在新兴市场和国内机会。

(4) 技术分析Agent

    1. 技术分析【图表模式专家】
      关注图表模式和市场趋势来做出投资决策,通常使用技术指标和价格行为分析。

(5) 情感分析Agent

    1. 新闻情感分析【新闻情绪专家】

    通过新闻分析,分析新闻情绪来预测市场动向并识别机会。

    1. 市场情感分析【市场情绪专家】

    通过行为分析,评估市场情绪和投资者行为,以预测市场动向并识别机会。

(6) 活动投资Agent

    1. 比尔·阿克曼【行动主义投资者】
      通过战略行动主义和逆向投资头寸,寻求影响管理层并释放价值。

2.2 集成回溯测试

  • 股票数据源是财经数据集,默认美股,且其中AAPL, GOOGL, MSFT, NVDA, and TSLA这5家的数据是免费的,可以输入指定的模型、指定股票名称、回溯测试的起止时间开展测试。

2.3 多模型接入

  • 项目适配了第三方大模型以及ollama,其中第三方包括Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.1, DeepSeek R1, DeepSeek V3, Gemini 2.5 Pro, GLM-4.5 Air, Qwen 3 (235B) Thinking, GigaChat-2-Max等。

3. 总体架构

  • 整体流程如下:

  • (1) 输入股票名称及起止日期,选择指定模型和指定投资Agent。

  • (2) 每个Agent内部会从financialdatasets中拉取股票的相关数据并缓存在内存中,然后按照指定投资主题逻辑评估股票的投资价值。

  • (3) 每个Agent的内容汇总后,再经过风险管理Risk Manager,输出风险分析。

  • (4) 最后经过组合管理Portfolio Manager,决定最终的投资行为,包括买入、卖出、持有、看多、看空。

4. 核心源码

  • 基于LangGraph创建对冲基金多Agent交互的工作流。
python 复制代码
from langgraph.graph import END, StateGraph
from src.utils.analysts import get_analyst_nodes
from src.agents.portfolio_manager import portfolio_management_agent
from src.agents.risk_manager import risk_management_agent


def create_workflow(selected_analysts=None):
    """利用选择的分析师Agent创建工作流"""
    workflow = StateGraph(AgentState)
    workflow.add_node("start_node", start)

    # 从配置文件中获取分析师Agent节点
    analyst_nodes = get_analyst_nodes()

    # 如果未选择,则默认是所有的分析师Agent
    if selected_analysts is None:
        selected_analysts = list(analyst_nodes.keys())
    # 将节点和边加入工作流
    for analyst_key in selected_analysts:
        node_name, node_func = analyst_nodes[analyst_key]
        workflow.add_node(node_name, node_func)
        workflow.add_edge("start_node", node_name)

    # 增加风险管理、投资组合管理节点
    workflow.add_node("risk_management_agent", risk_management_agent)
    workflow.add_node("portfolio_manager", portfolio_management_agent)

    # 分析师Agent连接到风险节点
    for analyst_key in selected_analysts:
        node_name = analyst_nodes[analyst_key][0]
        workflow.add_edge(node_name, "risk_management_agent")

    workflow.add_edge("risk_management_agent", "portfolio_manager")
    workflow.add_edge("portfolio_manager", END)

    workflow.set_entry_point("start_node")
    return workflow

5. 总结与思考

  • (1) 该项目重点并不在于LangGraph,而是基于LangGraph上层构建的诸多Agent。能够将投资领域大师们的核心理念简化为逻辑代码,虽不完美,但能略窥一二,对于投资领域小白的我,也是受益匪浅。
  • (2) 回溯测试的功能,对于投资来说,是很重要的,一个策略、一种技术对于投资的影响力,需要通过针对历史股票数据的回溯测试,才能验证其准确性与稳定性。
  • (3) 虽然项目以美股为主,但如果接入A股数据(比如通过akshare),也可以成功运行,只需要适配数据采集点即可。本人也花费了少许时间简单集成了下。
  • (4) 项目目前支持了系统部署,可以在系统页面进行操作。

6. 参考