
最近一段时间“ai-berkshire”这个概念在我关注的投资和技术圈子里反复出现。听起来很玄乎但拆开来看就是一个很朴素的想法能不能用大模型技术把巴菲特和芒格那套价值投资的分析流程——信息搜集、财务筛选、护城河判断、估值、风险控制——给系统化、自动化地重做一遍我自己一直对AI Agent和量化投研感兴趣过去两个月专门搭了一套自己的AI价值投资研究框架从数据管道到多智能体协作再到决策输出都跑通了。这篇就把完整的框架设计、模块拆解、技术选型、实测中踩过的坑以及我对“AI复刻巴菲特”这件事的边界判断一次性说清楚。内容会偏实操适合正在研究AI投研方向、或者想用大模型辅助自己做基本面分析的朋友。1. 为什么叫ai-berkshire巴菲特的方法论哪些能被AI复刻先把名字讲清楚。伯克希尔·哈撒韦是巴菲特的投资平台ai-berkshire本质上是想打造一个“AI版的伯克希尔”——不是让AI去抄巴菲特的作业而是让AI像伯克希尔的研究团队那样对一家公司做系统性的基本面研究。1.1 拆解大师的决策流程巴菲特和芒格做投资表面上看起来是“看一眼就决定”实际背后有一套极其稳定的流程。我把它们拆成五步信息获取读年报、读公告、读行业杂志、读一切能读的公开信息。筛选用财务指标和业务特征快速排除掉大量不合格的公司。深度研究对入选的公司做商业模式、竞争格局、管理层、财务质量的全方位分析。估值用DCF、相对估值等方法算清楚“值多少钱”。决策与风控在估值基础上留安全边际控制仓位规避致命风险。这五步里面第2步和第4步属于高度规则化的任务非常容易被代码和大模型复刻。第1步是大模型最擅长的事情——信息检索和长文本阅读理解。第3步最难因为商业模式判断依赖大量隐含知识和行业经验AI可以做辅助但很难完全替代人这个是后话我放到第4章详细讲。1.2 哪些能力是“数字资产”哪些是“血肉之躯”我做这个项目之前先把巴菲特的方法论做了一个“可数字化程度”的评估。结论很重要直接决定了我整个框架的设计方向。能力维度数字化难度AI替代程度说明财务报表分析低很高规则明确指标可计算文本可解析行业数据搜集低很高网络搜索RSS公告抓取工程问题财务造假识别中中高部分财务指标异常可自动化但需要推理护城河定性判断高低依赖对行业格局、用户心理的深层理解管理层品质评估很高很低“言行一致”需要多年跟踪AI缺少长期记忆市场情绪与估值结合中中可量化部分多但艺术成分也重我后来的框架设计基本就是顺着这张表来的把数字化程度高的环节全部交给AI把数字化程度低的环节做成“人机协作”——AI提供证据链人做最终判断。1.3 我为什么不用“一个超级Prompt搞定”市面上有很多人拿着ChatGPT问“XXXX公司能不能买”得到一个几百字的回答就觉得AI会投资了。这种做法我完全不推荐原因有两个第一上下文窗口再大也装不下分析一家公司所需的全部材料。一份年报就几百页加上行业报告、竞争对手数据、历史公告动辄几百万字。硬塞进去模型早忘了前面的内容回答质量断崖式下跌。第二单次对话没有“思考过程”的约束。价值投资的核心是checklist——每一笔投资决策都要经过一组固定问题的检验。一个超级Prompt很难保证模型每次都按照同样的顺序和标准去做分析输出质量很不稳定。所以我的框架从一开始就走的是“多Agent协作”的路线不同Agent负责不同环节各自使用专门优化过的Prompt和工具最后汇总成一份结构化投研报告。这也是为什么最近“多AI协作”这个词这么热——单个模型再强也不如一组各司其职的Agent稳定可靠。2. 框架总览五层架构与Agent分工我的ai-berkshire框架整体上分五层数据层、分析层、判断层、决策层、反馈层。每一层解决的问题不同用到的技术和工具也不同。2.1 数据层构建高质量信息管道这一层是重中之重也是最容易被忽视的。很多人在AI投研上翻车根本不是模型不好而是喂进去的数据太脏。我目前的数据源分三类结构化财报数据通过财务数据接口国内可以用akshare、tushare这类开源库拉取三大报表、财务比率、历史估值数据。这些数据是后续所有计算的基石必须保证准确。半结构化文本年报中的管理层讨论、董事会报告、审计意见、公告。这些是判断商业模式和管理层的关键素材。我通常用Python写脚本批量下载PDF然后解析成文本。非结构化信息行业新闻、券商研报摘要、竞争对手动态。通过RSS订阅搜索API获取但这里要特别注意信息滞后问题后面第六章会展开讲。数据层的产出是一个标准化的“公司研究数据包”包括结构化表格比如近10年营收、净利润、ROE、自由现金流和非结构化文档库比如最近5年管理层讲话全文。2.2 分析层让Agent各司其职分析层的核心是五个Agent每个Agent只负责一件事Agent职责输入输出情报官搜集行业动态、公司新闻、竞争对手信息公司名称、行业标签信息简报带时间戳财报分析官阅读三大报表计算财务比率识别异常信号公司研究数据包财务健康报告行业研究员分析行业格局、竞争态势、上下游议价能力情报官简报行业数据行业竞争格局分析估值官计算DCF、相对估值、历史估值带财务数据行业研究员输出估值区间报告风控官检查决策清单、识别潜在风险点、提供反向意见所有Agent输出风险清单及一票否决项这五个Agent之间不是串行关系而是并行的——财报分析官和分析行业研究员可以同时干活最后汇总到决策层。2.3 决策层投票、辩论与证据链决策层是整个框架里最有意思的部分。我没有设计成“所有Agent达成一致就输出买入”而是设计了一个“对抗式讨论”机制。具体做法在汇总阶段风控官会针对每个买入建议提出至少三条反对意见然后财报分析官和行业研究员必须逐条回应。如果某个反对意见无法被有效反驳最终报告会自动标记为“存在未解决争议”建议人工介入。这个设计借鉴了芒格所谓的“反过来想”——AI最大的问题不是不够聪明而是过度自信。强制辩论机制是降低AI过度自信最有效的工程手段。2.4 交互与自动化从投研报告到操作建议决策层的最终产出是一份Markdown格式的结构化投研报告包含六部分公司基本信息与业务概览财务健康度评分基于财报分析官输出行业竞争格局判断基于行业研究员输出估值区间及与当前股价的偏离度风险清单与未解决争议最终观点看多/看空/中性及安全边际建议我一般用Python脚本把这份报告自动推送到自己的笔记系统里手机就能看。整个流程从输入一个公司代码到拿到报告大约需要二十分钟左右具体取决于数据拉取速度。3. 财务分析模块让AI读懂数字背后的经营逻辑财务模块是整个框架里最“硬核”的部分也是我花时间最多的部分。这里有两个反直觉的经验不要直接让大模型读财报数字也不要用大模型做计算。3.1 为什么不能用LLM直接“算”财务指标大模型本质上是语言模型它擅长的是理解和生成文本而不是精确计算。我实测过让GPT-4类模型直接从一个包含20行财务数据的表格里计算ROE十次里有两三次会算错——尤其是当表格里既有万元又有亿元单位的时候错得更离谱。解决方案很朴素先用代码把所有财务指标算好再让大模型对计算结果做解读。模型的任务是“理解指标背后的经营含义”而不是“计算指标”。我写了一个Python模块输入原始报表后自动计算40多项关键指标包括但不限于盈利能力ROE、ROIC、毛利率、净利率、营业利润率成长性营收CAGR、净利润CAGR、经营性现金流CAGR财务健康资产负债率、流动比率、利息保障倍数运营质量应收账款周转天数、存货周转天数、应付账款周转天数现金流质量自由现金流/净利润比率、经营性现金流/净利润比率这些指标算完之后连同近10年变化趋势一起交给财报分析官去做解读。3.2 财报分析官的Prompt设计让AI当“审计员”而非“推销员”财报分析官的Prompt我迭代了十几版核心原则就一句话要求模型同时给出正反两面证据严禁只描述好的一面。这里放一个简化版的Prompt整个思路供参考你是一位拥有20年经验的资深财务分析师。请基于以下财务指标数据近10年完成对公司财务健康度的分析。 分析必须包含三部分 1. 持续盈利能力核心盈利指标趋势是否稳定是否存在明显的周期性或衰退迹象 2. 财务真实性排查重点关注应收账款增速是否显著高于营收增速、存货周转天数是否持续上升、经营性现金流与净利润是否长期背离。如果存在上述情况请明确指出并猜测可能原因。 3. 反面论证仅基于财务数据列出三到五个指向“公司基本面恶化”的信号。如果某项指标表现优秀必须同时说明其可能的“水分”。 输出格式 - 财务评分1-10分 - 分维度分析盈利能力/财务健康/现金流质量/运营效率 - 风险信号列表 - 值得进一步调研的问题加粗那句“反面论证”是效果提升最大的一处修改。我发现没有这句的话大模型天然倾向于报喜不报忧——这也是投喂给它的训练数据决定的财经媒体和研报本来就是看多为主。3.3 单位、口径与历史对比三个必踩的坑这个模块我踩过的坑比较多挑三个最有代表性的单位坑不同数据源的单位不一致有的用元有的用万元有的用亿元。我早期有一次直接把不同单位的数据拼在一起让模型解读结果模型一本正经地分析“营收暴增1000倍”实际上是单位没对齐。解决方式是在数据管道入口强制统一单位并在传给模型前做一次数值范围校验。口径坑净利润有归母净利润和扣非净利润自由现金流有FCFF和FCFE等不同口径。财报分析官必须被告知当前使用的具体口径否则它的分析容易张冠李戴。历史对比坑只看单一年份的指标价值很低必须看多年趋势。我实测下来模型分析“近10年ROE从25%波动下降到8%”比分析“当前ROE为8%”要准确得多也深刻得多——它能自动联想到公司竞争优势可能正在衰减。4. 定性分析护城河与管理层的AI化处理如果说财务分析是AI的舒适区那定性分析就是AI的“翻车高发区”。护城河、管理层、行业格局这些概念模型都能“说得头头是道”但说得对不对、能不能落到证据上是另一回事。4.1 把护城河拆解成可验证的信号我参考晨星的护城河评级体系把护城河拆成五种来源无形资产品牌、专利、转换成本、网络效应、成本优势、有效规模。然后针对每一种来源设计了对应的“AI可提取信号”。举个例子判断品牌护城河时财报分析官会去查毛利率和销售费用率的变化——**品牌护城河强不强本质上是看公司能不能长期维持高于同行的定价权。**判断转换成本时行业研究员会看年报里对客户续约率、客单价的描述同时搜索“XX公司 客户流失”这类负面关键词做对照。关键思路不要让AI直接回答“护城河深不深”而是让AI先收集一组长长短短的观察点再由人根据证据链自己下结论。我管这叫“证据链先行的定性分析”。4.2 管理层评估用“言行一致性”代替“能力打分”管理层评估是这个框架里我唯一觉得“AI几乎派不上大用场”的环节——除非给它长期跟踪数据。正面信息获取难度大因为年报里的管理层讨论都是经过公关润色的。我试过让大模型读三年度管理层讨论分析战略方向的变化它确实能发现一些线索比如反复出现的“转型”“聚焦”这类信号词但判断管理者“这个人靠不靠谱”AI完全做不到。我的折中方案是做一个“言行一致性检查器”让情报官搜集过去三年管理层对外讲过的重要目标从发布会、年报、采访稿中提取。再让财报分析官用实际经营数据检验这些目标是否兑现。输出一张“承诺VS兑现”的对照表。这个功能非常有用。有些公司管理层年年喊很高的业绩目标结果年年差一点点有些公司调低预期后超额完成。这两种管理团队的投资价值完全不一样。AI做不了道德判断但做“翻旧账”这件事非常在行。4.3 行业研究员的信息源设计不能只喂正面材料行业研究员这个Agent最大的毛病是容易掉进“信息茧房”。如果我只喂它看多这家公司的材料它一定会给出看多的分析——这不是模型笨是人的输入就有偏。后来我在Prompt里强制要求它至少阅读三篇看空观点、三篇看多观点再做综合。这个做法在英文材料里实现起来比较容易因为海外有大量做空报告和独立研究可供搜索中文材料里看空的声音少一些我就用“竞争对手的角度”替代——给定同一组行业数据让行业研究员模拟主要竞争对手的视角做分析往往能发现一些有意思的细节。比如分析某消费公司时让AI从它的主要竞争对手视角出发它会关注到对方正在低价抢夺下沉市场——这可能是行业研究员在看多材料里完全不会注意到的风险点。5. 估值与决策输出AI辅助而不是AI代替估值模块是我安全边际最高的地方因为这里的错误代价最直接。我的原则极其明确所有估值计算用代码完成AI只负责做假设和解读结果。5.1 三个估值模型并跑绝不让AI“拍板”我的估值层同时跑三个模型DCF模型基于未来十年自由现金流预测折现。这里AI的作用是分析历史自由现金流趋势、判断增长假设是否合理但具体DCF计算完全由Python完成。相对估值用同行业公司的EV/EBITDA、PE、PB做对比。AI负责筛选可比公司清单并解释估值差异的原因。历史估值带查看公司过去十年PE、PB的波动区间判断当前估值处于什么分位。最后汇总时估值官会输出一个“三模型估值交叉验证”的结论如果三个模型给出的合理市值区间重叠度高结论可靠性就高如果互相矛盾会明确标注“估值不确定性高不建议据此做投资决策”。这个设计的技术含量不高但非常实用。我发现AI和人一样会执着于自己第一个给出的估值之后找再多证据都会下意识往那个方向靠。三模型分头跑能够在流程层面规避锚定效应的干扰。5.2 估值参数的“人工确认环节”DCF模型里最核心的假设是未来增长率、折现率和永续增长率。大模型在这三个参数的设定上往往过于乐观——给它一家增速放缓的传统公司它可能仍按5%以上的永续增长去做模型这直接导致估值虚高。我在框架里加了一个折现率校验器代码会根据公司规模、所处行业、负债率自动给出一个建议折现率范围估值官的假设如果超出这个范围必须给出充分理由。否则报告会自动标记“假设过于激进”。这一步本质上是把人的“风控意识”固化到了流程里。AI可以犯错但框架必须能把错误拦在最终决策之前。5.3 决策输出给操作建议而不是给“情绪”最终决策层的输出格式我反复调了很多轮。最开始的版本AI会写“强烈建议买入目标涨幅30%”——这种输出风格热血沸腾但完全不适合做决策参考。后来我改成“概率区间条件”的语言风格。一个合格的输出示例长这样【最终观点】谨慎看多 【三年期估值区间】60-75元当前52元存在15%-44%上行空间 【核心前提假设】 - 未来三年营收增速不低于8% - 毛利率维持在42%以上 - 资本开支不超过净利润的60% 【观察信号】若连续两个季度毛利率跌破40%该逻辑证伪 【未解决争议】渠道库存数据无法验证存在渠道压货风险注意最后两条——给可证伪条件而不是给盲目信心。这才是一个研究框架应该输出的东西你告诉我什么时候我对了也告诉我什么时候我错了。AI最擅长的就是从海量信息里提炼这种“可验证的判断”。6. 实测复盘这套框架帮我避开了哪些“隐形坑”文章写到这所有模块都介绍完了。最后这部分我把实际跑了一个多月、研究了十几家公司之后的经验和教训做個系统性复盘——这可能是对想自己动手搭框架的人最有价值的部分。6.1 大模型编造财务数据的幻觉问题我最早跑框架时碰到过一个特别严重的幻觉案例财报分析官信誓旦旦地说某公司“过去五年营收复合增长率高达18%”但我核对原始数据发现真实值只有9%。模型的文字分析全程围绕18%展开导致整个财务健康度结论完全失真。后来我排查发现推理过程里模型因为在上下文某处“看到”了一个数字错误复述。从那以后我做了两条硬性规定所有具体数字必须从代码计算结果中引用禁止模型凭记忆输出任何定量结论。如果模型引用的数字与代码计算结果不一致以代码结果为准并且报告会标记“数值引用偏差”。这条经验对任何做AI分析的人都适用语言模型的归语言模型计算的归计算。一旦混在一起幻觉就来了。6.2 信息滞后AI研究的“新鲜度陷阱”我测过几次让情报官去搜索某公司最近新闻它返回的内容里混杂了大量半年前甚至更早的信息。如果框架不区分信息时间分析官可能会把旧利好当成新鲜事来处理结论自然失真。解决方案是在数据层强制给每条信息打时间戳并且分析官只允许引用最近90天以内的动态信息做判断更早的信息只作为历史背景参考。这个细节看着小对结论质量的影响非常大。6.3 上下文长度对分析质量的隐性影响使用大模型时上下文窗口是有“隐性衰减”的——当喂给它的材料超过一定量后面的内容它就开始“注意力涣散”了早期出现的关键数据可能会被遗忘。我的应对方法是把每类Agent的输入材料限制在“摘要结构化数据”的黄金组合——完整原文放知识库Agent只看提炼后的关键信息。长文档先按章节切分提取每部分的要点再用要点做分析。这个做法的副作用是可能丢失细节但对于框架化的基础分析来说信息密度和质量比完整度更重要。6.4 框架的真实价值减少低级错误而非制造“神预测”跑了一个多月我最大的心得体会是这个框架不会让你一夜变成投资大师但能帮你系统性筛掉大量不靠谱的机会。过去我自己做研究经常被某个吸引人的故事带跑偏忽略财务数据的恶化信号。框架跑完之后那些“故事很好但财务很烂”的公司会自动触发风控官的反向意见逼着我看清楚问题所在。要量化评估的话使用框架后我的研究时间节约了大概一半以上输出报告的覆盖面也广得多——以前手动只能覆盖两三家公司的深度研究现在能同时跟踪十家左右。最后给想尝试的人一个直接可落地的建议不要一上来就搭全套框架。先从“财报分析官”做起跑通一个公司、验证输出质量再加其他Agent。一口吃不成胖子但每一口吃扎实了这套AI投研框架就会一步步变成你自己专属的“ai-berkshire”。