☰
AI智能体群体如何识别价值投资型管理层:架构与实战
2026/10/21 23:04:07 网站建设 项目流程

去年年中,我在复盘一批上市公司的长期表现时,突然意识到一个问题:财务报表只能告诉我们公司现在怎么样,却很难告诉我们管理层下一步会把公司带成什么样。后来我干脆做了一个试验——用一组AI智能体群体去识别那些具有价值投资大师式特征的行业领导者,把过去靠经验和直觉判断的东西,变成一条可追踪、可回测的流水线。

这个项目不是简单的财报分析,也不是让大模型写一份研报,而是让多个各司其职的智能体组成一个小型投研团队,分别抓取数据、校验事实、解读语气、计算指标,最后再聚到一起投票。我跑了三个月,陆续覆盖了多个行业,筛出过一些后来被验证为高质量的公司,也翻过不少车。这篇文章我会把思路、架构、代码结构、评测方法以及踩坑记录全部摊开来讲,希望能给正在做智能体应用,或者想做量化基本面研究的朋友一点可复用的参考。

1. 为什么是“AI智能体群体”而不是一个Agent

1.1 单智能体做不了这件事的三个原因

最初我确实试过只用一个Agent,把所有任务都塞进同一套提示词里,让它“读完财报后直接告诉我:这家公司的管理层是不是价值投资大师式”。结果非常不稳定。同一个问题换一种问法,结论就可能从“高度符合”变成“强烈不符合”。这个现象背后有三个很实际的原因。

第一,上下文窗口撑不住。一家公司一年的年报原文可能有几十万字,加上电话会议记录、股东信、治理公告,动辄超过百万字符。即使能通过RAG截取片段,一个Agent也没有足够的注意力去同时兼顾财务、治理、战略、竞争格局这些维度。它很容易“捡了芝麻丢西瓜”,只盯着最近一段现金流数字,却忽略了三年前那次高价并购造成的商誉减值。

第二,幻觉无法通过自我检查消除。让同一个模型既当选手又当裁判,结果往往是对自己生成的内容过于自信。它计算ROIC时可能把口径搞混,解读电话会议情绪时又会被一个无关的段子带偏,而它自己发现不了。多个智能体交叉验证的价值就在这:财务Agent算出的数字,需要治理Agent通过公告里的原始数据确认;叙事Agent提取的承诺,需要财务Agent在报表里找到兑现的依据。

第三,价值投资大师式的判断本身是多目标决策。长期主义、资本配置、护城河、行业地位、言行一致,这些维度不是简单加权求和就完事的,它们之间存在相互验证的关系。比如一家公司毛利率很稳,如果同行业竞争Agent给出的市场份额数据也支持,那置信度就高;如果只有毛利率一个孤证,那大概率是会计处理或行业周期带来的假象。这种“证据链推理”天然适合多个智能体分工,而不是让一个Agent在长上下文中硬撑。

1.2 把“价值投资大师式”拆成可量化的五个维度

在做系统设计之前,我先把目标拆成了五个可计算、可校验、可回测的维度。这个动作是整个项目里最重要的一步,因为后面所有的Agent分工、数据库字段、评分权重都从这里来。

第一个是资本配置质量。看管理层是否把资金投向了高于融资成本的领域:自由现金流转化率、ROIC趋势、并购后的实际回报、回购是否在低位执行、分红是否可持续。这些指标能直接反映“钱到底有没有被花在刀刃上”。

第二个是长期主义导向。看研发费用率是否保持稳定、资本开支是否匹配行业周期、管理层是否愿意为三五年后的增长牺牲短期利润、是否频繁变更战略方向。我特别关注“上市公司变脸”频率,比如一年换一个主业的故事线,基本可以直接排除。

第三个是护城河与行业地位。毛利率稳定性、市占率变化、客户集中度、定价权、品牌投入强度、专利和无形资产变化。这个维度不是单纯找“大公司”,而是找“有壁垒且壁垒在加深的公司”。

第四个是管理层与股东利益绑定。实控人持股比例、高管增减持行为、股权激励的行权条件是否苛刻、分红与回购的持续性。这个维度最容易数据化,也最能体现管理层是否把自己当成股东。

