
这两年AI投研系统这个词在圈子里被反复提起几乎每个买方团队、独立研究员甚至做自媒体的人都在尝试搭一套。我自己的实验从2023年开始从最初拿大模型读公告到后来用RAG做知识库再到用Agent编排多个模型协作中间推翻了三版设计才慢慢摸清什么才算“有效”。这篇文章就是一次杂记式复盘重点不是告诉你哪个模型最强而是把设计系统时真正绕不开的架构、数据、Agent协作、评估闭环和踩坑经验摆出来给正在做或准备做AI投研系统的朋友一个参考。1. 设计之前先把“有效”两个字定义清楚1.1 投研系统到底要解决什么问题很多人一上来就问我AI投研系统是不是能自动选出牛股我通常会泼一盆冷水。投研这件事的本质不是“预测”而是“把不确定性压缩到可决策的范围”。研究员每天要做的事情非常固定收集信息、理解信息、判断信息、形成观点。这四步里真正消耗精力的不是“思考”本身而是信息收集和信息整理。市场上有几千份公告、几百页财报、大量新闻和社交媒体噪音人的注意力是有限的。AI投研系统能解决的核心问题是把“信息差”变成“信息优势”。它帮你更快读完信息、更全地梳理逻辑、更早发现遗漏而不是替你做最终拍板。比如同样看一份季报传统流程里你需要手动翻主营业务变动、现金流、负债结构、同行对比至少要半天有了结构化的AI系统这些数据可以在一分钟内被抽取出来并且自动标出同比和环比变化人的时间就能留给更重要的判断环节。所以设计系统前你得先承认一个前提这套系统是给研究员用的辅助工具不是独立决策机器。想清楚这一点之后的所有架构选择都会顺很多。1.2 “有效”的三个可量化标准我见过不少团队把“能用ChatGPT聊财报”当成系统跑通了实际上那只是demo。真正有效的投研系统要有可量化的验证方式我自己一般用三个标准来衡量衡量维度具体定义实操观测方式结论准确率系统生成的判断与后续事实的吻合度用历史样本回测统计判断方向命中率信息覆盖率关键数据是否被完整抽取和检索到人工抽检热门标的核对关键字段缺失率结论可解释性每条结论能否追溯到原文证据统计结论带引用来源的比例和回溯耗时这里我特别想强调第三点投研领域不缺少结论缺少的是“凭什么这么判断”。如果系统给出一句“该公司利润率下滑风险较大”却没有标明这个结论来自哪个报表区间、哪个分项数据研究员根本不敢用。所以我在设计系统时把可解释性放在了准确率前面每个输出必须带证据路径否则视为无效输出。1.3 分清伪需求与真需求做系统最忌讳的是需求发散。伪需求典型有这么几个全自动无人值守的交易系统、能直接生成买入评级的神奇AI、把所有研究报告压缩成一句话的“一键结论”。这些需求听起来很美但要么技术不成熟要么在投资场景里根本不可用。真正的高价值需求反而是窄而深的比如“自动完成每日晨会对持仓公司公告的异动解读”“从一份招股书里抽取出全部风险因素并分类”“分析同一行业内多家公司财务指标的异常点”。这些场景边界清晰、数据相对结构化、评估标准明确系统做出来也更容易被研究员接受。我自己的原则是一次只做一个决策环节。先把“公告解读”做成90分再考虑“财务分析”“另类数据”和“多空观点对比”而不是第一天就想做一个覆盖全市场的巨型系统。2. 架构设计AI在投研链路里的分工2.1 数据层没有干净数据再强的大模型也白搭投研系统的地基是数据不是模型。我见过很多团队把大量预算花在微调模型上却对数据管道毫不在意结果模型再强也读不懂格式混乱的PDF。实际项目中数据层至少要处理四类信息公告与财报、新闻与舆情、宏观与行业数据、另类数据比如卫星图、专利、供应链。每一类数据的清洗逻辑都不同。公告和财报需要处理PDF扫描件的OCR、表格识别、跨页合并新闻需要去重、去广告、标注发布时间宏观数据需要统一频率和单位。我建议在数据入库存时做一个标准化字段模板至少包含公司主体ID、事件类型、公告日期、报告期、来源链接、原文摘要。有了这层标准字段后面做RAG检索和Agent调用才能高效。这里有一个容易被忽略的坑公司实体归一化。同一个公司在公告里可能叫“XX集团”在新闻里叫“XX股份”在社交媒体上叫“XX”。如果不做实体映射检索时会出现严重漏检。我的处理方式是维护一份公司别名表配合正则规则和少量人工标注在入库时把文本中的实体统一映射到标准股票代码。2.2 知识库与RAG检索把大模型从“记忆”变成“工具”大模型的问题在于它的训练数据有截止时间而且不具备真正的长期记忆所以投研系统必须引入外部知识库。RAG检索增强生成是目前最主流的做法先把大量研报、公告、财报切块向量化用户提问时在知识库里检索相关内容再让大模型基于检索结果生成回答。做RAG不是简单地装一个向量数据库就行关键在于切块方式和元数据设计。我试过把整份财报切成一个大块丢进去结果检索精度惨不忍睹后来改成按章节切块比如把“经营情况讨论与分析”“财务数据”“风险提示”分别切成一个块每个块附上公司代码、报告期、章节名等元数据召回质量立刻提升。切块大小我通常控制在500到800个token重叠50到100个token既要保证语义完整又要避免块过大引入噪音。检索时不要只用向量相似度建议做混合检索向量召回处理语义相似的表达关键词召回处理公司名、财务术语等精确匹配。召回结果再经过重排序模型把与问题最相关的三到五篇文章送到大模型。这一步对效果的影响比换一个更大的模型更明显。2.3 Agent编排让多个模型协作而不是单模型包打天下现在的AI投研系统早就过了“一个对话框回答所有问题”的阶段更实用的方式是让多个Agent分工协作。我的典型配置是信息收集Agent、财务数据提取Agent、逻辑验证Agent、风险提示Agent、报告生成Agent。信息收集Agent负责从数据层抓取相关内容财务Agent负责从财报中提取关键指标逻辑验证Agent负责检查观点与数据是否矛盾风险Agent专门找利空因素最后由生成Agent汇总成结构化笔记。每个Agent本质上是一组提示词、工具调用权限和输出格式的组合。它们之间通过一个简单的编排逻辑串联而不是所有Agent自由对话否则系统会变得不可控。我更推荐流水线式编排上游Agent的输出成为下游Agent的输入每个节点都有独立的验证与重试机制。比如信息收集Agent没搜到数据就重试一次检索财务Agent提取的营收数字与数据库原始数字对不上就触发校验并重新提取。2.4 决策输出与留痕让研究员能审查每一步投研系统不只要给出结论还要给出一整条可以被审查的推理链。我的做法是每一步Agent输出都保留原始输入、调用参数、中间结果和最终输出最终报告里所有关键论断都带引用来源编号。研究员看到一条结论可以直接点击跳转到对应的公告段落或财务数据这种“可回退”的能力才是投研系统能被信任的基础。为了让留痕不流于形式我会在系统里增加一个“置信度”标记。比如财务数据提取要求高置信度只有能从原始报表中找到精确数字才算完成舆情情绪判断则允许中低置信度因为文本情绪本身有主观性。不同置信度对应不同的人工复核策略系统不会把所有输出都当成同等可靠。3. 实操搭一套能用的AI投研原型3.1 先确定最小闭环我不建议一上来就做全局系统而是选一个具体场景跑通闭环。最容易出效果且数据相对完善的场景是“个股财报深度解读”。流程大致是输入公司代码和报告期系统自动拉取公告和财报切块入库调用Agent提取关键财务指标和管理层讨论生成结构化报告最后研究员人工复核并标记错误。这个闭环涉及数据接入、检索、Agent编排、输出留痕和人工反馈做好了就能横向复制到其他场景。3.2 数据准备与检索系统搭建以A股某上市公司2024年年报为例实操步骤可以这样拆把PDF年报转成文本或半结构化数据表格尽可能用库表方式保存不要全部转成纯文本否则财务数字会乱。清洗文本去掉页眉页脚、目录、重复信息把“一”“1.”等编号统一。按章节切块并写入元数据股票代码、公告日期、报告期、章节名、公司简称。用嵌入模型生成向量我实测下来中长文本用现成的中文嵌入模型足够不需要自己微调。建立向量索引同时保留一份全文关键词索引用于混合检索。接入重排序模型把候选块从20个压缩到5个以内。这套流程本身不复杂但数据清洗量很大。如果是历史数据回补建议先做最近五年的年报和季报新闻数据再往后补免得一开始就把Pipeline撑爆。3.3 提示词与Agent脚本怎么设计Agent的本质是“会使用工具的提示词任务”。我给财报提取Agent设置的系统提示词一般包含四段工作目标、输入格式、输出格式、禁区。下面是一个简化的示意你是一名严谨的财务分析助手。你的任务是从给定的财报片段中提取 - 营业收入、净利润、扣非净利润、经营性现金流、资产负债率 - 同比/环比变化 - 管理层对经营变化的解释 只允许提取片段中出现的数字如果片段没有对应数据请标注“未提及”。 输出格式 指标名称数值单位变化幅度原文位置。 禁止用任何方式补充你记忆中但不属于本次输入的数据。这一段提示词看起来简单但真正控制输出质量的是“只允许提取片段中出现的数据”“没有就标未提及”这两个约束。投研场景最怕模型脑补宁可缺失也不能伪造。我也建议把温度参数调低通常0.1到0.3之间尤其是涉及财务数据提取和数字计算时。Agent脚本方面可以先用Python写一个简单的函数调用框架通过JSON格式定义Agent的工具、输入输出字段再由编排器逐个调用。不要一开始就上复杂的Agent框架很多开源编排工具看着强大出了问题反而难排查。先把一条主流程跑稳再考虑并行和重试机制。3.4 输出模板与人工反馈闭环投研系统的最终输出一定要模板化。我的报告模板大概是核心结论、关键财务变化、业务驱动因素、风险提示、待核验事项、证据来源列表。其中“待核验事项”很重要它明确告诉研究员哪些地方系统不确定需要人工介入。在“风险提示”里我会单独加一条“未在本次资料中体现的风险因素”避免模型因为只看局部资料而漏掉系统性风险。人工反馈闭环是整个系统长期有效的关键。每个研究员可以给每条结论打标签正确、错误、存疑、无用。这些反馈数据积累到一定量后可以用来针对性优化切块策略、提示词和重排序模型。不要把反馈当作事后记录它是AI投研系统迭代的核心燃料。4. 我在实践中踩过的坑4.1 幻觉问题不是靠提示词能根治的大模型在投研场景里最危险的错误不是答不上来而是答得很流畅但数字是错的。我踩过最惨的坑是让它总结某公司并购案的影响模型引用了一个并不存在的“历史公告”数据研究员当时没验证就写进了内部纪要后来被复核时当场抓包。从那以后我把所有关键数字都加了一道规则校验模型输出里的财务数字必须能与原始文稿中的数字精确匹配匹配不上就整段拒收。这道人工规则比任何提示词都管用。降低幻觉的组合拳是这样的先把问题拆小让每个Agent只回答一个具体问题再强制引用来源输出中必须包含依据的块编号最后加规则校验数字、日期、公司名必须存在于原文。经过这三层处理效果立竿见影但不可能达到100%所以最终一定要有人工复核环节。4.2 数据时效与信源污染投研系统对时效极度敏感。同一个公司不同年份的财务数据会有明显差异同一份新闻旧新闻可能已经过时。如果检索系统只按向量相似度排序很可能把三年前的旧新闻当成最新信息推给模型。我的处理方式是在元数据里写入“业务日期”并在检索时强制过滤近三个月内的事件数据再配合时间衰减因子调整排序分数。信源污染更隐蔽。某些财经资讯网站内容互相搬运一个错误信息会同时在几十个页面出现检索系统召回的内容可能全是同一句话的不同版本。解决办法是按来源网站权重进行去重优先采用交易所公告、公司官网和审计报告财经自媒体内容只能作为次要参考来源且必须标注来源等级。研发系统的初期我宁可少接入一些数据源也不希望模型被低质量信源带偏。4.3 “全自动”陷阱你需要的不是无人驾驶是辅助驾驶做技术的人天然喜欢追求全自动但在投研这件事上全自动是个陷阱。任何一个涉及资金决策的系统都必须保留人类在关键节点上的控制权。我的原则是系统负责把决策所需的信息都摆到明面上但最终行动的开关永远在人手里。这就像汽车的辅助驾驶AI可以帮你刹车、跟车但方向盘仍然随时可以被接管。投研系统的意义不是替代研究员而是把研究员从低效的“翻资料”里解放出来让他们把时间花在真正需要判断力的地方。如果你在设计系统时发现某个环节完全没人参与那就要警惕了这个环节很可能是失控的开始。4.4 成本与延迟控制投研系统如果每次查询都调一次千亿参数大模型成本会很快失控。我采用的策略是模型路由简单任务比如“抽取财务指标”“错别字纠正”用小型模型承担复杂任务比如“综合多份材料写分析摘要”再调用大模型。同时做好缓存同一公司同一报告期的检索结果按天级缓存避免重复消耗token。延迟也是个隐性成本。研究员用系统的耐心很短如果一个问题要等两分钟才出结果人就直接弃用了。我尽量把“一键生成重点速览”控制在30秒以内超过这个时间就改异步任务生成完成后推送通知。技术选型上能提前预计算的预先算好能批量处理的不要实时跑这个思路在投研场景里非常实用。5. 进阶方向与长期建议5.1 多Agent辩论与置信度打分单一模型容易陷入逻辑盲区尤其是面对一个强逻辑但事实有漏洞的观点时。我的一个尝试是让多个Agent扮演不同角色一个只找支持证据一个只找反驳证据一个专门检验数据真实性最后让仲裁Agent综合出结论。这种“多空辩论”模式特别适合分析有争议的标的能显著减少单边思维。给结论打分也是值得做的方向。比如根据证据覆盖率、信源等级、数据完整度给每条结论一个置信度区间。高置信度的结论可以直接进入决策参考低置信度的则强制人工复核。这个打分机制不需要太复杂先做简单的加权评分后续再根据历史命中率动态调整权重。5.2 另类数据的结构化提取传统投研数据拼到最后都是公开信息真正的Alpha往往来自另类数据。比如通过专利公开信息跟踪公司技术布局通过招聘信息推断业务扩张方向通过供应链数据判断订单变化。这些数据结构化程度低、噪音大但AI的文本理解和多模态能力正好能处理。不过我不建议在系统初期就碰另类数据因为它的数据清洗成本很高。先把公告、财报、新闻这些主流数据处理到极致等团队积累了足够的工程经验再逐步引入另类数据。任何一个数据源都要先做小范围验证它能提供多少增量信息和已有数据是否重复信源是否可靠验证通过后再进入正式采集管道。5.3 建立自己的评估集评估集是投研系统迭代的指南针。没有评估集你无法知道新版本是变好还是变坏。我建议从历史案例里整理50到100个标准问题每个问题包含背景材料、标准答案、评估维度。比如“这家公司当前毛利率是升还是降”“存货周转天数为什么明显增加”“这次分红率变化是否可持续”等。每次模型或Agent框架调整后都用同一套评估集跑一遍记录准确率、覆盖率和平均耗时。这套评估集的价值会随时间越来越大它让你每次升级都有据可依而不是拍脑袋决定。评估集维护也是工程的一部分要定期补充新的真实案例避免系统只在旧数据上过拟合。5.4 我最后想强调的一条原则从设计第一版AI投研系统到现在我最深的体会是不要追求模型有多聪明要追求系统有多“可交圈”。说得直白一点系统给研究员的每一份输出都应该是“我告诉你我看到了什么、我为什么这么判断、哪里可能有遗漏”而不是“听我的买这个”。在这个前提下AI投研系统才能成为一个团队的稳定基础设施而不是某个时间段的热闹玩具。