了解如何使用 agentic AI、MongoDB Atlas、Vector Search 和 Charts 构建智能投资组合。
使用案例: Gen AI
行业: 金融服务
产品和工具: MongoDB Atlas Vector Search、 MongoDB聚合管道、 MongoDB AtlasCharts、 MongoDB时间序列集合、 MongoDB Checkpointer、 MongoDB MCP Server
合作伙伴: Voyage AI、Amazon Bedrock、LangChain
解决方案概述
在当今的资本市场中,随着数据成为战略决策的核心,有效的风险管理正在迅速发展。投资组合经理必须处理大量不同的数据。这些数据可以是结构化的,例如财经信息,也可以是非结构化的,例如社交媒体帖子。这种数据的多样性给传统系统带来了挑战,因为传统系统不是为处理这种数据而构建的。AI驱动的解决方案通过集成自适应、上下文感知的决策,正在重新定义投资组合管理。
我们的智能投资组合整合并分析了各种数据源。通过将实时分析与生成式AI模型相结合,该解决方案改变了投资组合经理探索见解和采取动作的方式。
该解决方案由大型语言模型 (LLM)、检索增强生成 (RAG) 和MongoDB Atlas(包括向量搜索、时间序列集合和Atlas Charts)提供支持,使AI代理能够:
分析多个来源的海量金融数据集。
将数据进行有意义的分析。
根据投资组合表现提供动态见解和建议。
这可以增强决策能力,改进风险管理,并实现更准确的绩效和影响分析,帮助投资组合经理利用更多数据做出更明智、更快速的决策。
参考架构
此投资组合管理器演示由四种类型的代理组成:
分析代理
新闻代理
社交媒体代理
助理代理
该演示包括一个代理,每个代理用于传统资产,另一个代理用于加密资产,总共有八个代理。此外,还有两个微服务应用程序。第一个是数据摄取应用程序,负责摄取、转换和准备多个来源的金融、宏观经济、新闻和社交媒体数据。第二个是“洞察应用程序”,它协调AI代理工作流程来分析这些数据、监控趋势、评估情绪并生成有针对性的投资见解。如下图所示:
图1。高层架构
如图所示, MongoDB存储摄取进程中收集的数据。此数据包括以下类型:
时间序列数据,例如传统资产和加密货币资产数据。
结构化数据,例如宏观经济指标和稳定币市值数据。
非结构化数据,例如财经新闻文章和社交媒体帖子。
然后,该解决方案分析新闻文章和社交媒体数据的情绪得分,创建相应的嵌入,并将它们存储在MongoDB Atlas中各自的集合中。
分析、新闻和社交媒体代理从MongoDB获取数据来分析并生成传统和加密市场资产的报告。
最后,市场和加密货币助手代理根据当前投资组合分配提供特定于投资组合的见解,并使用 LangGraph React代理为两种类型的资产提供投资组合管理建议,利用MongoDB Atlas进行数据存储、向量搜索和代理状态管理。
此外,该解决方案还包括一个演示应用程序,可突出显示MongoDB模型上下文协议 (MCP) 服务器与AI支持的React Agent 集成时的高级功能。 该应用程序可有效处理存储在MongoDB Atlas中的复杂财务数据查询,利用直观的界面进行AI驱动的交互。
这种方法消除了手动查询和直接数据库互动的需要,清楚地说明了这种集成如何实现轻松的数据探索和简化的数据库管理,最终有助于做出更智能、更快速、更明智的投资决策。
构建解决方案
该演示由四个微服务组成,每个微服务都有自己的Github存储库:
1.加载器服务
图 2. 加载器服务架构
首先,该解决方案将数据存储在MongoDB Atlas中。它通过数据摄取应用程序来实现此目的,数据摄取应用程序是一设立计划的工作,用于处理从以下来源提取数据:
雅虎新闻:有关传统和加密资产的财经新闻。
雅虎财经:时间序列传统资产数据。
FRED API:宏观经济指标数据。
Reddit:有关传统资产和加密资产的社交媒体新闻。
Binance:加密货币市场数据。
CoinGecko:稳定币市值数据。
投资组合表现:旨在生成模拟的投资组合表现数据。
将数据存储在MongoDB集合后,使用预训练的 LLM 模型 FinBERT 处理非结构化新闻和社交媒体数据,计算其情绪分数。接下来,您使用 Voyage AI 的嵌入模型 voyage-finance-2
对数据进行矢量化,并将其与其矢量嵌入一起存储在相应的MongoDB集合中。
MongoDB存储不同类型数据的方式如下:
时间序列数据示例(币安加密资产):
{ "_id": { "$oid": "67c09436bd1cbed4d0185880" }, "headline": "QQQ Leads Inflows as VGIT, HYG Jump: ETF Flows as of Feb. 27", "source": "etf.com · via Yahoo Finance", "posted": "1 year ago", "description": "Top 10 Creations (All ETFs) Ticker Name Net Flows ($, mm) AUM ($, mm) AUM % Change QQQ Invesco QQQ...", "link": "https://finance.yahoo.com/news/qqq-leads-inflows-vgit-hyg-005429051.html?fr=sycsrp_catchall", "synced": false, "extraction_timestamp_utc": { "$date": "2025-02-27T16:35:02.823Z" }, "ticker": "HYG", "article_string": "Headline: QQQ Leads Inflows as VGIT, HYG Jump: ETF Flows as of Feb. 27\n/n Description: Top 10 Creations (All ETFs) Ticker Name Net Flows ($, mm) AUM ($, mm) AUM % Change QQQ Invesco QQQ...\n/n Source: etf.com · via Yahoo Finance\n/n Ticker: HYG\n/n Link: https://finance.yahoo.com/news/qqq-leads-inflows-vgit-hyg-005429051.html?fr=sycsrp_catchall", "sentiment_score": { "positive": 0.03415600210428238, "negative": 0.04247178137302399, "neutral": 0.9233722686767578 }, "article_embedding": [ 0.025981411337852478, 0.03783617168664932, 0.01893029175698757, 0.019744139164686203, -0.009678225964307785, 0.0296250581741333, -0.06560207903385162, -0.03349149599671364, 0.005457616411149502, -0.004056802950799465, -0.07076755166053772, -0.04305347055196762, ...] }
时间序列数据示例(币安加密资产):
{ "timestamp": { "$date": "2025-07-17T23:59:00.000Z" }, "symbol": "BTC", "low": 119170.52, "date_load_iso_utc": "20250718051014", "close": 119177.56, "volume": 7.0706, "open": 119200.02, "_id": { "$oid": "6879d7367395e04c9d26e122" }, "high": 119200.03 }
结构化数据示例(宏观经济指标):
{ "_id": { "$oid": "6863b79181f5695f447d426a" }, "title": "Gross Domestic Product", "series_id": "GDP", "frequency": "Quarterly", "frequency_short": "Q", "units": "Billions of Dollars", "units_short": "Bil. of $", "date": { "$date": "2025-06-26T00:00:00.000Z" }, "value": 29962.047 }
要复制此微服务,请参阅其Github存储库:Loaders Service
2.代理服务
图3。代理程序服务架构
虽然数据存储在MongoDB中,但仍需要进行处理。以下部分中描述的代理进程数据以生成特定于产品组合的见解。
分析代理
这些代理搜索与市场和加密数据相关的MongoDB集合,并分析每个集合中的资产趋势和宏观经济指标。然后,他们执行一系列计算以生成投资组合见解和建议。
这些计算构成了数据驱动型决策的分析主干。他们评估传统资产的经济指标和波动性指标,以捕捉宏观经济影响,同时跟踪加密资产的价格趋势、交易活动和动量指标。它们共同启用AI助手能够持续监控市场、平衡风险并实时优化投资组合表现。
市场资产计算:
VIX 敏感性分析
GDP 分析
利率分析
失业率分析
加密资产计算:
移动平均分析
交易量分析
RSI 分析
VWAP 分析
然后,将计算结果与基于 LLM 的推理(例如Amazon Web Services基岩或人类)相结合,以生成量身定制的投资组合建议。
新闻代理
这些代理使用MongoDB Atlas Vector Search 来检索传统和加密资产的语义相关的金融新闻。然后,他们执行基于 LLM 的情绪分析和总结,以突出显示关键信号。
社交媒体助手
与新闻代理类似,社交媒体代理使用MongoDB Atlas Vector Search检索语义相关的社交媒体帖子。最后,它们将基于 LLM 的情绪分析和摘要聚合到相应的 reports
集合中。
要复制此微服务,请参阅其Github存储库:定时代理服务
3。市场和加密货币助手代理服务
图 4。市场/加密货币助手代理服务架构
生成报告并将其存储到MongoDB Atlas集合后,市场助手代理会使用通过 LangGraph 实施的React推理模式来自主解释用户查询、访问权限相关工具并生成可操作的财务见解。
这些代理充当由法学硕士支持的结构化财务顾问,能够进行逐步推理、动作执行和内存保留。它们使用 LangGraph 的React代理框架构建,遵循以下循环:
查询原因
采取行动,例如使用工具
观察结果
继续迭代,直到获得最终响应
代理行为是通过存储在MongoDB中的可自定义代理配置文件定义的,而长期内存和状态持久性是使用MongoDB检查点托管的,该检查点跟踪交互步骤,并将它们存储到集合中:checkpoints_aio
和 checkpoint_writes_aio
。
要复制此微服务,请参阅其Github存储库:市场助手React代理聊天机器人服务和/或加密助手React代理聊天机器人服务
如上图所示,代理是由 LLM 提供支持、工具增强的工作流程,使用 LangGraph 进行编排。每个过程都遵循结构化、确定性的进程,按固定顺序调用工具,确保可靠且可解释的执行。
代理工具
工具使代理能力检索数据、调用 API、运行代码、查询数据库或触发业务逻辑,将其从被动响应者转变为主动问题解决者。 在此解决方案中,可分为以下几类:
check_portfolio_allocation_tool
:从MongoDB集合中检索投资组合分配数据。
assess_macro_indicators_tool
:从 FRED API数据中检索宏观经济指标。
assess_vix_tool
:从金融数据集中检索 VIX 市场波动率数据。
fetch_market_news_tool
:使用嵌入对财经新闻文章执行向量搜索。
fetch_social_media_submissions_tool
:使用嵌入对 Reddit 提交内容执行向量搜索。
calculate_crypto_trends_tool
:聚合加密货币价格数据以计算移动平均值和趋势。
calculate_asset_trends_tool
:汇总传统资产价格数据以进行趋势分析。
calculate_crypto_momentum_indicators_tool
:聚合加密数据以计算 RSI、交易量模式和 VWAP。
calculate_news_sentiment_tool
:按资产聚合新闻文章的情绪分数。
calculate_social_media_sentiment_tool
:按资产聚合社交媒体提交的情绪分数。
generate_news_sentiment_summary_tool
:聚合新闻情绪数据并生成由 LLM 提供支持的摘要。
generate_social_media_sentiment_summary_tool
:聚合社交媒体情绪数据并生成由 LLM 提供支持的摘要。
generate_overall_diagnosis_tool
:汇总所有分析结果与风险概况,以进行最终的投资组合诊断。
generate_overall_diagnosis_tool
(加密货币版本):聚合加密货币分析结果,以进行全面的投资组合诊断。
4。MCP Server 和MongoDB交互
该解决方案的最后功能结合了MongoDB MCP Server 和AI支持的React Agent,可以对存储在MongoDB Atlas中的财务数据进行实时自然语言查询。
通过将 MCP 服务器和MongoDB相结合,您可以通过自然语言探索数据、执行数据库管理任务以及生成上下文感知代码。
图 5。MongoDB MCP Server 交互架构
如图所示,该解决方案连接到金融时间序列数据:
Cryptocurrencies: BTC, ETH, XRP, SOL, DOGE, ADA
Stocks/ETFs: HYG, LQD, TLT, GLD, USO, EEM, QQQ, SPY, XLE, VNQ
集合:binanceCryptoData(加密货币)、yfinanceMarketData(传统货币)
在此演示中, MongoDB MCP 服务器启用带有 Next.js应用的开发者工具,该应用支持客户端和MongoDB Atlas集合之间的交互,以执行以下任务:
数据库浏览:列出数据库中的集合。
最新价格和价格趋势:获取任何支持资产的当前价格或显示一段时间内的每日平均价格。
交易量分析:计算平均交易量。
价格比较:比较不同资产之间的价格。
要复制此微服务,请参阅其Github存储库:投资组合管理 - MCP 交互
要学习;了解有关MongoDB MCP Server 的更多信息,请参阅MongoDB MCP Server 公告以更深入地了解MongoDB MCP Server。
注意
出于安全考虑,此演示以只读模式运行。虽然 MCP 支持 create
、update
和 delete
操作,但我们有意限制仅访问权限list
、find
和 aggregate
操作。这样可以防止对数据库进行任何意外更改,并确保演示环境的安全。
为什么选择 MongoDB?
代理AI投资组合经理需要一个支持实时决策、自适应推理和持久内存的数据平台。以下部分介绍MongoDB如何提供支持智能、合规和自主的财务代理所需的统一架构和原生AI集成。
AI 驱动金融应用程序的现代数据基础
MongoDB 是一个统一的高性能数据平台,专为复杂的金融服务而搭建。它用能够处理结构化、时间序列、非结构化和向量化数据的单一系统取代了分散的点解决方案,因而成为在资本市场、财富管理及其他领域构建智能化、自适应应用程序的理想选择。
模式灵活性和文档模型
MongoDB 类似 JSON 的 BSON 模型与代理状态和面向对象设计自然契合,简化了账户、投资组合、交易以及 AI 元数据的数据建模过程。开发者可以:
得益于动态模式,可以在无需破坏性迁移的情况下演进数据模型。
将用户配置文件和交易历史等相关数据存储在一起,以便更快、更高效地进行查询。
以统一的结构处理不同的数据类型,例如数组和嵌入式文档。
市场和加密货币数据的时间序列集合
时间序列集合可有效摄取和分析大量市场数据。功能包括:
股票、债券、加密货币和大宗商品的高吞吐量摄取。
自动压缩、索引和数据过期,以控制性能和成本。
原生支持窗口分析,例如移动平均和波动率跟踪。
Atlas Vector Search 用于语义理解
MongoDB Atlas Vector Search 使用向量嵌入来实现跨金融内容的语义理解。此解决方案利用了 voyage-finance-2
。该模型支持以下功能:
使用交互式提示和基于相似性的匹配,对财经新闻和社交媒体帖子进行上下文感知检索。
通过元数据过滤增强语义相似性搜索,以获得更精确的结果。
用于代理内存的 MongoDB 检查点程序
Checkpointer 模式允许 AI 代理在交互过程中持久化其内部状态,支持:
上下文保留与长期推理。
对过去 AI 的决策实现全面可视化,支持轻松审计并确保符合监管合规要求。
用于生成见解的聚合管道和 Atlas Charts
MongoDB 的聚合框架提供实时洞察,从趋势分析到宏观经济相关性。结合 Atlas Charts,团队可以构建动态仪表盘,呈现以下内容:
AI 驱动的投资组合信号
市场异常
实时性能指标
MongoDB MCP 服务器
MCP 集成允许AI代理和工具使用自然语言直接与MongoDB中的财务数据交互。MCP 服务器简化了这种交互,从而实现轻松的数据探索、简化的投资组合数据库管理以及为金融应用程序生成上下文感知代码。这加速了AI的应用,以做出更智能、更快速、更明智的投资决策。
这些功能共同使MongoDB成为AI驱动的金融解决方案的强大数据层,从而支持现代金融的需求。
关键要点
AI驱动的投资组合解决方案将洞察力提升到了前所未有的水平:投资组合经理现在配备了强大的AI助手,可以分析市场数据、市场新闻和市场事件,并实时提出有关投资组合资产和风险的富有洞察力和可操作性的建议。
MongoDB支持用于投资组合管理的Agentic AI解决方案:MongoDB 灵活的文档模型原生存储非结构化和动态市场数据,包括新闻、事件和社交媒体数据。MongoDB Vector Search 检索上下文市场的相似性和相关性,同时与嵌入和生成式AI模型无缝集成。
AI助手是一种快速发展的范例,用于驱动决策:AI助手不断适应,根据实时市场条件和市场波动调整其行动和策略。AI助手会从过去的经验中学习;了解,并随着时间的推移改进其性能。
作者
Peyman Parsi
Ainhoa Múgica
Julian Boronat
Andrea Alaman Calderon