第五个是言行一致性。把股东信和电话会议里提出的目标、口径、承诺,与之后一两年报表里的实际数对齐,计算“吹牛偏差”。价值投资大师式管理者通常有一个特点:对外承诺偏保守,实际结果超预期。反过来,天天喊“行业领先、未来可期”但业绩持续打脸的管理层,在这个维度的得分会非常低。

这五个维度我会在后面的评测部分继续用到。它们不是拍脑袋定的,而是把投资逻辑映射成了可观测的代理变量,每一层都有数据源支撑。

2. 系统整体架构与核心角色设计

2.1 五个Agent角色和它们的输入输出

整套系统里我设计了五个专职Agent,外加一个仲裁Agent。每个专职Agent只负责一类工作,输出统一格式的JSON证据包,而不是自由文本。这样后续做聚合、审计、回测都方便。

情报收集Agent负责拉取原始资料。输入是公司代码和时间范围,输出是已经清洗过的切片数据,包括年报MD&A章节、股东信、董事会公告、高管交易记录、电话会议问答文本片段。它还要负责去重和去格式,因为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(messages=messages, response_format={ "type": "json_object", "schema": self.output_schema }) return self.validate(response)

例如“叙事与语气Agent”的系统提示词,我强调的是“不迎合、只报告”。它的任务是从文本中提取承诺,而不是评价承诺好不好。提示词里专门有一句:如果同一篇文本中出现前后矛盾,请如实输出矛盾片段,并标记为不一致,不要替管理层解释。

财务解析Agent的提示词则围绕“口径优先”来写。它被要求输出每个指标时必须附带口径ID和计算依据,如果原始数据不足,明确输出null,禁止根据其他年份的趋势“脑补”一个值。这一条在后续回测里帮我过滤了大量无效输出。

3.3 回测设计:如何证明识别结果有效

系统跑出来的评分如果没有经过验证,就只是花里胡哨的玩具。我做了两层回测。

第一层是“已知答案回测”。我挑了一批在最近五到十年里已经明确展现出行业领导者特征的公司,同时混入一批基本面不错但管理层资本配置混乱的公司,让系统只使用当年的数据做判断,看它能不能把两组区分开。这一层主要测试五个维度的区分度,如果某个维度对结果毫无贡献,就说明它需要重新设计。

第二层是“前瞻性回测”。用T年及以前的数据给公司打分,观察T+1到T+3年的表现是否和评分正相关。这里的“表现”我用了三个并行的指标:股价相对行业指数的超额收益、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,而是先用规则和正则提取表格结构,把纯文本部分压缩到“MD&A核心段落+股东信全文+电话会议问答片段”,大概能省三分之一token。第二,批量并行。只要能保证各Agent之间的输入输出边界清晰,每个行业的多家公司完全可以并行跑,速度提升明显,费用不变。第三,分层路由。简单指标计算和标准化清洗优先用规则代码,只有复杂叙事理解才调用大模型接口。这个分层改造让单公司分析成本下降了接近60%。

5. 这套方法还能怎么用

做完这个项目后,我发现“AI智能体群体识别某种特质”这个框架,完全可以脱离投资场景复用。只要把五个维度替换成目标特质对应的可观测标准,它就能变成一个通用评估系统。

比如用在企业内部的“管理者盘点”,可以识别哪些团队负责人具备长期主义导向和资源分配能力。用在ESG评估里,可以拆出“绿色承诺真实性”“供应链社会风险管理”等维度,设计专职Agent分头核验公开信息与实际行动的一致性。用在创投尽调里,可以扫描创始人过往决策记录,判断其在融资后的资本配置倾向和战略稳定性。

我个人现在最想扩展的方向,是把“言行一致性”这个维度做得更通用。它本质上是一种可以应用到任何角色身上的品格度量:一个人、一个组织、甚至一款产品,对外承诺与真实产出之间的差距,往往比单点指标更能反映长期可靠性。这套多智能体在交叉验证上的优势,正好可以帮我们自动、批量地做这种度量。

最后再分享一个小技巧:如果你也打算做类似的项目,不要一上来就追求大而全。挑一个你最熟悉、数据最标准、评判标准最明确的细分行业,比如银行业的资本充足率分析,或者消费品行业的毛利率观察,先把一套Agent跑通,再慢慢扩展到模糊场景。能把一个维度做扎实,比五个维度都做得浅要实用得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询