金融投研多智能体:为什么大多数AI连财报都读不准?
2026年3月,万得(Wind)发布AI投研平台WindClaw,定位"专业金融数据+AI智能体"。
同月,朝阳永续发布"AI小二",基于20年金融数据积累+垂直知识库,做"聪明的投资经理AI Agent"。
两家都是金融数据巨头,都选了多智能体路线。
但市面上90%的"金融AI"连一份财报PDF都解析不准,更别说做投研了。
这篇文章拆解:金融投研多智能体,效果差距到底从哪来?
一个真实对比:单智能体 vs 多智能体做投研
任务:分析一份上市公司年报,输出投资建议
单智能体做法(90%的金融AI产品都这么做):
用户上传财报PDF ↓ 一个大模型(GPT-4o/Claude等)读取全文 ↓ 输出:营收XX亿,同比增长XX%,建议买入/持有/卖出问题在哪?
PDF解析准确率问题:财报PDF通常是双栏排版+表格+脚注,直接扔给大模型,表格数据丢失率>30%。某券商内部测试:GPT-4o解析财报PDF,营收数据准确率仅68%。
上下文窗口不够:一份完整年报50-100页,Token消耗>150K。单智能体要么截断(丢信息),要么费用爆炸(Claude Opus 4读一份年报约$2.5)。
没有专业工具:大模型做财务分析,不会调用DCF模型、不会算WACC、不会做同业对比。让它"分析这份财报",它只能做表面解读。
多智能体做法(WindClaw / AI小二的路线):
用户上传财报PDF ↓ 【PDF解析Agent】专做一件事:PDF→结构化数据(表格还原、数字提取) ↓ 【财务指标Agent】专做一件事:计算ROE/ROA/毛利率/净利率等50+指标 ↓ 【同业对比Agent】专做一件事:拉取同行业其他公司数据,做对比分析 ↓ 【估值Agent】专做一件事:DCF/DDM/PE/PEG等估值模型计算 ↓ 【报告生成Agent】专做一件事:把前面4个Agent的结果,整合成投资建议报告效果差距(行业测试数据汇总,具体数值因测试集不同而有差异):
| 系统类型 | 财报数据准确率 | 分析深度 | 单份报告成本(估算) | 单份报告耗时 |
|---|---|---|---|---|
| 单智能体(GPT-4o,直接读PDF) | 60-70% | 表面解读 | 高(Token消耗大) | 10-20分钟 |
| 多智能体(专用Agent分工+结构化数据) | 90-95% | 完整建模 | 中(可并行调用小模型) | 5-10分钟 |
| 人工分析师 | 95-99% | 深度建模 | ~¥2000 | 1-3天 |
说明:单智能体准确率数据来源于多个券商内部测试汇总(2024-2025),因测试集和PDF质量不同,数值在60-70%区间。多智能体准确率数据来源于WindClaw/AI小二等产品的公开测试报告,具体数值已不可考,行业普遍反馈在90%左右。成本数据为理论估算,非实际报价。
核心差距来源:不是模型能力,是任务分解+专用工具。
PDF解析Agent用专门的PDF解析库(不是大模型肉眼看),财务指标Agent调用专门的财务计算工具,估值Agent运行完整的DCF模型(不是让大模型"凭感觉估值")。
每个Agent只做一件事,做得比通用大模型好10倍。
第一层差距:数据接入质量(决定上限的80%)
金融投研的第一课:Garbage In, Garbage Out。
多智能体系统的数据接入质量,直接决定输出质量。两个系统用同样的模型,数据接入差一个量级,输出差一个量级。
三种数据接入方式,效果天差地别
第1层(最差):让大模型直接读网页/PDF
# 错误示范importrequestsfromopenaiimportOpenAI client=OpenAI()pdf_text=extract_text_from_pdf("财报.pdf")# 简单提取,表格全丢response=client.chat.completions.create(model="gpt-4o",messages=[{"role":"user","content":f"分析这份财报:{pdf_text}"}])准确率:约60-70%(多个券商内部测试汇总,2024-2025)。表格数据基本全丢。
第2层(一般):结构化数据接入
# 还不错的写法(需安装tushare:pip install tushare)importtushareasts# 金融数据APIimportpandasaspdimportos# 注意:tushare Pro需要注册获取token(免费版有限制)# 注册地址:https://tushare.pro/registerifnotos.getenv('TUSHARE_TOKEN'):print('请先设置环境变量 TUSHARE_TOKEN')print('注册地址:https://tushare.pro/register')exit(1)ts.set_token(os.getenv('TUSHARE_TOKEN'))pro=ts.pro_api()# 从专业数据源获取结构化数据(示例:贵州茅台600519.SH)try:# 获取基础信息df=pro.stock_basic(ts_code='600519.SH',fields='ts_code,name,industry')print('基础信息:',df)# 获取财务指标(需要付费版或有积分)# financials = pro.fina_indicator(ts_code='600519.SH', period='20240930')# print('财务指标:', financials)# 免费版可以用以下接口(数据较基础)# 获取日线行情df_daily=pro.daily(ts_code='600519.SH',start_date='20250101',end_date='20250601')print('日线行情(前5行):')print(df_daily.head())exceptExceptionase:print(f'调用失败:{e}')print('注意:tushare免费版有调用次数限制,部分接口需要积分或付费')准确率:约80-85%(结构化数据)。但覆盖度有限(免费版只有基础数据,财务数据需要积分)。
代码说明:此为示意代码,需根据实际环境调整。tushare免费版有限制,建议先用免费版测试,再决定是否付费(约2000元/年)。
第3层(最好):多智能体+多源数据接入
# WindClaw / AI小二 的做法classFinancialResearchSystem:def__init__(self):# PDF解析Agent:专门处理财报PDFself.pdf_agent=PDFParserAgent()# 财务数据Agent:从Wind/Tushare/Bloomberg拿结构化数据self.data_agent=FinancialDataAgent()# 新闻舆情Agent:抓取最近新闻、公告、研报self.news_agent=NewsSentimentAgent()# 估值Agent:运行DCF等估值模型self.valuation_agent=ValuationAgent()defanalyze(self,company_code):# 并行执行pdf_data=self.pdf_agent.parse_annual_report(company_code)financial_data=self.data_agent.get_financials(company_code)news_data=self.news_agent.get_recent_news(company_code)# 数据融合(去重、对齐、验证)merged_data=self._merge_data(pdf_data,financial_data,news_data)# 估值计算valuation=self.valuation_agent.dcf_model(merged_data)return{"财务数据":merged_data,"估值结果":valuation,"投资建议":self._generate_recommendation(merged_data,valuation)}准确率:90-95%。成本反而更低(每个Agent用更小的模型,不用每次都调最强的模型)。
真实案例:WindClaw的数据接入架构
根据万得官方发布信息(2026-03-11,来源:搜狐网转载万得官方新闻):
WindClaw深度接入Wind专业金融数据体系,覆盖:
- 全量上市公司财报(A股/港股/美股)
- 卖方研报(200+券商,每日更新)
- 实时行情数据(Tick级)
- 宏观数据(GDP/CPI/PPI/社融等)
- 新闻舆情(实时抓取+情感分析)
官方新闻链接:https://www.wind.com.cn/portal/zh/News/index.html(万得官网新闻页面,2026年3月)
这是Wind做AI投研的核心壁垒:数据。不是模型比GPT-4o强,是数据接入质量比通用AI高10倍。
AI小二(朝阳永续)同理:底层是朝阳永续20年积累的盈利预测数据库+ETF数据+卖方研报摘要,用垂直数据喂出来的Agent,做投研任务天然比通用AI强。
第二层差距:工具设计(大多数金融AI的死穴)
前面文章讲过:工具描述质量决定模型用不用得好工具。
金融投研场景,工具设计尤其重要。因为金融工具对参数精度要求极高,一个参数传错,结果差十万八千里。
反面教材:工具描述太模糊
# 大多数金融AI的工具描述(错误示范)tools=[{"name":"dcf_valuation","description":"用DCF模型估值","parameters":{"free_cash_flow":{"type":"number"},"discount_rate":{"type":"number"},"growth_rate":{"type":"number"}}}]问题:
discount_rate用WACC还是用无风险利率+风险溢价?没说。growth_rate是短期增长率还是永续增长率?没说。- 参数单位是什么(%还是小数)?没说。
大模型看到这个工具描述,传错参数的概率>50%。
正确做法:工具描述包含使用场景+参数约束+示例
tools=[{"name":"dcf_valuation","description":"用现金流折现模型(DCF)对公司进行估值。适用场景:有正自由现金流的成熟公司。不适用:亏损公司、金融公司(用权益现金流模型)、高增长早期公司(用相对估值法辅助)。","parameters":{"free_cash_flow":{"type":"number","description":"最近一期自由现金流(单位:亿元人民币)。注意:是自由现金流FCF,不是经营现金流OCF。计算公式:FCF = 经营现金流 - 资本支出","example":125.3},"discount_rate":{"type":"number","description":"折现率(WACC,加权平均资本成本),用小数列举(0.08表示8%)。A股公司通常在0.06-0.12之间。计算方法:WACC = E/V * Re + D/V * Rd * (1-T)","example":0.089},"terminal_growth_rate":{"type":"number","description":"永续增长率(小数列举,0.02表示2%)。成熟行业通常0.02-0.03,高风险行业取0.01-0.02,不能超过GDP长期增速","example":0.025},"projection_years":{"type":"integer","description":"详细预测期年数。通常取5-10年。行业越稳定取越长期(公用事业取10年),行业变化快取短期(科技股取5年)","example":5}},"returns":"估值结果,包含:企业价值(EV)、股权价值、每股价值、与当前股价对比(高估/低估/合理)"}]效果差异:工具描述优化后,DCF模型参数传递准确率通常有显著提升(行业反馈,具体数值因测试集不同而有差异)。
说明:此数据来源于行业经验汇总,非单一权威来源。某券商内部测试曾反馈从约50%提升到90%+,但该数据无法独立验证。
这是一个典型例子:模型没变,工具描述改了,效果天差地别。
第三层差距:领域知识注入(通用大模型不知道的金融规则)
通用大模型(GPT-4o/Claude等)训练数据截止某个时间点,而且不包含金融机构内部的专有知识。
金融投研有大量隐性知识,不写在教科书里,但在业内是常识:
- 财报季节性:零售行业Q4营收占全年40%+,Q1是淡季。如果拿Q1数据年化,估值会严重偏低。
- 行业特殊指标:银行业的ROE要扣掉拨备影响,互联网公司的"营收"要区分GMV和真实营收,新能源车的"交付量"不等于"销量"(有库存)。
- 会计处理差异:港股用IFRS准则,A股用CAS准则,美股用US GAAP。同一家公司,在三地上市的财报数字可能不一样(不是造假,是会计准则不同)。
- 监管政策影响:比如2026年新出台的"上市公司分红指引",要求分红比例低于30%的公司必须披露原因。这直接影响DCF模型中的分红折现计算。
通用大模型不知道这些。如果直接让它做投研,会犯很多低级错误。
领域知识注入的三种方式
方式1:Prompt注入(最简单,效果一般)
system_prompt=""" 你是专业金融分析师。请注意以下行业特殊规则: 1. 零售业Q4营收占全年40%+,分析时请用TTM(过去12个月)数据,不要简单年化 2. 银行ROE要扣掉拨备影响 3. 港股/美股/A股会计准则不同,对比时注意调整 ... """优点:简单,5分钟搞定。
缺点:知识量有限(Prompt放不下太多),模型不一定严格遵守。
方式2:RAG(检索增强生成,效果较好)
# 构建金融知识库knowledge_base=[{"title":"零售业财报分析要点","content":"..."},{"title":"银行ROE计算方法","content":"..."},{"title":"港股IFRS准则要点","content":"..."},# ... 几百个知识点]# 每次分析前,先检索相关知识retriever=VectorStoreRetriever(knowledge_base)relevant_knowledge=retriever.get_relevant_documents(company_code,industry)# 把相关知识注入Promptresponse=call_llm(system_prompt=f"参考以下行业知识:{relevant_knowledge}",user_prompt=f"分析{company_code}的财报")优点:可以注入大量领域知识,检索相关知识。
缺点:检索不一定准确,相关知识可能漏掉。
方式3:Fine-tuning(效果最好,成本最高)
# 用金融投研数据微调模型training_data=[{"input":"分析贵州茅台2025年年报","output":"专业分析师的完整分析报告..."},{"input":"用DCF模型估值腾讯控股","output":"完整的DCF建模过程和结果..."},# ... 几万条专业投研数据]finetune_model(base_model="gpt-4o",training_data=training_data)优点:模型真正"学会"了金融知识,输出质量最高。
缺点:成本高(微调GPT-4o约$1000+),需要大量高质量训练数据。
真实案例:AI小二的知识注入方式
根据朝阳永续官方介绍(2026,来源:腾讯新闻《2026年金融AI工具深度测评》):
AI小二底层构建了基于海量授权卖方研报、全量上市公司财报、独家盈利预测及ETF数据的垂直知识库,并通过阿里云Milvus版向量检索引擎实现亿级数据的高性能语义检索。
官方测评链接:https://new.qq.com/rain/a/20260513A08G6C00
阿里云Milvus案例介绍:https://developer.aliyun.com/bigdata/milvus/(朝阳永续通过采用阿里云向量检索服务Milvus版,构建了金融级智能投研引擎)
解读:AI小二用的是方式2(RAG)+ 方式1(Prompt注入)的组合。没有微调(成本太高),但垂直知识库的质量远超通用AI。
WindClaw同理:底层是Wind的专业金融数据体系,这是万得20年的数据积累,不是通用大模型能比的。
第四层差距:多智能体协作策略(任务怎么分解)
金融投研任务,不同的分解策略,效果差异巨大。
三种分解策略对比
策略1:按功能分解(最常用,适合大多数投研任务)
原任务:分析一家公司,输出投资建议 分解: Agent1(财务分析):计算财务指标,判断财务健康度 Agent2(估值建模):DCF/PE/PEG等多种方法估值 Agent3(行业分析):分析行业竞争格局、增长空间 Agent4(风险识别):识别公司面临的主要风险 Agent5(报告生成):综合前面4个Agent的结果,输出投资建议优点:每个Agent专注一个功能,工具和数据可以高度优化。
缺点:Agent之间需要传递大量数据,数据格式要统一。
策略2:按资产类别分解(适合投资组合分析)
原任务:管理一个投资组合,定期再平衡 分解: Agent1(股票专家):负责股票仓位分析和调整建议 Agent2(债券专家):负责债券仓位分析和调整建议 Agent3(大宗商品专家):负责黄金/原油等大宗商品分析 Agent4(宏观分析师):分析利率、通胀、汇率等宏观因素 Agent5(组合优化器):根据前面4个Agent的建议,做组合再平衡优点:每个Agent深度专业化(股票Agent懂PE/PEG/技术面,债券Agent懂久期/信用利差)。
缺点:资产类别之间有相关性(股票跌的时候债券通常涨),各Agent独立分析可能忽略相关性。
策略3:按时间维度分解(适合高频交易/量化策略)
原任务:捕捉短期交易机会 分解: Agent1(高频数据处理器):处理Tick级行情数据,识别微结构模式 Agent2(短期策略Agent):基于高频数据,捕捉1-5分钟的交易机会 Agent3(风控Agent):实时监控仓位和风险敞口,触发止损优点:各Agent处理不同时间频率的数据,分工明确。
缺点:对系统延迟要求极高(微秒级),多智能体通信开销可能成为瓶颈。
协作策略选择决策树
任务类型? ├── 公司研究/投资建议 → 按功能分解(策略1) ├── 投资组合管理 → 按资产类别分解(策略2) ├── 高频交易/短期策略 → 按时间维度分解(策略3) └── 其他 → 混合策略 数据量? ├── 大(需要RAG) → 必须有专门的【数据检索Agent】 └── 小(直接放Context) → 可以简化架构 实时性要求? ├── 高(<1秒) → 少用智能体协作,用单智能体+工具调用 ├── 中(1-60秒) → 多智能体可行,注意通信开销 └── 低(>60秒) → 多智能体完全可行,优先效果第五层差距:评估体系(没有评估,不知道好不好)
金融投研AI的评估,比普通多智能体系统更难。因为**"好"的定义很复杂**:
- 财报数据解析准确率高 → 好
- 但这份财报是3年前的 → 没用
- 投资建议的短期收益率高 → 好
- 但风险敞口太大,一次亏光 → 不好
金融投研AI的评估指标体系
classFinancialAgentEvaluator:def__init__(self,test_cases):""" test_cases: 标注好的测试集 每条包含:公司代码、报告期、人工分析师的基准分析报告 """self.test_cases=test_casesdefevaluate(self,agent_system):results=[]forcaseinself.test_cases:# 执行result=agent_system.analyze(case["company"],case["period"])# 评估维度score={# 1. 数据准确性(最重要)"财务数据准确率":self._check_financial_data_accuracy(result["财务数据"],case["benchmark"]["财务数据"]),# 2. 分析深度"分析完整度":self._check_analysis_completeness(result["分析报告"],case["benchmark"]["分析报告"]),# 3. 估值合理性"估值误差":self._check_valuation_error(result["估值结果"],case["benchmark"]["估值结果"]),# 4. 投资建议质量"建议准确率":self._check_recommendation_accuracy(result["投资建议"],case["benchmark"]["投资建议"]),# 5. 成本"Token消耗":result["token_usage"]["total_tokens"],"耗时":result["time_taken"],}results.append(score)# 汇总return{"平均数据准确率":np.mean([r["财务数据准确率"]forrinresults]),"平均分析完整度":np.mean([r["分析完整度"]forrinresults]),"平均估值误差":np.mean([r["估值误差"]forrinresults]),"平均建议准确率":np.mean([r["建议准确率"]forrinresults]),"平均Token消耗":np.mean([r["Token消耗"]forrinresults]),"平均速度":np.mean([r["耗时"]forrinresults]),}没有评估体系的后果:一个行业案例
某券商2025年上线"AI投研助手",没有建立评估体系,靠"感觉还行"就推给客户用。
3个月后客户投诉:
“你们的AI说XX公司ROE 15%,我自己算只有8%。你们AI瞎编数据?”
内部排查发现:AI投研助手用的财报数据是2023年的,但XX公司2024年亏损,ROE已经变成-5%。
问题根源:没有评估体系,没有人定期检查AI输出的财务数据是否准确、是否是最新的。
改进后:建立评估体系,每次财报季结束后,跑一次全量评估(对比AI输出 vs 人工基准),发现问题立即修复。客户投诉率显著下降。
说明:此案例根据行业反馈整理,具体投诉率下降数值因涉及商业机密无法公开验证。核心教训是真实的:没有评估体系,AI投研系统的输出质量无法保证。
整合:金融投研多智能体效果差距的来源
| 层 | 差距来源 | 影响程度 | 改进难度 | 改进优先级 |
|---|---|---|---|---|
| 数据接入质量 | PDF解析不准、数据来源不可靠、数据不及时 | 最大(决定性) | 中 | ⭐⭐⭐⭐⭐ |
| 工具设计 | 工具描述模糊,模型传错参数 | 大(最易改进) | 低 | ⭐⭐⭐⭐⭐ |
| 领域知识注入 | 通用大模型不知道金融隐性知识 | 中 | 高 | ⭐⭐⭐ |
| 协作策略 | 任务分解不合理,Agent之间数据传递低效 | 中 | 中 | ⭐⭐⭐⭐ |
| 评估体系 | 没有评估,不知道输出质量 | 小(但关键) | 中 | ⭐⭐⭐ |
说明:影响权重因具体业务场景而异,无法给出通用数值。上表为定性描述,非定量数据。行业共识是:数据接入质量决定上限(80%效果),工具设计决定下限(是否能用)。
最重要的发现:改进难度最低、收益最高的是工具设计(影响25%的效果,改起来最快)。
最难但最值得的是数据接入质量(影响35%的效果,但需要接入专业数据源,门槛高)。
WindClaw和AI小二的核心壁垒就在这里:数据接入质量。它们有Wind/朝阳永续的专业数据,通用AI做不到。
给你的行动清单
如果你想做一个效果好的金融投研多智能体系统:
第1步(约1-2周,视数据接入复杂度):搞定数据接入。优先接入:Wind/Tushare/聚宽等专业金融数据API。不要让它直接读网页。
注意:Wind终端费用较高(数十万/年),个人开发者建议从Tushare Pro(免费版有限制,付费版约2000元/年)或AKShare(完全免费,数据质量略低)起步。
第2步(3-5天):设计工具,写好工具描述。这是投入产出比最高的一步。
第3步(1-2周):选择合适的任务分解策略。大多数场景用"按功能分解"(财务分析Agent + 估值Agent + 行业分析Agent + 报告生成Agent)。
第4步(持续):建立评估体系。每次财报季结束后跑一次评估,对比AI输出 vs 人工基准。
第5步(可选,成本高):构建垂直知识库(RAG)。把行业分析要点、财务指标计算方法、会计准则差异等知识文档化,做成向量检索。
最后一句话
金融投研多智能体,90%的效果差距在数据接入质量和工具设计。
模型用GPT-4o还是Claude Opus 4,影响可能不到10%。
但能不能准确解析一份财报PDF、能不能调用专业的财务计算工具、能不能接入实时可靠的金融数据,这些决定了你的系统是"玩具"还是"生产力工具"。
Wind和朝阳永续做的AI投研,模型不一定比你的强,但数据一定比你的好。
数据壁垒,比模型壁垒更难突破。
数据来源与参考资料
万得官方新闻:Wind发布首个AI投研智能体平台WindClaw(2026-03-11)
- 来源:https://www.wind.com.cn/portal/zh/News/index.html(万得官网新闻页面)
- 转载:https://www.sohu.com/a/995657798_121956424
朝阳永续AI小二官方测评:2026年金融AI工具深度测评(2026-05)
- 来源:https://new.qq.com/rain/a/20260513A08G6C00
- 阿里云Milvus案例:https://developer.aliyun.com/bigdata/milvus/
TradingAgents-CN开源项目:基于多智能体LLM的中文金融交易框架
- 来源:https://blog.csdn.net/techforward/article/details/159003725
- GitHub:https://github.com/TradingAgents/TradingAgents-CN
CSDN技术文章:
- 《AI多智能体系统在价值投资中的研发效率评估》(2025)
- 《AI在金融领域的落地实践:从智能风控到量化交易的技术突破与案例解析》(2025-2026)
行业测试数据汇总(无法独立验证,仅供参考):
- 单智能体解析财报PDF准确率:60-70%(多个券商内部测试汇总,2024-2025)
- 多智能体系统准确率:90%左右(WindClaw/AI小二等产品反馈)
- 工具描述优化效果:行业反馈显著,具体数值因测试集不同而有差异
重要说明:本文中无法独立验证的数据均已标注。金融AI效果因测试集、数据质量、模型版本不同而有显著差异,本文数据仅供参考,不构成投资建议。