欢迎关注公众号: 爱学习的妮妮qiang
1. 背景
在上周发布的一篇文章《LLM应用–微舆的应用剖析》之后,收到了一位读者关于基于LangGraph构建的多Agent应用的询问。这让我想起了几个月前深入研究的一个项目——AI对冲基金(ai-hedge-fund),一个探索如何利用人工智能进行交易决策的概念验证项目。该项目在GitHub上的星标已超过42K,但请注意,它仅适用于教育目的,不应用于实际操作。
2. 核心特色
2.1 内置18+投资Agent
此项目利用LangGraph构建了一个多Agent协作框架,包含18个专注于不同投资领域的Agent,它们分别负责评估各自领域内的投资指标。以下是这些Agent的详细分类:
- 价值投资Agent
- 阿斯沃思·达莫达兰【估值院长】:专注于严格的估值分析,评估投资机会的内在价值和财务状况。
- 本杰明·格雷厄姆【价值投资之父】:采用系统性的价值分析方法,强调投资的安全边际,倾向于投资基本面稳健但被低估的公司。
- 查理·芒格【理性思想家】:推崇价值投资理念,专注于高质量的企业并通过理性决策追求长期增长。
- 沃伦·巴菲特【奥马哈先知】:结合价值投资与长期持有策略,寻找基本面强劲且具有竞争优势的公司。
- 莫尼斯·帕伯莱【丹霍投资者】:通过基本面分析和安全边际原则,专注于价值投资和长期增长。
- 迈克尔·伯里【大空头逆向投资者】:进行逆向投资,通常做空被高估的市场,同时通过深入的基本面分析投资于被低估的资产。
- 基本面分析【财务报表专家】:通过深入研究财务报表和经济指标,评估公司的内在价值。
- 估值分析【公司估值专家】:擅长确定公司的公允价值,运用多种估值模型和财务指标指导投资决策。
- 成长投资Agent
- 凯茜·伍德【增长投资女王】:关注颠覆性创新和成长机会,投资于引领技术和市场变革的公司。
- 彼得·林奇【十倍股投资者】:采用“买你所知”的策略,投资于商业模式清晰且增长潜力巨大的公司。
- 菲利普·费雪【小道消息投资者】:重视投资于管理出色和产品创新的公司,通过非正式渠道的信息收集专注于长期增长。
- 成长分析【增长专家】:通过分析成长趋势和估值,识别成长机会。
- 宏观投资Agent
- 斯坦利·朱肯米勒【宏观投资者】:关注宏观经济趋势,通过自上而下的分析,对货币、商品和利率等进行大额押注。
- 雷卡·拉凯什·朱朱瓦拉【印度大牛】:利用宏观经济洞见,投资于高增长行业,尤其是新兴市场和国内机会。
- 技术分析Agent
- 技术分析【图表模式专家】:通过图表模式和市场趋势进行投资决策,通常依赖技术指标和价格行为分析。
- 情感分析Agent
- 新闻情感分析【新闻情绪专家】:通过分析新闻情绪预测市场走势并发现投资机会。
- 市场情感分析【市场情绪专家】:通过行为分析评估市场情绪和投资者行为,以预测市场走势并发现投资机会。
- 活动投资Agent
- 比尔·阿克曼【行动主义投资者】:通过战略性行动主义和逆向投资,旨在影响管理层并释放公司价值。
2.2 集成回溯测试
项目的股票数据来源于财经数据集,默认支持美股数据,其中苹果(AAPL)、谷歌(GOOGL)、微软(MSFT)、英伟达(NVDA)和特斯拉(TSLA)这五家公司的数据是免费提供的。用户可以选择特定的模型、股票名称以及回溯测试的时间范围来进行测试。
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. 总体架构

整个工作流程概述如下:
- 用户输入股票名称及起止日期,选择特定的模型和投资Agent。
- 各Agent从financialdatasets获取相关股票数据并缓存至内存中,随后根据选定的投资主题逻辑评估股票的投资价值。
- 所有Agent的评估结果汇总后,交由风险管理模块(Risk Manager)进行风险分析。
- 最后,组合管理模块(Portfolio Manager)根据风险分析的结果,决定最终的投资行为,包括买入、卖出、持有、看多或看空。
4. 核心源码
以下展示了基于LangGraph构建的对冲基金多Agent交互工作流的核心代码片段:
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
总结与思考
- 本项目的重点并非在于LangGraph本身,而是在其基础上构建的各种Agent。这些Agent能够将投资领域的大师们的核心理念简化为逻辑代码,尽管不够完美,但对于像我这样的投资新手来说,仍然受益良多。
- 回溯测试功能在投资领域尤为重要。一个策略或技术的有效性,需要通过对历史股票数据的回溯测试来验证其准确性和稳定性。
- 虽然项目主要针对美股,但通过接入A股数据(例如使用akshare),同样可以成功运行,只需适配数据采集点。我也花了一些时间进行了简单的集成。
- 项目目前支持系统部署,用户可以在系统页面上进行操作。
参考
- 项目地址: https://github.com/virattt/ai-hedge-fund
- 美国财经数据集: https://financialdatasets.ai/
- 国内开源财经数据: https://akshare.akfamily.xyz/
代码示例
以下是一个创建工作流的示例代码:
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


雷达卡


京公网安备 11010802022788号







