资讯动态

AI智能体群体如何识别价值投资型管理层:架构与实战

发布时间:2026/10/21 23:04:16 来源:尧图企业网站定制
去年年中我在复盘一批上市公司的长期表现时突然意识到一个问题财务报表只能告诉我们公司现在怎么样却很难告诉我们管理层下一步会把公司带成什么样。后来我干脆做了一个试验——用一组AI智能体群体去识别那些具有价值投资大师式特征的行业领导者把过去靠经验和直觉判断的东西变成一条可追踪、可回测的流水线。这个项目不是简单的财报分析也不是让大模型写一份研报而是让多个各司其职的智能体组成一个小型投研团队分别抓取数据、校验事实、解读语气、计算指标最后再聚到一起投票。我跑了三个月陆续覆盖了多个行业筛出过一些后来被验证为高质量的公司也翻过不少车。这篇文章我会把思路、架构、代码结构、评测方法以及踩坑记录全部摊开来讲希望能给正在做智能体应用或者想做量化基本面研究的朋友一点可复用的参考。1. 为什么是“AI智能体群体”而不是一个Agent1.1 单智能体做不了这件事的三个原因最初我确实试过只用一个Agent把所有任务都塞进同一套提示词里让它“读完财报后直接告诉我这家公司的管理层是不是价值投资大师式”。结果非常不稳定。同一个问题换一种问法结论就可能从“高度符合”变成“强烈不符合”。这个现象背后有三个很实际的原因。第一上下文窗口撑不住。一家公司一年的年报原文可能有几十万字加上电话会议记录、股东信、治理公告动辄超过百万字符。即使能通过RAG截取片段一个Agent也没有足够的注意力去同时兼顾财务、治理、战略、竞争格局这些维度。它很容易“捡了芝麻丢西瓜”只盯着最近一段现金流数字却忽略了三年前那次高价并购造成的商誉减值。第二幻觉无法通过自我检查消除。让同一个模型既当选手又当裁判结果往往是对自己生成的内容过于自信。它计算ROIC时可能把口径搞混解读电话会议情绪时又会被一个无关的段子带偏而它自己发现不了。多个智能体交叉验证的价值就在这财务Agent算出的数字需要治理Agent通过公告里的原始数据确认叙事Agent提取的承诺需要财务Agent在报表里找到兑现的依据。第三价值投资大师式的判断本身是多目标决策。长期主义、资本配置、护城河、行业地位、言行一致这些维度不是简单加权求和就完事的它们之间存在相互验证的关系。比如一家公司毛利率很稳如果同行业竞争Agent给出的市场份额数据也支持那置信度就高如果只有毛利率一个孤证那大概率是会计处理或行业周期带来的假象。这种“证据链推理”天然适合多个智能体分工而不是让一个Agent在长上下文中硬撑。1.2 把“价值投资大师式”拆成可量化的五个维度在做系统设计之前我先把目标拆成了五个可计算、可校验、可回测的维度。这个动作是整个项目里最重要的一步因为后面所有的Agent分工、数据库字段、评分权重都从这里来。第一个是资本配置质量。看管理层是否把资金投向了高于融资成本的领域自由现金流转化率、ROIC趋势、并购后的实际回报、回购是否在低位执行、分红是否可持续。这些指标能直接反映“钱到底有没有被花在刀刃上”。第二个是长期主义导向。看研发费用率是否保持稳定、资本开支是否匹配行业周期、管理层是否愿意为三五年后的增长牺牲短期利润、是否频繁变更战略方向。我特别关注“上市公司变脸”频率比如一年换一个主业的故事线基本可以直接排除。第三个是护城河与行业地位。毛利率稳定性、市占率变化、客户集中度、定价权、品牌投入强度、专利和无形资产变化。这个维度不是单纯找“大公司”而是找“有壁垒且壁垒在加深的公司”。第四个是管理层与股东利益绑定。实控人持股比例、高管增减持行为、股权激励的行权条件是否苛刻、分红与回购的持续性。这个维度最容易数据化也最能体现管理层是否把自己当成股东。第五个是言行一致性。把股东信和电话会议里提出的目标、口径、承诺与之后一两年报表里的实际数对齐计算“吹牛偏差”。价值投资大师式管理者通常有一个特点对外承诺偏保守实际结果超预期。反过来天天喊“行业领先、未来可期”但业绩持续打脸的管理层在这个维度的得分会非常低。这五个维度我会在后面的评测部分继续用到。它们不是拍脑袋定的而是把投资逻辑映射成了可观测的代理变量每一层都有数据源支撑。2. 系统整体架构与核心角色设计2.1 五个Agent角色和它们的输入输出整套系统里我设计了五个专职Agent外加一个仲裁Agent。每个专职Agent只负责一类工作输出统一格式的JSON证据包而不是自由文本。这样后续做聚合、审计、回测都方便。情报收集Agent负责拉取原始资料。输入是公司代码和时间范围输出是已经清洗过的切片数据包括年报MDA章节、股东信、董事会公告、高管交易记录、电话会议问答文本片段。它还要负责去重和去格式因为PDF转出来经常有页眉页脚、乱码表格、币种混乱。财务解析Agent负责算指标。输入是情报Agent整理的财务表格和附注输出是标准化后的指标序列。这个Agent最重要的任务是核对口径比如ROIC的分子分母用哪个版本、自由现金流用经营现金流减去资本开支还是再减去营运资本增加项。我会在系统里内置多个口径定义让Agent在输出时把口径ID也带上。治理与股权Agent专门看利益绑定。输入是股东名册、高管减持公告、股权激励文件输出是持股比例变化、交易方向、激励条件的难度评分。它还会特别关注一个细节管理层回购和减持发生的时间点相对于股价的位置虽然这不能直接证明什么但可以形成一条可疑信号。叙事与语气Agent处理的是股东信、电话会议文本。输入是文本切片输出包括承诺清单、语气乐观度、不确定性词汇密度、对外界质疑的回应方式。这里需要说明语气分析不是简单情绪打分而是对比“主动释放信息”和“被动回应信息”的比例。行业竞争Agent负责横向对比。输入是同行业公司名单及其核心指标输出是市占率变化、毛利率分位、增速分位。这个Agent存在的意义是避免“矮子里拔将军”把一家行业平庸公司误判成领导者。最终评估Agent负责整合以上所有证据包进行加权打分输出最终识别结果和证据引用列表。它不直接读原始财报而是阅读各专职Agent提炼后的结构化数据。这样做能大幅降低幻觉概率因为最终评估Agent面对的已经不是海量原文而是经过交叉验证的证据。2.2 数据管道从原始财报到结构化证据数据管道我分成了四层。第一层是采集层负责处理公告PDF、网页表格、交易所披露文件。这一层我强烈建议做“双轨抓取”即用正则和规则先提取一遍再用大模型提取一遍两边不一致的地方自动标记出来交给人工或二次校验。第二层是清洗层统一币种、单位、时间粒度处理不同年份会计准则变化。第三层是存储层结构化指标进关系表文本切片进向量库证据包以JSON文件形式存成不可变版本方便追溯。第四层是特征生成层把五个维度的原始数据加工成统一评分字段。这里最容易被低估的是“不可变版本”的意义。我第一次跑系统时没有保存中间过程结果发现某个Agent的评分逻辑调整后完全想不起来上一次给它喂的数据是什么。后来我规定每个公司每次分析都必须生成一个manifest文件记录模型版本、提示词版本、数据获取时间、切片范围。成本不高但回测时的信任度完全不一样。2.3 群体协商与加权打分逻辑专职Agent各自输出后最终评估Agent不是简单求和而是采用“成对质询”机制。比如财务解析Agent给出ROIC连续五年大于15%最终评估Agent会要求治理与股权Agent补充一个证据这五年里有没有大规模增发稀释股东权益如果有那ROIC就算高也要扣掉“股东友好度”的分。再比如叙事Agent判断管理层使用了大量保守语气词财务数据也显示预期目标全部刚好达成这种“低承诺高达成”组合会获得额外的长期主义加分。打分逻辑我用了带惩罚项的加权公式总得分 资本配置×0.25 长期主义×0.2 护城河与地位×0.2 股东绑定×0.2 言行一致×0.15 - 治理红旗惩罚分治理红旗惩罚分包括频繁变更审计师、大股东高比例质押、商誉占净资产比例异常高、高管在业绩低谷前大规模减持。任何一个红旗出现都会直接扣除总分的10%-30%。这个惩罚项是回测时加进去的因为不加之前系统把好几家有财务操纵迹象的公司误判成了高质量企业。3. 最小可运行系统的搭建与实测3.1 技术选型与工程配置整套系统我不建议一上来就搞微服务最小可行版本用单机Python脚本加一个多智能体编排框架就能跑通。我实际用的配置是一个开源的多智能体编排库作为调度层底层对接通用大模型API向量库用本地轻量级实现关系数据用SQLite整个项目不到两千行代码。工程结构大概是这样的agents/放五个专职Agent的定义和提示词。pipeline/放数据采集、清洗、特征生成的脚本。evaluators/放最终评估Agent和评分逻辑。backtest/放历史数据切片和回测脚本。data/raw/原始下载文件。data/evidence/每个公司的证据包JSON。config.yaml模型版本、参数、公司名单、时间范围。在依赖方面核心需求是一套PDF解析库、一个多智能体编排库、一个向量检索库、一个HTTP客户端。没有特别重的依赖一台8核16G内存的云服务器就能跑。3.2 Agent定义与关键提示词示例这里我给出一个简化的Agent定义框架你可以直接照着写。关键不在于代码多漂亮而在于把Agent的“角色边界”和“输出格式”锁死。class Agent: def __init__(self, name, system_prompt, output_schema, llm_client): self.name name self.system_prompt system_prompt self.output_schema output_schema self.llm llm_client def run(self, inputs): messages [{role: system, content: self.system_prompt}] messages.extend(inputs) response self.llm.chat(messagesmessages, response_format{ type: json_object, schema: self.output_schema }) return self.validate(response)例如“叙事与语气Agent”的系统提示词我强调的是“不迎合、只报告”。它的任务是从文本中提取承诺而不是评价承诺好不好。提示词里专门有一句如果同一篇文本中出现前后矛盾请如实输出矛盾片段并标记为不一致不要替管理层解释。财务解析Agent的提示词则围绕“口径优先”来写。它被要求输出每个指标时必须附带口径ID和计算依据如果原始数据不足明确输出null禁止根据其他年份的趋势“脑补”一个值。这一条在后续回测里帮我过滤了大量无效输出。3.3 回测设计如何证明识别结果有效系统跑出来的评分如果没有经过验证就只是花里胡哨的玩具。我做了两层回测。第一层是“已知答案回测”。我挑了一批在最近五到十年里已经明确展现出行业领导者特征的公司同时混入一批基本面不错但管理层资本配置混乱的公司让系统只使用当年的数据做判断看它能不能把两组区分开。这一层主要测试五个维度的区分度如果某个维度对结果毫无贡献就说明它需要重新设计。第二层是“前瞻性回测”。用T年及以前的数据给公司打分观察T1到T3年的表现是否和评分正相关。这里的“表现”我用了三个并行的指标股价相对行业指数的超额收益、ROIC变化趋势、市占率变化。只有三个里至少两个同时走好才认定为一次成功识别。为了防止过拟合评分公式的权重不在回测中调整而是预先固定。跑完两轮回测后我得到的最重要结论是资本配置维度区分度最高言行一致性维度在A股和美股环境下差异极大。在监管披露较完善的环境里言行一致性能筛掉很多“画饼型”管理层在披露相对宽松的环境里这个维度容易因为样本缺失而失去意义。3.4 一个完整案例的推演过程拿我测试过的一家设备制造企业举例我们叫它“某设备公司”。它当时不是行业最大的但毛利率连续五年稳定在35%以上自由现金流转化率超过80%ROIC稳定在12%左右这些是财务Agent给到的核心证据。治理与股权Agent发现实控人持股比例超过40%上市以来从未进行过大规模增发唯一一次小规模回购恰好发生在股价低位附近。行业竞争Agent给出一个很有意思的结论它的营收增速不算行业最快但经营现金流增速远高于同行。叙事Agent读了三年股东信发现管理层每年提出的年度目标都偏保守实际完成率却普遍在100%以上。最终评估Agent综合打分后把它列为“高置信度行业领导者候选”。当时市场上对它分歧很大因为它的成长性不够亮眼。我按照系统输出继续跟踪了一年多结果它的业绩韧性、分红增长、以及行业下行期的市占率提升都超出了市场预期。这个案例不算什么精准预测更多是说明系统有能力在“故事平淡但有真价值”的公司里找到信号。4. 常见问题与避坑指南4.1 警惕“会说不会做”叙事与数据打架我最常遇到的误判是系统把一个“叙事能力极强的管理层”识别成价值投资大师。原因是叙事Agent给出的语气词偏乐观、承诺清单也很完整如果财务Agent没有给出足够的反向证据最终评估Agent就容易被带偏。解决办法是把“言行一致的惩罚项”设计成双向的承诺多但兑现少要重罚承诺少但兑现率高要加分。同时要限制叙事Agent的语气指标权重让它只能输出“乐观度”和“具体承诺数量”不能输出“是否值得信赖”这种主观判断。值得信赖与否要由最终评估Agent在对比数据后决定。4.2 财务口径不统一带来的脏数据这是一件极其折磨人的事。不同年份的现金流分类会变商誉减值政策会变“调整后净利润”这种非通用口径更是各家有各家的玩法。如果财务解析Agent不特别小心很容易把“经营性现金流”和“自由现金流”混淆或者把含少数股东权益的净利润当成归母净利润。我的对策是在指标定义里内置一个“口径检查清单”。每位财务Agent在计算前先回答三个问题这个指标的计算公式引用自哪个基础报表科目所在年份的会计政策是否有变动如果变动了新旧口径是否可换算无法换算的一律标记为缺失值绝不用后视镜去倒推。4.3 大模型幻觉与证据溯源做这类系统不谈幻觉就是在自欺欺人。我碰到过财务Agent引用了不存在的“研发费用率34%”也碰到过治理Agent把两起无关股东减持合并成“持续减持”。大模型在一个充满噪音的长文档集合里工作幻觉概率远高于短对话场景。我用的最有效手段是“证据强制引用”。每个Agent输出的每一个关键结论都必须附带原始文本切片ID和行号。最终评估Agent的评分逻辑里有一道校验如果某项证据无法找到原始切片则该维度得分直接降为零。这种方法不能彻底消除幻觉但能把幻觉的影响控制在单个证据节点而不是扩散到最终结论。4.4 成本控制与运行效率优化刚开始跑全流程时一家公司要调用大模型接口几十次累计费用非常肉疼。后来我做了三个优化。第一数据压缩。PDF切片不是直接拼成长文本喂给Agent而是先用规则和正则提取表格结构把纯文本部分压缩到“MDA核心段落股东信全文电话会议问答片段”大概能省三分之一token。第二批量并行。只要能保证各Agent之间的输入输出边界清晰每个行业的多家公司完全可以并行跑速度提升明显费用不变。第三分层路由。简单指标计算和标准化清洗优先用规则代码只有复杂叙事理解才调用大模型接口。这个分层改造让单公司分析成本下降了接近60%。5. 这套方法还能怎么用做完这个项目后我发现“AI智能体群体识别某种特质”这个框架完全可以脱离投资场景复用。只要把五个维度替换成目标特质对应的可观测标准它就能变成一个通用评估系统。比如用在企业内部的“管理者盘点”可以识别哪些团队负责人具备长期主义导向和资源分配能力。用在ESG评估里可以拆出“绿色承诺真实性”“供应链社会风险管理”等维度设计专职Agent分头核验公开信息与实际行动的一致性。用在创投尽调里可以扫描创始人过往决策记录判断其在融资后的资本配置倾向和战略稳定性。我个人现在最想扩展的方向是把“言行一致性”这个维度做得更通用。它本质上是一种可以应用到任何角色身上的品格度量一个人、一个组织、甚至一款产品对外承诺与真实产出之间的差距往往比单点指标更能反映长期可靠性。这套多智能体在交叉验证上的优势正好可以帮我们自动、批量地做这种度量。最后再分享一个小技巧如果你也打算做类似的项目不要一上来就追求大而全。挑一个你最熟悉、数据最标准、评判标准最明确的细分行业比如银行业的资本充足率分析或者消费品行业的毛利率观察先把一套Agent跑通再慢慢扩展到模糊场景。能把一个维度做扎实比五个维度都做得浅要实用得多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